Selasa, 18 Maret 2014

Arduino Basic - Menggunakan LCD


Pada posting sebelumnya kita sudah mencoba menampilkan hasil pembacaan temperatur dari sensor LM-35 ke serial console di layar monitor. Kali ini, kita akan mencoba menampilkan hasil pembacaan tersebut.  

Peralatan yang digunakan

  •  Arduino Uno + Konektor PC
  •  Kabel tembaga
  •  LCD
  •  Potensiometer 10K
  •  Sensor temperatur LM-35
  • Resistor 220 Ohm
  • Breadboard (optional)
  • Solder (optional)
  • Kawat timah (optional)

LCD yang digunakan dalam percobaan memiliki ukuran jumlah baris dan kolom 16x2. LCD ini memiliki pin sebanyak 16 tetapi hanya digunakan sebanyak 12 saja. Pada setiap pin LCD terdapat sebuah lubang kecil untuk mengaitkan kabel tembaga. Proses penyolderan kabel pada pin sebenarnya tidak perlu dilakukan, tetapi dianjurkan agar kabel terhubung dengan baik ke pin LCD. Breadboard juga dianjurkan digunakan dalam percobaan ini mengingat cukup banyaknya jumlah kabel yang digunakan.

Dalam percobaan ini dibutuhkan juga potensiometer 10K. Potensiometer ini berfungsi untuk mengatur tegangan ke LCD agar karakter dapat terlihat. Hati-hati dalam menghubungkan kabel. Periksa kembali hubungan antara LCD dengan Arduino sebelum board dinyalakan karena dapat menimbulkan kerusakan. Saya pun sempat terbalik ketika menghubungkan pin Arduino dengan pin LCD. Untung saja LCD tidak memiliki masalah apa-apa. Jika ketika board dinyalakan dan program dijalankan tetapi LCD tidak menampilkan apa-apa meskipun posisi potensiometer sudah diubah-ubah, lebih baik Arduino dimatikan terlebih dahulu sebelum diperiksa kembali.   


Rangkaian

 Source Code


//Menampilkan hasil pembacaan temperatur ke LCD

#include <LiquidCrystal.h> // menggunakan library LiquidCrystal

const int numRows = 2; //konstanta jumlah baris pada LCD
const int numCols = 16; //konstanta jumlah kolom pada LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);// inisialisasi pin yang digunakan sebagai interface LCD

const int inPin = 0; //inisialisasi pin LM-35

void setup(){
  lcd.begin(numCols, numRows); //inisialisasi jumlah kolom dan baris LCD
}

void loop(){
  //MEMBACA TEMPERATUR
  int value = analogRead(inPin); //Baca nilai pada pin LM-35
  float millivolts = (value / 1024.0) * 5000; //memperoleh nilai tegangan dalam mV
  float celsius = millivolts / 10; //memperoleh nilai derajat celsius
  celsius+=1.35; //kalibrasi temperatur dengan menambah 1,35
  float fahrenheit = celsius*9/5+32; //konversi nilai derajat celsius ke fahrenheit
 
  //MENAMPILKAN DI LCD
  lcd.setCursor(0, 0); //set kursor ke kolom pertama dan baris pertama. Hitungan dimulai dari 0
 
  //Print celsius
  lcd.print("Celsius : ");
  lcd.print(celsius);

  lcd.setCursor(0, 1); //set kursor ke kolom pertama dan baris kedua
 
  //Print fahrenheit
  lcd.print("Fahrenht : ");
  lcd.print(fahrenheit);
 
  delay(500);//delay 0,5 detik

}



Hasil

 
Temperatur udara

Mengukur temperatur tubuh

Penjelasaan


Proses awal pada percobaan kali ini sama dengan percobaan pada posting sebelumnya. Kita memperoleh nilai temperatur dalam derajat Celsius dari tegangan pada pin LM-35. Setelah itu kita dapat memperoleh temperatur dalam derajat Fahrenheit dengan mengonversi dari Celsius.

Perbedaan dari percobaan sebelumnya terletak pada bagian untuk menampilkan hasil pembacaan tersebut. Jika pada posting sebelumnya menggunakan fungsi serial.print() untuk menampilkan hasil bacaan ke serial console pada layar monitor, pada percobaan ini Arduino memiliki library LiquidCrystal yang berisi perintah-perintah dalam menggunakan LCD. Untuk menampilkan teks ke LCD, kita dapat menggunakan fungsi lcd.print(). Ketika fungsi lcd.print() dipanggil, Arduino menampilkan karakter yang berada di dalam parameter pada posisi awal yang ditentukan oleh fungsi lcd.setCursor(<kolom>,<baris>) yang dipanggil sebelumnya. Jika belum ditentukan, secara otomatis akan dimulai pada baris dan kolom pertama.

Pembacaan temperatur pada percobaan ini dikalibrasi, yaitu dilakukan penyesuaian temperatur yang diperoleh dengan temperatur  sebenarnya. Kalibrasi dilakukan dengan cara menyentuh LM-35 selama beberapa menit kemudian lihat temperatur yang dibaca. Diketahui temperatur tubuh manusia normal sekitar 36 derajat Celsius. Hasil pembacaan kemudian ditambah atau dikurang selisih antara temperatur tubuh manusia normal dan hasil yang didapat. Di dalam percobaan ini temperatur yang diperoleh dikalibrasikan dengan menambah sebesar 1,35 derajat Celsius.

 Referensi

 

Margolis, Michael. 2011. Arduino Cookbok, Second Ediion. CA : O'Reilly Media, Inc. 

Tidak ada komentar:

Posting Komentar