Dalam hal ini kita akan
menyiapkan LCD untuk menampilkan informasi suhu yang telah kita buat. Sebab
melihat informasi suhu dengan komputer tentu kurang praktis bukan?
LCD merupakan singkatan
dari Liquid Crystal Display, atau umumnya disebut dengan LCD atau display saja.
Di pasaran beragam jenis LCD dan berbagai ukuran yang bisa Anda gunakan. LCD
bisa untuk menampilkan huruf
dan angka, bahkan ada yang bisa untuk menampilkan gambar.
Dalam ebook ini, kita
akan berkenalan dengan LCD yang umum digunakan dan harganya juga relatif
terjangkau. LCD ini berukuran 16x2 (2 baris 16 kolom) yang cukup untuk
menampilkan informasi suhu atau informasi yang tidak terlalu panjang. LCD ini
dikenal juga dengan LCD 1602 dengan beberapa varian seperti 1602A, dll.
LCD ini bisa bekerja
pada 5 volt, sehingga Anda bisa menyambungkannya secara langsung ke pin VCC
pada board Arduino. Perlu diperhatikan, jika Anda menggunakan LCD jenis
lainnya, ada juga LCD yang bekerja pada voltase yang berbeda. Sehingga
kesalahan pemasangan sumber tegangan bisa membuat LCD rusak.
Gambar LCD 1602
LCD 1602 memiliki 16
pin dengan fungsi-fungsi sebagai berikut:
Simbol
|
Value
|
Fungsi
|
VSS
|
0V
|
Ground
|
VDD
|
+ 5V
|
Power Supply /
VCC
|
V0
|
-
|
Pengaturan
kontras backlight
|
RS
|
H/L
|
H = data, L =
command
|
R/W
|
H/L
|
H = read, L =
write
|
E
|
H.H - L
|
Enable Signal
|
D1-D3
|
H/L
|
Jalur untuk
transfer 8 bit data
|
D4-D7
|
H/L
|
Jalur untuk
transfer 4 & 8 bit data
|
A
|
+ 5V
|
VCC untuk
backlight
|
K
|
0V
|
GND untuk
backlight
|
Berdasarkan
karakteristik tersebut, maka semua pin akan digunakan kecuali pin D1 — D3 sebab
kita akan menggunakan jalur data untuk transfer 4 bit atau 8 bit. Penjelasan
singkat tentang RS, R/W, dan E-RS merupakan kependekan dari Register
Selector, pin ini berfungsi untuk memilih register control atau register
data. Register control digunakan untuk mengkonfigurasi LCD, sedangkan register
data digunakan untuk menuliskan data berupa karakter untuk ditampilkan di LCD.
- R/W atau Read/Write, digunakan
untuk memilih aliran data mikrokontroller akan membaca data yang ada di LCD
atau menuliskan data ke LCD. Jika LCD hanya digunakan untuk menulis /
menampilkan data, maka pin ini bisa langsung disambungkan ke GND sehingga
logika bisa diset menjadi L (Low).
- E atau Enable, digunakan
untuk mengaktifkan LCD ketika proses penulisan data ke register control dan
regiter data.
Rangkaian Dasar LCD
1602
Untuk merangkai LCD,
yang Anda butuhkan adalah beberapa kabel jumper dan sebuah potensiometer.
Potensiometer ini berfungsi untuk mengatur kontras backlight LCD.
Perhatikan Rangkaian Menghubungkan LCD
1602 ke Arduino.
1.
Pin V0 pada LCD disambungkan ke kaki tengah
potensiometer, sementara masing-masing kaki potensiometer yang ada di pinggir
disambungkan ke VCC dan GND. Jika nanti tampilan tulisannya kurang jelas,
silakan putar-putar potensiometernya.
2.
Pin R/W pada LCD disambungkan ke GND
3.
Pin RS pada LCD disambungkan ke pin 6 pada Arduino
4.
Pin E pada LCD disambungkan ke pin 7 pada Arduino
5.
Pin untuk data (D4 — D7) pada LCD disambungkan ke pin
9 — 12 pada Arduino
6.
VDD dan A pada LCD disambungkan ke +5v
7.
VSS dan K pada LCD disambungkan ke GND
Program Dasar LCD
// Sketch Program LCD dasar
#include <LiquidCrystal.h>
// Setting LCD RS E D4 D5 D6 D7
LiquidCrystal lcd(6, 7, 9, 10, 11, 12);
void setup(){
// pilih LCD 16 x 2
lcd.begin(16,2);
lcd.print("BELAJAR ARDUINO");
}
int hitung = 0;
void loop(){
// pindah ke baris kolom 1 baris ke 2
// array selalu dimulai dari 0
lcd.setCursor(0,1);
lcd.print( hitung++ );
delay(1000);
}
Pada Arduino kita bisa
menggunakan library untuk menulis LCD. Library tersebut adalah LiquidCrystal.h.
Untuk menggunakan library tersebut Anda bisa meng-include-nya seperti pada
baris .
// Setting LCD RS E D4 D5 D6 D7
LiquidCrystal lcd(7, 6, 9, 10, 11, 12);
Perintah pada baris di atas adalah untuk melakukan setting LCD sesuai dengan
library yang dipakai. Fungsi lcd() adalah instansiasi dari class
LiquidCrystal yang dipanggil pada baris memiliki parameter berturut-turut pin
RS, E, D4, D5, D6, dan D7. Jika Anda ingin menggunakan format lainnya, maka Anda bisa menggunakan beberapa pilihan
parameter seperti di bawah ini:
LiquidCrystal(RS, E, D0, D1, D2, D3);
LiquidCrystal(RS, RW, E, D0, D1, D2, D3);
LiquidCrystal(RS, E, D0, D1, D2, D3, D4, D5, D6, D7);
LiquidCrystal(RS, RW, E, D0, D1, D2, D3, D4, D5, D6, D7);
Selanjutnya perhatikan
baris
// pilih LCD 16 x 2
lcd.begin(16,2);
Fungsi begin(kolom,
baris, charsize) memiliki 2 parameter wajib dan 1 parameter tambahan.
Parameter wajibnya adalah informasi kolom dan informasi baris pada LCD.
Sedangkan informasi tambahannya adalah charsize untuk
masing-masing karakter yang akan digunakan. Standarnya, charsize
berukuran 5x8 pixel untuk setiap karakter, jika Anda memiliki LCD dengan pixel
yang berbeda, silakan disesuaikan.Fungsi begin() juga digunakan
untuk inisialisasi jenis LCD yang akan digunakan. Mungkin ini agak mirip dengan
Serial.begin() yang berfungsi untuk inisialisasi komunikasi
serial dengan parameter berupa baud rate yang akan digunakan.
// pindah ke baris kolom 1 baris ke 2
// array selalu dimulai dari 0
lcd.setCursor(0,1);
lcd.print( hitung++ );
delay(1000);
Fungsi setCursor(kolom,
baris) berfungsi untuk memindah kursor aktif sesuai kolom dan baris
yang kita tentukan. Kolom ke-0 berarti kolom ke 1 pada LCD (ingat, angka
pertama dalam array adalah 0, bukan 1), sedangkan baris ke-1 berarti adalah
baris ke 2 pada LCD.
Pada baris lcd.print( hitung++ );, kenapa menggunakan print() dan bukan println()?
Penggunaan println() dalam LCD maka akan
secara otomatis menambahkan 2 karakter tambahan untuk pindah baris (CR dan LF),
maka jika Anda menggunakan println(), akan muncul 2 karakter aneh
pada LCD. Jadi, gunakanlahprint() untuk menulis ke LCD.
Sensor Suhu dengan LCD
Setelah kita tahu
bagaimana cara membuat sensor suhu dengan IC LM35 dan cara memasang LCD, mari
kita gabungkan keduanya sehingga menjadi termometer digital.
Rangkaian
Gabungan sensor suhu
dan rangkaian LCD terbentuk Rangkaian di atas. Dalam hal
ini, rangkaian sudah siap untuk diprogram sehingga menjadi termometer digital.
Program
// Sketch Program termometer digital
// Termometer digital
#include <LiquidCrystal.h>
const int pSuhu = A0;
float suhu, data;
// Setting LCD RS E D4 D5 D6 D7
LiquidCrystal lcd(6, 7, 9, 10, 11, 12);
void setup(){
// mengubah tegangan referensi ke internal, 1.1 volt
analogReference(INTERNAL);
// pinSuhu sebagai input
pinMode(pSuhu, INPUT);
// pilih LCD 16 x 2
lcd.begin(16,2);
lcd.print("BELAJAR ARDUINO");
}
void loop(){
data = analogRead(pSuhu);
suhu = data * 110 / 1024;
// pindah ke baris kolom 1 baris ke 2
// array selalu dimulai dari 0
lcd.setCursor(0,1);
lcd.print("Suhu: ");
lcd.print(suhu);
lcd.print("C");
delay(1000);
}
Tidak ada komentar:
Posting Komentar