PENGUKURAN SUHU RUANGAN MENGGUNAKAN SENSOR SUHU DAN ARDUINO DENGAN 3 UNIT EXHAUST FAN
PENGUKURAN SUHU RUANGAN MENGGUNAKAN SENSOR
SUHU DAN ARDUINO DENGAN 3 UNIT EXHAUST FAN
Dalam tutorial
ini saya akan menunjukkan cara membuat sebuah rangkaian mikrokontroller
menggunakan arduino uno dan beberapa sensor suhu sebagai indikator untuk menyalakan
tiga unit exhaust fan. Ada begitu banyak tutorial tentang sensor suhu di
internet, tutorial ini hanya simulasi menggunakan software PROTEUS 7 dan arduino .
Pertama-tama mari kita bahas tentang komponen yang kita perlukan untuk
membuat indikator suhu dan pengontrol lainnya.
1.
Microcontroller
Arduino Uno R3
Arduino UNO adalah mikrokontroler berbasis IC ATmega328 dengan
flash memory 32 kb dimana 0.5 kb digunakan oleh bootloader, dilengkapi dengan
14 pin output/input digital dan 6 pin input analog serta sebuah tombol riset,
power jack, ICSP header, port USB, dan dilengkapi sebuah osilator Kristal 16
MHz yang menunjang dari kecepatan kinerja pada mikrokontroler tersebut.
·
Daya (Power)
Arduino UNO dapat di supply melalui koneksi
USB atau dengan sebuah power supply eksternal. Supply eksternal (non USB) didapatkan
dari sebuah adaptor AC ke DC atau battery. Arduino UNO ini dioperasikan pada
sebuah supply eksternal mulai dari 6 -20 volt. Tetapi range supply yang aman
bagi arduino adalah 7-12 volt.
·
Pin Daya pada Arduino
a.
VIN
Akses penyuplai
tegangan 5 volt melalui power jack.
b.
5V
Pin output tegangan 5 volt yang
diatur dari regulator pada board. Apabila board disupply tegangan diatas 5
volt, maka tegangan akan diregulasi oleh board dan dikeluarkan 5 volt pada pin
tersebut.
c.
3.3 volt
Prinsip kerjanya
sama dengan pin 5 volt, tapi tegangan yang masuk diregulasi oleh board menjadi
3.3 volt.
d.
GND
Pin ini adalah
Ground.
·
Pin Input dan Output
a.
Serial 0 (RX) dan 1 (TX)
Kedua pin ini
digunakan sebagai receiver dan transmitter serial data TTL.
b.
Eksternal interrups (pin 2 dan 3)
Pin-pin ini bisa di
konfigurasi pemicuan sebuah interrupt atau gangguan pada sebuah nilai rendah,
kenaikan atau penurunan yang besar dan perubahan nilai.
c.
PWM (pin 3, 5,6,9,10, dan 11)
Pin yang memberikan
8 bit PWM output dengan fungsi analog write().
e.
SPI 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
Pin pensupport
komunikasi SPI.
f.
LED (13)
LED yang terpasang
dan terhubung ke pin digital 13.
g.
TWI (pin A4/SDA dan pin A5/SCL)
Pensupport
komunikasi TWI dengan menggunakan wire library.
h.
AREF
Referensi tegangan
untuk input analog.
i.
EREF
Tombol pelindung yang
memblok sesuatu pada board (reset otomatis).
2.
Sensor Suhu
LM35
Pin Sensor LM35
Sensor
Suhu LM35 adalah salah satu jenis
sensor yang merubah besaran suhu ke besaran listrik dalam bentuk tegangan. LM35
memiliki 3 buah pin kaki, pin1 untuk INPUT tegangan positif (+), pin2 OUTPUT,
pin3 INPUT tegangan negatif/GND (-).
Dapat beroperasi pada tegangan 4 volt
sampai 30 volt. Setiap suhu 1 derajat Celcius akan menunjukan tegangan 10 mV.
Persamaan:
Vout = 10 mV/1ºC
Artinya, jika terbaca tegangan Vout = 500
mV, maka temperaturnya = 500mV/10mV= 50ºC.
Berikut
ini adalah karakteristik dari sensor LM35:
- Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius.
- 2Memiliki ketepatan
atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC.
- 3Memiliki jangkauan
maksimal operasi suhu antara -55 ºC sampai +150 ºC.
- 4Bekerja pada
tegangan 4 sampai 30 volt.
- 5Memiliki arus rendah
yaitu kurang dari 60 µA.
- 6Memiliki pemanasan
sendiri yang rendah (low-heating) yaitu kurang dari 0,1 ºC pada udara diam.
- 7Memiliki impedansi
keluaran yang rendah yaitu 0,1 W untuk beban 1 mA.
- 8Memiliki
ketidaklinieran hanya sekitar ± ¼ ºC.
Gambar rangkaian sensor LM35
Skema Sensor Suhu LM35
3.
Motor DC
Motor DC adalah motor listrik yang
memerlukan suplai tegangan arus searah pada kumparan medan untuk diubah menjadi
energi gerak mekanik. Kumparan medan pada motor dc disebut stator (bagian yang
tidak berputar) dan kumparan jangkar disebut rotor (bagian yang berputar).
Motor arus searah, sebagaimana namanya, menggunakan arus langsung yang tidak langsung/direct-unidirectional.
Motor DC memiliki 3 bagian atau komponen utama untuk dapat berputar sebagai
berikut.
Bagian Atau Komponen Utama MOtor DC
·
Kutub medan. Motor DC sederhana memiliki dua kutub medan: kutub
utara dan kutub selatan. Garis magnetik energi membesar melintasi ruang terbuka
diantara kutub-kutub dari utara ke selatan. Untuk motor yang lebih besar atau
lebih komplek terdapat satu atau lebih elektromagnet.
·
Current
Elektromagnet atau Dinamo. Dinamo
yang berbentuk silinder, dihubungkan ke as penggerak untuk menggerakan beban.
Untuk kasus motor DC yang kecil, dinamo berputar dalam medan magnet yang
dibentuk oleh kutub-kutub, sampai kutub utara dan selatan magnet berganti
lokasi.
·
Commutator. Komponen ini terutama ditemukan dalam motor DC. Kegunaannya
adalah untuk transmisi arus antara dinamo dan sumber daya.
Keuntungan utama motor DC adalah sebagai
pengendali kecepatan, yang tidak mempengaruhi kualitas pasokan daya. Motor ini
dapat dikendalikan dengan mengatur:
·
Tegangan dinamo –
meningkatkan tegangan dinamo akan meningkatkan kecepatan
·
Arus medan –
menurunkan arus medan akan meningkatkan kecepatan.
Hubungan antara kecepatan, flux medan dan
tegangan dinamo ditunjukkan dalam persamaan berikut:
Gaya Elektromagnetik (E)
Torque (T) :
Dimana:
E =
gaya elektromagnetik yang dikembangkan pada terminal dynamo (volt)
Φ =
flux medan yang berbanding lurus dengan arus medan
N =
kecepatan dalam RPM (putaran permenit)
T =
torque electromagnetic
Ia = arus dynamo
K =
konstanta persamaan
4.
LCD (Liquid Cristal
Display)
LCD (Liquid Crystal Display) adalah suatu jenis media tampil
yang menggunakan kristal cair sebagai penampil utama. LCD sudah digunakan
diberbagai bidang misalnya alal–alat elektronik seperti televisi, kalkulator,
atau pun layar komputer. Pada postingan aplikasi LCD yang dugunakan ialah LCD
dot matrik dengan jumlah karakter 2 x 16. LCD sangat berfungsi sebagai penampil
yang nantinya akan digunakan untuk menampilkan status kerja alat.
Fitur LCD 16 x 2
Adapun fitur yang disajikan dalam LCD ini adalah :
a. Terdiri dari 16 karakter dan 2 baris.
b. Mempunyai 192 karakter tersimpan.
c. Terdapat karakter generator terprogram.
d. Dapat dialamati dengan mode 4-bit dan 8-bit.
e. Dilengkapi dengan back light.
Spesifikasi Kaki LCD 16 x 2
Pin
Deskripsi
1
Ground
2
Vcc
3
Pengatur kontras
4
“RS” Instruction/Register Select
5
“R/W” Read/Write LCD Registers
6
“EN” Enable
7-14
Data I/O Pins
15
Vcc
16
Ground
Nah,
sekarang hubungkan semuanya
seperti yang ditunjukkan dalam diagram sirkuit
di atas dan masukan scrip arduino
seperti yang ditunjukkan di bawah ini dan setelah itu dapat anda running
simulasinya . Anda dapat mengunduh scrip lengkap, file simulasi, dari tautan
ini
//
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
byte sensorPin[] =
{0,1,2,3,4,5,6,7};
byte ledPin[] = {16,15,14}; //
number of leds = numbers of sensors
const byte sensors = 8;
const byte leds=4;
int motor1 = A4;
int motor2 = A5;
int motor3 = A3;
void setup()
{
for(int i = 0; i< sensors; i++)
//initialize all sensor pins to input pin
{
pinMode(sensorPin[i], INPUT);
}
for(int i = 0; i< leds; i++)
//initialize all led pins to output pins
{
pinMode(ledPin[i], OUTPUT);
}
pinMode(motor1, OUTPUT); //initialize motor pin to output pin
pinMode(motor2, OUTPUT); //initialize motor pin to output pin
pinMode(motor3, OUTPUT); //initialize motor pin to output pin
lcd.begin(20, 4); //initializing 20x4 LCD
lcd.clear(); //clear LCD first
lcd.print("TEKNIK ELEKTRO"); // display string TEKNIK ELEKTRO
}
void loop()
{
int level = 0;
for(int i = 0; i < sensors; i++)
{
if(digitalRead(sensorPin[i]) == HIGH)
{
digitalWrite(ledPin[i/2], HIGH);
level = i+1;
} else
{
digitalWrite(ledPin[i/2], LOW);
}
}
lcd.setCursor(0,1);
lcd.print("EXHAUST FAN");
lcd.setCursor(0,2);
switch(level) {
case 1:
lcd.print("LEVEL 1");
digitalWrite(motor1, LOW);
digitalWrite(motor2, LOW);
digitalWrite(motor3, LOW);
lcd.setCursor(0,3);
lcd.print(" ");
break;
case 2:
lcd.print("LEVEL 2");
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, LOW);
lcd.setCursor(0,3);
lcd.print(" ");
break;
case 3:
lcd.print("LEVEL 3 ");
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, LOW);
lcd.setCursor(0,3);
lcd.print(" ");
break;
case 4:
lcd.print("LEVEL 4 ");
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, LOW);
lcd.setCursor(0,3);
lcd.print(" ");
break;
case 5:
lcd.print("LEVEL 5 ");
digitalWrite(motor1, HIGH);
digitalWrite(motor2, HIGH);
digitalWrite(motor3, LOW);
lcd.setCursor(0,3);
lcd.print(" ");
break;
case 6:
lcd.print("LEVEL 6 ");
digitalWrite(motor1, HIGH);
digitalWrite(motor2, HIGH);
digitalWrite(motor3, LOW);
lcd.setCursor(0,3);
lcd.print(" ");
break;
case 7:
lcd.print("LEVEL 7 ");
digitalWrite(motor1, HIGH);
digitalWrite(motor2, HIGH);
digitalWrite(motor3, LOW);
lcd.setCursor(0,3);
lcd.print(" ");
break;
case 8:
lcd.print("LEVEL 8 ");
digitalWrite(motor1, HIGH);
digitalWrite(motor2, HIGH);
digitalWrite(motor3, HIGH);
lcd.setCursor(0,3);
lcd.print("BAHAYA : SUHU OVER
HEAT");
break;
default:
lcd.print("NORMAL");
digitalWrite(motor1, LOW);
digitalWrite(motor2, LOW);
digitalWrite(motor3, LOW);
lcd.setCursor(0,3);
lcd.print(" ");
break;
}
delay(40);
}
Deskripsi Singkat Kode ini sangat
mudah dimengerti. Karena kita menggunakan 8 sensor suhu pada port sehingga
semua pin pada port diinisialisasi sebagai port keluaran, demikian juga LCD dan
perangkat lainnya diinisialisasi. Setelah itu masukan diambil dari sensor suhu,
dan jika menghasilkan output1 level yang sesuai ditampilkan pada LCD. Motor
exhaust fan 1, 2 dan 3 akan menyala jika suhu ruang sudah benar-benar over heat
dan akan kembali off jika suhu ruangan tersebut
berkurang secara bertahap maupun sekaligus semua.
Komentar
Posting Komentar