Translate

Monitor dan Kendali Suhu Kompor Listrik Menggunakan Arduino dan Thermocouple Tipe K

 Monitor dan Kendali Suhu Kompor Listrik Menggunakan Arduino dan Thermocouple Tipe K


          Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat memonitor suhu dan mengendalikan suhu agar disuatu range suhu tertentu dengan menggunakan Arduino. untuk sensor yang dipakai yaitu thermocouple tipe K dan pemanas yang digunakan adalah kompor listrik. untuk lebih jelasnya berikut adalah daftar komponen dan programnya.



a. Arduino Uno




b. LCD I2C




c. SSR AC DC




d. Driver Motor IBT2




e. Thermocouple Tipe K + Ampli




f. Program Arduino IDE

#include <max6675.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);

int soPin = 4;
int thermoCS = 5;
int thermoCLK = 6;

int so1Pin  = 7;
int CS1Pin = 8;
int CLK1Pin= 9;
int buzzer = 12;

int motor1 = 10;
int motor2 = 11;

int bt1 = A0;
int bt2 = A1;
int bt3 = A2;
int bt4 = A3;
int bt5 = 2;

int bt1x;
int bt2x;
int bt3x;
int bt4x;
int bt5x;
int temp1;
int temp2;
int ssr = 3;

int sp = 150;
int waktu = 0;
int counter;
int mode;
int countx;

MAX6675 thermocouple(thermoCLK, thermoCS, soPin);
MAX6675 thermocouple1(CLK1Pin, CS1Pin, so1Pin);

void setup() {
 
  Serial.begin(9600);
  lcd.begin(); 
  lcd.clear();

  pinMode(bt1,INPUT_PULLUP);
  pinMode(bt2,INPUT_PULLUP);
  pinMode(bt3,INPUT_PULLUP);
  pinMode(bt4,INPUT_PULLUP);
  pinMode(bt5,INPUT_PULLUP);
  pinMode(ssr,OUTPUT); 
  pinMode(buzzer,OUTPUT);
  pinMode(motor1,OUTPUT);
  pinMode(motor2,OUTPUT);
  digitalWrite(buzzer,LOW);
}

void loop() {

 analogWrite(motor1,200);
 analogWrite(motor2,0);
  
 temp1 = thermocouple.readCelsius();
 temp2 = thermocouple1.readCelsius();

 bt1x = digitalRead(bt1);
 bt2x = digitalRead(bt2);
 bt3x = digitalRead(bt3);
 bt4x = digitalRead(bt4);
 bt5x = digitalRead(bt5);

 lcd.setCursor(0,0);
 lcd.print("T: "); 
 lcd.print(temp1);
 lcd.print(" / "); 
 lcd.print(temp2);
 lcd.print("     ");

 lcd.setCursor(0,1);
 lcd.print("W: "); 
 lcd.print(waktu);
 lcd.print(" P: "); 
 lcd.print(sp);
 lcd.print("    ");
 
 if(temp1 <= sp){
 digitalWrite(ssr,LOW);
 //digitalWrite(buzzer,LOW);
 }

 if(temp1 > sp){
 digitalWrite(ssr,HIGH);
 //digitalWrite(buzzer,HIGH);
 }

if(bt1x == 0){
 lcd.clear(); 
 waktu = 3000;
 mode = 1; 
 sp = 205;
 countx = 180;
 mulai();
}

if(bt2x == 0){
 lcd.clear();
 waktu = 4500;
 mode = 2; 
 sp = 230;
 countx = 225;
 mulai();
}

if(bt3x == 0){
 lcd.clear(); 
 waktu = 6000;
 mode = 3; 
 sp = 250; 
 countx = 240;
 mulai();
}
     
delay(200);
}

void mulai(){
   
 temp1 = thermocouple.readCelsius();
 temp2 = thermocouple1.readCelsius();

 bt5x = digitalRead(bt5);

 if(temp1 < sp){
 digitalWrite(ssr,LOW);
 digitalWrite(buzzer,LOW);
 }

 if(temp1 > sp){
 digitalWrite(ssr,HIGH);
 digitalWrite(buzzer,HIGH);
 }
  
 lcd.setCursor(0,0);
 lcd.print("T: "); 
 lcd.print(temp1);
 lcd.print(" / "); 
 lcd.print(temp2);
 lcd.print(" ");
 lcd.print(counter);
  
 lcd.setCursor(0,1);
 lcd.print("W: "); 
 lcd.print(waktu);
 lcd.print(" P: "); 
 lcd.print(sp);
 lcd.print("    ");  

if(temp1 >= countx){
counter++;  
}

if(counter > waktu){
  counter = 0;
  waktu = 0;
  sp = 150;
  digitalWrite(ssr,HIGH);
  lcd.clear();
  return;
}

if(bt5x == 0){
  counter = 0;
  waktu = 0;
  sp = 150;
  digitalWrite(ssr,HIGH);
  lcd.clear();
  return;
}

delay(200);  
mulai();  
}




g. VIDEO HASILNYA







No comments:

Post a Comment