Sistem Kerja Alat
Thermostat yaitu alat yang digunakan untuk mempertahankan suhu sesuai dengan set point yang telah ditentukan. Suhu dibaca oleh sensor LM35 dan hasilnya ditampilkan pada LCD. Sedangkan set point di seting dengan menggunakan tombol. Heater/pemanas di kontrol ON/OFF-nya menggunakan relay yang terhubung dengan kaki output Arduino UNO.
Kebutuhan Hardware
- 1 Modul Sensor LM35
- Modul LCD 2x16
- Modul Relay 5Vdc
- Element Heater
- 3 Tombol Push ON
- Modul Arduino UNO
- Power supply +9Volt
Element Heater (Source)
Diagram Blok
Schematic
Koneksi Arduino UNO dengan LCD
Koneksi Sensor LM35
Koneksi Tombol
Koneksi Relay
Source Code/Sketch
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
byte derajat[8] = {
0b01100,
0b10010,
0b10010,
0b01100,
0b00000,
0b00000,
0b00000,
0b00000
};
int adc,T,setPoint;
byte setSP, f_awal;
long lastButton = 0;
long delayAntiBouncing = 50;
void setup(){
pinMode(8,OUTPUT);
pinMode(9,INPUT);
pinMode(10,INPUT);
pinMode(11,INPUT);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
lcd.createChar(1, derajat);
lcd.begin(16, 2);
lcd.print(" Thermostat ");
lcd.setCursor(0, 1);
lcd.print("ARDUINO dg LM35");
delay(2000);
lcd.clear();
setPoint=40;
}
void loop(){
lcd.setCursor(0,0);
lcd.print("SP=");
lcd.print(setPoint);
lcd.write(1);
lcd.print("C ");
adc = analogRead(0);
T=(adc*5)/10;
lcd.setCursor(8, 0);
lcd.print("T=");
lcd.print(T);
lcd.write(1);
lcd.print("C ");
if(T<(setPoint-1) || f_awal==0){
lcd.setCursor(0,1);
lcd.print("Heater ON ");
digitalWrite(8,HIGH);
f_awal=1;
}
else if(T>=setPoint){
lcd.setCursor(0,1);
lcd.print("Heater OFF");
digitalWrite(8,LOW);
}
tombol();
delay(100);
}
void tombol(){
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
if(digitalRead(9)==0){
lcd.clear();
lcd.print("Seting Set Point");
lcd.setCursor(9,0);
delay(1000);
lcd.clear();
setSP++;
//-----------------program looping seting set point
do{
if(digitalRead(9)==0){
if ((millis() - lastButton) > delayAntiBouncing){
setSP++;
}
lastButton = millis();
}
else if(digitalRead(10)==0){
if ((millis() - lastButton) > delayAntiBouncing){
setPoint++;
}
lastButton = millis();
}
else if(digitalRead(11)==0){
if ((millis() - lastButton) > delayAntiBouncing){
if (setPoint>0){
setPoint--;
}
}
lastButton = millis();
}
lcd.setCursor(0,0);
lcd.print("SP=");
lcd.print(setPoint);
lcd.write(1);
lcd.print("C");
}
while (setSP<2);
setSP=0;
f_awal=0;
lcd.clear();
lcd.print("Set point OK!");
delay(1000);
lcd.clear();
}
}
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
byte derajat[8] = {
0b01100,
0b10010,
0b10010,
0b01100,
0b00000,
0b00000,
0b00000,
0b00000
};
int adc,T,setPoint;
byte setSP, f_awal;
long lastButton = 0;
long delayAntiBouncing = 50;
void setup(){
pinMode(8,OUTPUT);
pinMode(9,INPUT);
pinMode(10,INPUT);
pinMode(11,INPUT);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
lcd.createChar(1, derajat);
lcd.begin(16, 2);
lcd.print(" Thermostat ");
lcd.setCursor(0, 1);
lcd.print("ARDUINO dg LM35");
delay(2000);
lcd.clear();
setPoint=40;
}
void loop(){
lcd.setCursor(0,0);
lcd.print("SP=");
lcd.print(setPoint);
lcd.write(1);
lcd.print("C ");
adc = analogRead(0);
T=(adc*5)/10;
lcd.setCursor(8, 0);
lcd.print("T=");
lcd.print(T);
lcd.write(1);
lcd.print("C ");
if(T<(setPoint-1) || f_awal==0){
lcd.setCursor(0,1);
lcd.print("Heater ON ");
digitalWrite(8,HIGH);
f_awal=1;
}
else if(T>=setPoint){
lcd.setCursor(0,1);
lcd.print("Heater OFF");
digitalWrite(8,LOW);
}
tombol();
delay(100);
}
void tombol(){
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
if(digitalRead(9)==0){
lcd.clear();
lcd.print("Seting Set Point");
lcd.setCursor(9,0);
delay(1000);
lcd.clear();
setSP++;
//-----------------program looping seting set point
do{
if(digitalRead(9)==0){
if ((millis() - lastButton) > delayAntiBouncing){
setSP++;
}
lastButton = millis();
}
else if(digitalRead(10)==0){
if ((millis() - lastButton) > delayAntiBouncing){
setPoint++;
}
lastButton = millis();
}
else if(digitalRead(11)==0){
if ((millis() - lastButton) > delayAntiBouncing){
if (setPoint>0){
setPoint--;
}
}
lastButton = millis();
}
lcd.setCursor(0,0);
lcd.print("SP=");
lcd.print(setPoint);
lcd.write(1);
lcd.print("C");
}
while (setSP<2);
setSP=0;
f_awal=0;
lcd.clear();
lcd.print("Set point OK!");
delay(1000);
lcd.clear();
}
}
Jalannya Alat
- Untuk mendapatkan suhu yang stabil Anda bisa buat tegangan supply tersendiri pada sensor LM35 dengan supply tegangan dari 5Vdc s/d 15Vdc. Semakin besar supply LM35 maka hasilnya semakin bagus asal tidak lebih dari 15Vdc. Atau jika Anda menggunakan produk Mastermikro Arduino pada modul kontrol dan display lepaskan koneksi power CN1 (+ dan GND) dari board Arduino kemudian Anda beri supply +5V 2A dari adaptor luar (tidak menggunakan power dari Arduino).
- Upload program diatas.
- Tampilan awal.
4. Setelah 2 detik tampilan diatas dihapus, kemudian diganti dengan tampilan normalHeater
akan ON apabila suhu dibawah set point.
5. Heater OFF pada saat suhu sama dengan set point.
6. Heater akan menyala lagi setelah suhu berkurang 20C dibawah set point.
7. Seting setpoint dengan menekan tombol Set.
8. Setelah 1 detik tampil Set point.
9.Tekan tombol Up untuk menambah suhu set point atau tekan tombol Down untuk
menguranginya.
10. Tekan tombol Set jika setingan sudah selesai.
11. Tampilan kembali pada tampilan normal.
12. Tampilan kembali pada tampilan normal.
Video Project III - 7. Thermostat dengan Tampilan LCD dan 3 Tombol berbasis Arduino
KAMI MELAYANI JASA PEMBUATAN HARDWARE ATAU SOFTWARE BERBASIS ARDUINO
KONTAK KAMI 085743320570 (adi sanjaya)
KONTAK KAMI 085743320570 (adi sanjaya)
terima kasih bang sudah jelasin simulasi ini....
ReplyDeleteSangat bermanfaat mang. Lanjut terus
ReplyDelete