Monday 5 December 2016

Mengakses LCD 16x2 dengan Arduino

    Pada postingan sebelumnya kita sudah membahas tentang mengakses lcd 16x2 dengan atmega16. Kali ini saya akan berbagi tutorial cara mengakses lcd 16x2 dengan Arduino UNO. Arduino UNO adalah papan sirkuit dengan mikrokontroller atmega328 yang memiliki 14 pin I/O yang dimana 6 pin sebagai output PWM dan 2 pin untuk koneksi serial, 6 pin analog yang biasa dihubungkan ke sensor, clock speed 16MHz, koneksi USB, jack DC, tombol reset dan pinheader.
    Secara umum, arduino terdiri dari dua bagian, yaitu :
1. HARDWARE berupa papan PCB input output (I/O) yang open source
2. SOFTWARE berupa aplikasi Arduino IDE. Dapat di unduh disini


Spesifikasi Arduino UNO


Gambar Arduino UNO

Gambar rangkaian

Program:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //konigurasi pin
void setup() {
  lcd.begin(16, 2);
}
void loop() {
lcd.setCursor(3,0);         //mengatur kursor pada kolom 3, baris 0
lcd.print("LCD ARDUINO");   //menampilkan karakter "LCD ARDUINO"
lcd.setCursor(1,1);         //mengatur kursor pada kolom 1, baris 1
lcd.print("TEKNIK ELEKTRO");//menampilkan karakter "TEKNIK ELEKTRO"
}


Gambar hasil


Mengakses LCD 16x2 menggunakan ATMega16

    Pada tutorial kali ini saya akan berbagi ilmu tentang cara mengakses lcd 16x2 dengan atmega16. LCD (Liquid Cristal Display) adalah salah satu jenis display elektronik yang dibuat dengan teknologi CMOS logic yang bekerja dengan tidak menghasilkan cahaya tetapi memantulkan cahaya yang ada di sekelilingnya terhadap front-lit atau mentransmisikan cahaya dari back-lit. Fungsi LCD sebagai penampil data baik dalam bentuk karakter, huruf, angka maupun grafik.

Konfigurasi Pin LCD 16x2
No
Kaki
Deskripsi
1
Vss
0V (GND)
2
Vcc
+5V
3
VLC
LCD Contrast Voltage
4
RS
Register Select; H: Data Input; L: Instruction Input
5
RD
H:Read; L: Write
6
EN
Enable Signal
7
D0
Data Bus 0
8
D1
Data Bus 1
9
D2
Data Bus 2
10
D3
Data Bus 3
11
D4
Data Bus 4
12
D5
Data Bus 5
13
D6
Data Bus 6
14
D7
Data Bus 7
15
V+BL
Positive Backlight Voltage
16
V-BL
Negative Backlight Voltage

*      DDRAM
DDRAM adalah merupakan memori tempat karakter yang ditampilkan berada. Contoh, untuk karakter ‘A’ atau 41H yang ditulis pada alamat 00, maka karakter tersebut akan tampil pada baris pertama dan kolom pertama dari LCD. Apabila karakter tersebut ditulis di alamat 40, maka karakter tersebut akan tampil pada baris kedua kolom pertama dari LCD. Posisi ini ditunjukkan dalam Gambar 5.2.

*      CGRAM
CGRAM adalah merupakan memori untuk menggambarkan pola sebuah karakter di mana bentuk dari karakter dapat diubah-ubah sesuai keinginan. Namun memori ini akan hilang saat power supply tidak aktif, sehingga pola karakter akan hilang.

*      CGROM
CGROM adalah merupakan memori untuk menggambarkan pola sebuah karakter di mana pola tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna tidak dapat mengubah lagi. Namun karena ROM bersifat permanen, maka pola karakter tersebut tidak akan hilang walaupun power supply tidak aktif. Pada Gambar 6.3, tampak terlihat pola-pola karakter yang tersimpan dalam lokasi-lokasi tertentu dalam CGROM. Pada saat HD44780 akan menampilkan data 41H ke DDRAM, maka HD44780 akan mengambil data di alamat 41H (0100 0001) yang ada pada CGROM yaitu pola karakter A.

Gambar bentuk LCD

Gambar rangkaian

    Pada rangkaian diatas, menggunakan Proteus Professional 7 sebagai software simulasi (dapat di unduh disini).  Chip atmega16, lcd 16x2 terhubung pada port C. Dibawah ini adalah contoh programn bahasa C menggunakan compilier CodeVisionAVR.

#include <mega16.h>
#include <delay.h>
#include <alcd.h>

void main(void)
{
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTC Bit 0
// RD - PORTC Bit 1
// EN - PORTC Bit 2
// D4 - PORTC Bit 4
// D5 - PORTC Bit 5
// D6 - PORTC Bit 6
// D7 - PORTC Bit 7
// Characters/line: 16
lcd_init(16);
lcd_gotoxy(0,0);                                  //menempatkan kursor pada kolom 0, baris 0
lcd_putsf("DISPLAY LCD 16X2");         //menampilkan karakter "DISPLAY LCD 16x2"
lcd_gotoxy(1,1);                                  //menempatkan kursor pada kolom 1, baris 1
lcd_putsf("TEKNIK ELEKTRO");          //menampilkan karakter "TEKNIK ELEKTRO"
delay_ms(100);                                   //tunda waktu 100 mili detik

while (1)
      {
      
      }
}

Gambar hasil

    Sekian tutorial tentang cara mengakses LCD 16x2 menggunakan atmega16. Kunjungi tutorial sebelumnya dan nantikan tutorial selanjutnya. . . 



Daftar referensi :
  1. http://elektronika-dasar.web.id/lcd-liquid-cristal-display/
  2. Modul Praktikum Mikroprosesor S1 Pendidikan Teknik Elektro, Universitas Negeri Malang







Mengakses LCD 16x2 dengan Arduino

    Pada postingan sebelumnya kita sudah membahas tentang mengakses lcd 16x2 dengan atmega16. Kali ini saya akan berbagi tutorial cara menga...