2. Alat dan Bahan [Kembali]
Rangkaian terdiri dari 1 Arduino Uno, 1
LM35, dan 1 LCD. Pin analog arduino (A0) dihubungkan ke sensor LM35 sebagai
inputan, pin 7 dihubungkan ke pin D7 LCD, pin 6 dihubungkan ke pin D6 LCD, pin
5 dihubungkan ke pin D5 LCD, pin 4 dihubungkan ke pin D4 LCD, pin 3 dihubungkan
ke pin E, pin 2 dihubungkan ke pin RS. Lalu pin VDD LCD dihubungkan ke power,
pin VSS, VEE, dan RW dihubungkan ke ground.
Berdasarkan kondisi percobaan jika suhu
menunjukkan pada kisaran besar sama 30derajat maka akan muncul teks “Kondisi
Panas”. Namun, ketika seuhu menunjukkan kisaran kecil dari 30 derajat maka akan
muncul teks “Kondisi Aman”. Berikut program arduino:
#include <LiquidCrystal.h> //Deklarasi library LCD
#define LM35 A0 //Deklarasi pin A0 untuk LM35
LiquidCrystal lcd(2,3,4,5,6,7); //Deklarasi pin 2-7 untuk LCD
int nilaiSuhu; //Deklarasi variabel nilaiSuhu
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(A0, INPUT); //Deklarasi pin A0 sebagai OUTPUT
lcd.begin(16,2); //Dimensi LCD yang digunakan
}
void loop() //Semua kode dalam fungsi ini dieksekusi berulang
{
nilaiSuhu=((5*analogRead(LM35)*100.00)/1024); //Mencari nilai Suhu
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0,0); //Menentukan posisi kursor pada awal penulisan
lcd.print("LM35 Sensor Suhu"); //Menampilkan text pada LCD
delay(250); //Waktu delay 250 ms setelah dieksekusi
if(nilaiSuhu>=30){ //percabangan dengan kondisinya suhu besar sama 30
for (int i=0; i<16; i++){ //Perulangan dari 0 sampai 16 decreament
lcd.setCursor(0,1); //Meletakkan cursor pada kolom 0 di baris 1
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
lcd.setCursor(3,1); //Meletakkan cursor pada kolom 3 di baris 1
lcd.print("Kondisi Panas"); //Menampilkan teks "Kondisi panas" pada LCD
lcd.scrollDisplayRight(); //Semua tampilan teks bergulir ke kanan
delay(250); //Waktu delay 250 ms setelah dieksekusi
}
}
else{ //kondisi percabangan else suhu dibawah 30
lcd.setCursor(0,1); //Meletakkan cursor pada kolom 0 di baris 1
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
lcd.setCursor(3,1); //Meletakkan cursor pada kolom 3 di baris 1
lcd.print("Kondisi Aman"); //Menampilkan teks "Kondisi panas" pada LCD
}
delay(1000); //Waktu delay 100 ms setelah dieksekusi
}
Untuk penjelasan program arduino
yaitu deklarasi library dari LCD dengan #include
<LiquidCrystal.h>. Kemudian #define LM35 A0 untuk mendefenisikan pin A0
digunakan untuk sensor LM35. Kemudian LiquidCrystal lcd(2, 3, 4, 5, 6, 7); sebagai
deklarasi pin LCD. Setelah itu int nilaiSuhu untuk deklarasi variabel dengan
tipe data int. Lalu int led1 = 8; bahwa pin 8 untuk led1 dan int led2 = 9;bahwa
pin 9 untuk led2.
Setelah itu ada void setup ()
menunjukkan kode dalam fungsi ini hanya dibaca satu kali. Kode-kode yang ada di
dalamnya yaitu pinMode(A0,INPUT) untuk deklarasi pin A0 sebagai input dan lcd.begin(16,
2) untuk menunjukkan lcd yang digunakan berukuran 16x2.
Setelah itu ada fungsi void loop() menunjukkan semua kode dalam fungsi ini akan dibaca berulang. Untuk kode-kode di dalamya yaitu nilaiSuhu = ((analogRead(A0) * 500.00) / 1024) sebagai rumus mencari suhu, lcd.clear() untuk menghapuslayar LCD, lcd.setCursor(0, 0) untuk menentukan posisi kursor pada awal penulisan pada k0lom 0, baris 0, lcd.print("LM35 Sensor Suhu") untuk menampilkan teks LM35 Sensor Suhu, delay(250); waktu delay 250 ms.
Setelah itu didalamnya ada percabangan if
dengan kondisi if((suhu>=30) jika terpenuhi maka dilakukan perulangan for
(int i=0; i<16; i++) dimulai dari 0 sampai 16 decreament dengan lcd.setCursor(0,1)
dan lcd.print(nilaiSuhu) akan menampilkan teks berupa variabel suhu di kolom 0
baris 1 LCD dan dengan lcd.setCursor(3,1), lcd.print("Kondisi Panas"),
lcd.scrollDisplayRight() ) akan menampilkan teks berupa “Kondisi Panas” di
kolom 3 baris 1 LCD yang bergulir ke kanan, lalu delay 250 ms untuk membuat LCD
berkedip.
Selanjutnya kondisi else ketika kondisi selai dari yang dideklarasikan atau suhu di bawah 30 maka dengan lcd.setCursor(0,1) dan lcd.print(nilaiSuhu) akan menampilkan teks berupa variabel suhu di kolom 0 baris 1 LCD dan dengan lcd.setCursor(3,1), lcd.print("Kondisi Panas"), lcd.scrollDisplayRight() ) akan menampilkan teks berupa “Kondisi Aman” di kolom 3 baris 1. Setelah itu program diberi delay 1000 ms.
Setelah disimulasikan dapat dilihat pada suhu >=30 LCD akan menampilkan “Kondisi Panas” dan ketika suhu < 30 makan LCD akan menampilkan “Kondisi Aman”. Hal ini terjadi karena proses pengonversian data analog ke digital di mana sensor LM35 merupakan inputan analog bagi arduino dan kemudian diolah oleh ADC sehingga menghasilkan sinyal digital sehingga sensor dapat digunakan.
1. Tuliskan dan jelaskan sintaks program yang digunakan untuk menampilkan suhu beserta kondisinya! Analisalah penggunannya? Contoh : Kita menginginkan pada suhu 28 derajat celcius, yang nantinya muncul adalah kondisi normal. Jadi, tuliskan sintask dan jelaskan programnya!
Jawab:
#include <LiquidCrystal.h> //Deklarasi library LCD
#define LM35 A0 //Deklarasi pin A0 untuk LM35
LiquidCrystal lcd(2,3,4,5,6,7); //Deklarasi pin 2-7 untuk LCD
int nilaiSuhu; //Deklarasi variabel nilaiSuhu
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(A0, INPUT); //Deklarasi pin A0 sebagai OUTPUT
lcd.begin(16,2); //Dimensi LCD yang digunakan
}
void loop() //Semua kode dalam fungsi ini dieksekusi berulang
{
nilaiSuhu=((5*analogRead(LM35)*100.00)/1024); //Mencari nilai Suhu
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0,0); //Menentukan posisi kursor pada awal penulisan kolom 0, baris 0
lcd.print("LM35 Sensor Suhu"); //Menampilkan text pada LCD
lcd.setCursor(0,1); //Menentukan posisi kursor pada awal penulisan di kolom 0, baris 1
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
if(nilaiSuhu=28){
lcd.setCursor(0,1); //Menentukan posisi kursor pada awal penulisan
lcd.print("Kondisi normal");
}
delay(100); //Waktu delay 100 ms setelah dieksekusi
}
Pertama deklarasi library
LCD dan deklarasi pin A0 untuk LM35. Kemudian deklarasi Pin 2-7 untuk LCD. Lalu
deklarasi voriabel nilaiSuhu. Kemudion Void setup () dimana semua kode dalam fungsi
ini dieksekusi sekali. kode dalam fungsi void Setup() yaitu pinMode(A0, INPUT)
sebagai deklarasi pin A0 sebagai input. Kemudian lcd.begin(16.2) adalah dimensi
LCD yg digunakan 16x2.
Kemudian ada Fungsi void
loop() dimana semua kode dalam fungsi ini dijalankan berulang. Untuk kode di didalamnya
yaitu nilaiSuhu = ((5xanalogRead(LM 35 )x100)/1024) adalah rumus muncari suho terukur,
kemudian LED dibersihkan dan menentukan posisi pada awal penulisan. Kemudian akan
di tampilken teks yaitu "LM35 sensor suhu dan menentukan posisi kursor
pada awal penulisan di kolom 0, baris 1. Lalu tampilkan variabel nilaiSuhu
Setelah itu ada percabongan if dimana diatur kondisinya dengan if (niloSuhu=28)
agar ketika syarat nilai suhu sama dengan 28 maka akan tampil teks
"kondisi normol” yang tampil pada kolom 0 baris 1 kemudian di-delay 1oo
ms. Proses ini merupakan proses pengonversian data analog ke digital di mana
sensor LM35 merupakan inputan analog bagi arduino dan kemudian diolah oleh ADC
sehingga menghasilkan sinyal digital sehingga sensor dapat digunakan.
2. Jika pada percobaan
ini kita ingin menggunakan potensiometer, ke pin manakah output potensiometer
itu dihubungkan pada LCD? Kenapa harus kita hubungkan ke pin tersebut? Apa
fungsi pin tersebut?
Jawab:
Output potensiometer bisa
dihubungkan ke LCD yaitu di pin V0. Potensiometer bisa dihubungkan ke pin V0
karena pin tersebut merupakan display contrast. Fungsi pin tersebut adalah untuk
mengatur tingkat kecerahan atau kontras LCD.
Tidak ada komentar:
Posting Komentar