Anda di halaman 1dari 7

1 Inkubatek [supported by : www.tokotronik.

com]

Thermostat 3 tombol tampilan seven segment


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 seven
segment. Seven segment terdiri dari 4 digit, 2 digit untuk menampilkan suhu yang terbaca
dan 2 digit untuk menampilkan satuan derajat celsius. Sedangkan set point di seting dengan
menggunakan 3 tombol. Tombol SET digunakan untuk masuk pada menu seting set point.
Tombol UP digunakan untuk menambah/menaikkan setpoint. Sedangkan tombol DOWN
digunakan untuk mengurangi setpoint. Heater/pemanas di kontrol ON/OFF-nya
menggunakan relay yang terhubung dengan kaki output Arduino.

Kebutuhan Hardware :
 1 Modul Sensor LM35
 Modul Seven segment 4 Digit
 Modul Relay 5Vdc
 Heater
 3 Tombol Push ON
 Modul Arduino UNO
 Power supply +9Volt

INKUBATEK INKUBATEK

Sensor LM35

Modul 1 Relay

Element Heater

INKUBATEK

Diagram Blok:
2 Inkubatek [supported by : www.tokotronik.com]

LM 35 Seven Segment
4digit

Arduino UNO
Tb 1 (Set)

Tb 2 (Up)
Rly 1 Heater
Tb 3 (Down)

Schematics

INKUBATEK

Koneksi Arduino UNO:

Pin ARDUINO Segment Pin ARDUINO Koneksi

2 A 10 Digit 1

3 B 11 Digit 2

4 C 12 Digit 3

5 D 13 Digit 4

6 E

7 F

8 G
3 Inkubatek [supported by : www.tokotronik.com]

Koneksi Sensor LM35:

Pin Sensor Pin ARDUINO

1 (VCC) VCC

2 (OUTPUT) PIN A0

3 (GND) GND

Koneksi Relay:

Relay Pin ARDUINO

1 Pin A4

Koneksi Tombol:

Tombol Pin ARDUINO

SET Pin A1

UP Pin A2

DOWN Pin A3

Source Code/Sketch :
/*************************************
* Program : Project 118. Thermostat 3 tombol tampilan seven segment
* 125 Proyek Arduino Inkubatek
* www.inkubator-teknologi.com
* www.tokotronik.com
* ***********************************/
int adc,T,setPoint;
byte setSP, f_awal, kedip;
long lastButton = 0;
long delayAntiBouncing = 50;

byte seven_seg_digits[12][7] = { { 0,0,0,0,0,0,1 }, // = 0


{ 1,0,0,1,1,1,1 }, // = 1
4 Inkubatek [supported by : www.tokotronik.com]

{ 0,0,1,0,0,1,0 }, // = 2
{ 0,0,0,0,1,1,0 }, // = 3
{ 1,0,0,1,1,0,0 }, // = 4
{ 0,1,0,0,1,0,0 }, // = 5
{ 0,1,0,0,0,0,0 }, // = 6
{ 0,0,0,1,1,1,1 }, // = 7
{ 0,0,0,0,0,0,0 }, // = 8
{ 0,0,0,0,1,0,0 }, // = 9
{ 0,0,1,1,1,0,0 }, // = derajat
{ 0,1,1,0,0,0,1 } // = C
};

void setup(){
for(char i=2; i<13; i++){
pinMode(i,OUTPUT);
}
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(A3,INPUT);
digitalWrite(A1,HIGH);
digitalWrite(A2,HIGH);
digitalWrite(A3,HIGH);

pinMode(A4,OUTPUT);
setPoint=40;
}

void loop(){
adc = analogRead(0);
T = (adc*5)/10;
tampilSuhu();
tampilC();
if(T<(setPoint-1) || f_awal==0){
digitalWrite(A4,HIGH);
f_awal=1;
}
else if(T>=setPoint){
digitalWrite(A4,LOW);
}
tombol();
}

void tampilSuhu(){
digitalWrite(10,LOW); digitalWrite(11,HIGH);
digitalWrite(12,HIGH); digitalWrite(13,HIGH);
5 Inkubatek [supported by : www.tokotronik.com]

if (setSP==1){
sevenSegWrite(setPoint/10);
}
else{
sevenSegWrite(T/10);
}
delay(5);
digitalWrite(10,HIGH); digitalWrite(11,LOW);
digitalWrite(12,HIGH); digitalWrite(13,HIGH);
if (setSP==1){
sevenSegWrite(setPoint%10);
}
else{
sevenSegWrite(T%10);
}
delay(5);
}

void tampilC(){
digitalWrite(10,HIGH); digitalWrite(11,HIGH);
digitalWrite(12,LOW); digitalWrite(13,HIGH);
sevenSegWrite(10);
delay(5);
digitalWrite(10,HIGH); digitalWrite(11,HIGH);
digitalWrite(12,HIGH); digitalWrite(13,LOW);
sevenSegWrite(11);
delay(5);
}

void sevenSegWrite(byte segment) {


byte pin = 2;
for (byte segCount = 0; segCount < 7; ++segCount) {
digitalWrite(pin, seven_seg_digits[segment][segCount]);
++pin;
}
}

void tombol(){
if(digitalRead(A1)==0){
if ((millis() - lastButton) > delayAntiBouncing){
setSP=1;
}
lastButton = millis();
}
6 Inkubatek [supported by : www.tokotronik.com]

while (setSP){
//-----------------tombol seting
if(digitalRead(A1)==0){
if ((millis() - lastButton) > delayAntiBouncing){
setSP=0;
}
lastButton = millis();
}
//---------------tombol up
else if(digitalRead(A2)==0){
if ((millis() - lastButton) > delayAntiBouncing){
setPoint++;
}
lastButton = millis();
}
//---------------tombol down
else if(digitalRead(A3)==0){
if ((millis() - lastButton) > delayAntiBouncing){
if (setPoint>0){
setPoint--;
}
}
lastButton = millis();
}

if (kedip<30){
tampilC();
}
else{
tampilSuhu();
tampilC();
if(kedip>60)kedip=0;
}
++kedip;
}
setSP=0;
}

Jalannya Alat :
1. Koneksikan antara sistem Arduino dengan peripheral lain seperti pada rangkaian
(skematik).
2. Pasang power supply (adaptor 9 V) dan hidupkan (colokkan ke sumber PLN 220V)
sehingga lampu LED indikator nyala, LCD juga nyala.
7 Inkubatek [supported by : www.tokotronik.com]

3. Upload program diatas.


4. Tampilan normal menampilkan suhu yang terbaca:

31 0 C
5. Heater akan ON apabila suhu dibawah set point, setpoint awal 400C.
6. Heater OFF pada saat suhu sama dengan set point.
7. Heater akan menyala lagi setelah suhu berkurang 20C dibawah set point.
8. Seting setpoint dengan menekan tombol SET, sehingga seven segment menampilkan
suhu setpoint dan tampilanya berkedip:

40 0 C
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.

Ke Heater

[Uji coba memakai hardware “Master Mikro ARDUINO V2” :


http://tokotronik.com/master-mikro-arduino-v2/ ]

Anda mungkin juga menyukai