Daisypath Friendship tickers

Minggu, 11 November 2012

Sensor Suhu with LCD



PENDAHULUAN
Sekarang adalah pengembangan dari sensor suhu yang telah kita buat sebelumnya. Kalau percobaan kemarin hanya mengirimkan data hasil pembacaan sensor suhu ke serial port, kali ini besarnya suhu yang terbaca akan kita tampilkan pada LCD (Liquid Crystal Display).
Untuk LCD yang digunakan pada project kali ini adalah LCD shield produksi DFRobot yang merupakan matriks LCD yang memiliki baris dan kolom sejumlah 48x84. LCD shield ini unik juga, karena selain memiliki backlight juga telah build-in dengan joystick mini sehingga bisa digunakan untuk tombol pilihan menu sebagaimana yang ada di handphone.

Harap diperhatikan ketika menggunakan shield LCD ini. Pin D2, D3, D4, D5, D6 digunakan untuk SPI interface. D7 digunakan untuk mengontrol backlight. Sedangkan A0 digunakan untuk input dari joystick (5 degree). Sehingga jika shield LCD4884 ini dipasangkan pada Arduino, pin-pin tersebut tidak dapat digunakan lagi untuk keperluan lainnya.
Bahan yang dibutuhkan
  • 1x Arduino UNO
  • 1x DFRobot LCD 48x84 shield
  • 1x Sensor Suhu LM35DZ
  • 1x BreadBoard
  • 1x Kabel USB tipe A-B
  • 3x Jumper
STEP BY STEP
  1. Rakit rangkaian
  2. Buat sketch dan upload ke Arduino
  3. Testing
Rakit rangkaian sebagaimana project sebelumnya, namun pin data data LM35 bukan lagi ke pin Analog 0 melainkan ke pin Analog 1.
Buat sketch dan upload ke Arduino
/*------------------------------------------------------------------
SENSOR SUHU LCD
Author        : Insan Sains
Date Created  : 
Last Modified : 17 April 2011
Language      : English for script
                Indonesia for Comments
Descriptions  : Sketch ini menampilkan nilai suhu di LCD 4884
                pin data LM35DZ (tengah) dihubungkan ke Analog 1
------------------------------------------------------------------*/

#include <LCD4884.h>
#include <stdlib.h>

#define pinDataLM35 1   // pin tengah LM35 ke port Analog 1

float temperature;      // variable untuk menyimpan data suhu
                        // float berarti hasilnya akan ada koma
                        // kalau int hasilnya berupa pembulatan

char buffer[8];         // untuk menyimpan float -> string

void setup() {
    lcd.LCD_init();
    lcd.LCD_clear();
}

void loop() {
    /* Baca output dari LM35 yang masuk ke pin analog 
       Data yang terbaca sudah dalam bentuk konversi ADC
       Konversi ADC = Vout/Vref*1023
       Jadi bukan dalam bentuk besaran tegangan lagi
       Jika ingin tahu tegangan output LM35 gunakan rumus di atas :
       Tegangan terbaca = Konversi ADC * tegangan referensi / 1024
       Ukur pin 2 dan 3 pd LM35 dengan multimeter untuk memastikan */
    temperature = analogRead(pinDataLM35);

    // Ubah data konversi ADC diatas menjadi besaran suhu 
    // menggunakan rumus konversi ADC
    temperature = temperature * (5.0 * 100.0/1024.0);

    // Kirim hasil pembacaan via serial port
    lcd.LCD_write_string(0,0," Suhu saat ini (Celcius) : ", MENU_NORMAL);
    lcd.LCD_write_string_big(15,2, dtostrf(temperature, 5,2, buffer), MENU_NORMAL);

    // Berikan pewaktuan agar tidak langsung berubah
    delay(500);

}
Save kemudian upload sketch di atas ke board Arduino.
Testing
Pasang LCD Shield, dan dapat terlihat sekarang LCD menampilkan besarnya suhu yang terukur.
DEVELOPMENT
  • Tambahkan animasi tampilan LCD

Tidak ada komentar:

Posting Komentar