Arduino LCD Komunikasi Serial Tutorial dan Penjelasan


Dalam tutorial sebelumnya telah dibahas mengenai penampil LCD (Liquid Crystal Display) dan komunikasi serial dengan Arduino, dalam bahasan kali ini akan dijabarkan mengenai project Arduino sederhana bagaimana menampilkan karakter output pada LCD dari data input yang diberikan melalui komunikasi serial. Dalam hal ini dilakukan komunikasi antara komputer dengan Arduino, dimana input karakter dari keyboard akan ditampilkan kembali pada LCD.
Untuk memulai menggunakan penampil LCD, terlebih dahulu dilakukan pemetaan konfigurasi wiring diagram. Hal ini ditujukan agar pin yang digunakan pada source code dan wiring diagram sesuai. Berikut ini ialah wiring diagram yang digunakan antara Arduino dengan LCD pada uji coba awal. Untuk jenis LCD yang digunakan ialah 16 kolom dan 2 baris.

<img src="arduino_lcd.png" alt="arduino_lcd">


Berdasarkan gambar wiring diagram tersebut.
  • LCD RS pin dihubungkan ke digital pin 12
  • LCD Enable pin dihubungkan ke digital pin 11
  • LCD D4 pin dihubungkan ke digital pin 5
  • LCD D5 pin dihubungkan ke digital pin 4
  • LCD D6 pin dihubungkan ke digital pin 3
  • LCD D7 pin dihubungkan ke digital pin 2
Penggunaan potentiometer (variable resistor), ditujukan untuk mengatur tingkat gelap-terang dari tampilan LCD tersebut, berdasarkan fungsi pembagi tegangan. Berikut ini ialah source code (sketch) sederhana untuk menampilkan pesan text.

/*
Program LCD serial
dengan library LCD

Loki Lang
*/

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  lang.begin(16, 2);
  Serial.begin(9600);
}

void loop()
{
  if (Serial.available())
  {
    delay(100);
    lang.clear();
    while (Serial.available() > 0)
    {
      lang.write(Serial.read());
    }
  }
}

Dalam source code tersebut digunakan macro #include preprocessed directive yang memuat file header LiquidCrystal.h, untuk library LCD. Berikut ini adalah penjelasan source code (sketch) tersebut.
  • Proses inisialisasi pin Arduino yang terhubung ke pin LCD RS, Enable, D4, D5, D6, dan D7, dilakukan dalam baris LiquidCrystal lang(12, 11, 5, 4, 3, 2); dimana lang merupakan variable yang dipanggil setiap kali instruksi terkait LCD akan digunakan. Catatan, untuk nama variable lang dapat diubah dengan lcd atau nama lainnya, selama dalam pemanggilan namanya sesuai
  • Untuk lang.begin(16, 2) digunakan dalam inisialisasi interface ke LCD dan mendefinisikan ukuran 16 kolom dan 2 baris LCD
  • Untuk Serial.begin(9600) digunakan dalam proses inisialisasi komunikasi serial dengan baud rate 9600
  • Jika kondisi Serial.available() terpenuhi (komunikasi serial dimungkinkan antara komputer dengan Arduino), maka baris program selanjutnya akan dijalankan
  • Untuk while (Serial.available() > 0), selama komunikasi serial komputer dengan Arduino berlangsung lancar, tidak terputus, maka akan dijalankan baris program selanjutnya yakni menampilkan karakter ke LCD
  • Untuk menampilkan data ke LCD dengan lang.write(source), dalam hal ini source atau input yang digunakan berasal dari pembacaan data Serial.read()
Lihat juga mengenai tutorial dan penjelasan mengenai project Arduino Uno LED blinking dan Arduino Uno LED animation.

Bila ada sesuatu yang belum jelas dan ingin tahu lebih dalam seputar project Arduino, pemrograman, dan elektronika, bisa bertanya pada bagian comment atau melalui page Facebook berikut.