Categories
Mikrokontroler

LCD 2×16 karakter dan Arduino

Kali ini akan saya bahas tentang bagaimana memanfaatkan LCD 2×16 (berbasis HD44780). Yang dibutuhkan adalah board Arduino UNO atau yang kompatibel, atau menggunakan mikrokontroler AVR apa saja (pengin tahu caranya? klik disini) serta rangkaian LCD sebagaimana digunakan pada LCD Shield produksi DFRobot.com. Oiya Arduino IDE-nya tetap digunakan (pake saja versi terbaru juga oke).

LCD Shield produk DFRobot.com

Rangkaian yang digunakan merujuk LCD Shield (klik PDF). Ada 2 hal yang saya coba cantumkan gambarnya disini.

  • Gambar 1 merupakan gambar antarmuka LCD 2×16 menggunakan jalur data 4-bit (bisa juga 8-bit, tapi 4-bit lebih ngirit dan jalurnya bisa digunakan untuk keperluan lainnya).
  • Gambar 2 merupakan antarmuka pushbutton yang menggunakan konsep pembagi tegangan. Maksudnya? Jika selama ini tombol atau pushbutton disambung ke pin mikrokontroler langsung nah yang ini beda! Kita gunakan rangkaian pembagi tegangan yang dihubungkan ke AD0 (masukan analog pertama) dari board Arduino-nya.

Gambar 1. Antarmuka LCD 4-bit

Gambar 2. Antarmuka tombol ke masukan A0

Categories
Mikrokontroler

CodeVision dan Pustaka LCD: Sebuah contoh sederhana

Ada pertanyaan masuk ke saya, bagaimana program untuk tampilan ke LCD (misalnya tipe LCD 2×16 karakter) menggunakan CodeVision. Maka pada kesempatan kali ini saya bahas jawaban dari pertanyaan itu.

Yang perlu Anda ketahui bahwa CodeVision AVR sudah menyediakan pustaka untuk antarmuka LCD, hanya saja, Anda harus menyesuaikan rangkaian dengan ketentuan yang dimiliki CodeVision, perhatikan ketentuan antarmuka LCD dari CodeVision berikut ini (PORT mewakili PORT apa saja yang Anda gunakan untuk antarmuka LCD dengan AVR), atau perhatikan Gambar 3:

  • PORT.0 – pin RS
  • PORT.1 – pin R/W
  • PORT.2 – PIN EN
  • PORT.3 – tidak dipakai
  • PORT.4 – pin D4
  • PORT.5 – pin D5
  • PORT.6 – pin D6
  • PORT.7 – pin D7

Beberapa fungsi pada pustaka LCD milik CodeVision antara lain:

  • void _lcd_ready(void);
  • void _lcd_write_data(unsigned char data);
  • void lcd_write_byte(unsigned char addr, unsigned char data); – menuliskan sebuah BYTE ke generator karakter LCD atau RAM tampilan
  • unsigned char lcd_read_byte(unsigned char addr); – membaca sebuah BYTE dari generator karakter LCD atau RAM tampilan
  • void lcd_gotoxy(unsigned char x, unsigned char y); – meletakkan kursor pada x (kolom, 0..39) dan y (baris,0..3)
  • void lcd_clear(void); – membersihkan layar LCD
  • void lcd_putchar(char c);
  • void lcd_puts(char *str); – menuliskan string STR di dalam SRAM ke LCD
  • void lcd_putsf(char flash *str); – menuliskan string STR di dalam flash ke LCD
  • unsigned char lcd_init(unsigned char lcd_columns); – inisialisasi kontroler LCD
  • void lcd_control (unsigned char control); – menuliskan BYTE kontrol ke LCD
Categories
Mikrokontroler

Flowcode AVR 3.0: Aplikasi dengan LCD 2×16

Wow enaknya belajar pemrograman aplikasi mikrokontroler AVR menggunakan Flowcode 3 for AVR sebagaimana sudah saya tulis artikel-nya sejak awal. Kali ini dicoba membuat aplikasi dengan tampilan LCD 2×16, hanya sekedar menampilkan dua kalimat, masing-masing di baris-1 dan baris-2, diagram atau flow-nya ditunjukkan pada Gambar 1 (termasuk hasil simulasinya).

Gambar 1

Hasil kompilasi kedalam Bahasa C saya tunjukkan satu persatu. Pada bagian pertama, sebagaimana ditunjukkan pada Gambar 2, merupakan deklarasi fungsi-fungsi makro untuk menangani LCD (baris 66 – 74). Terdapat 9 macam fungsi makro LCD dan hanya 3 yang akan digunakan dalam program, yaitu:

  • FCD_LCDDisplay0_Start(), digunakan untuk inisialisasi LCD;
  • FCD_LCDDisplay0_PrintString(char* String, char MSZ_String), digunakan untuk menuliskan string, dan
  • FCD_LCDDisplay0_Cursor(char x, char y), digunakan untuk menempatkan kursor dengan posisi kolom,baris).

Gambar 2