#4 Assignment: ESP32 with I2C LCD

Aulia Nur Adib Phasya
5 min readFeb 17, 2020

--

Sebelumnya, kami telah melakukan beberapa percobaan pada Board ESP32. Salah satunya adalah percobaan dengan sensor internal (sensor magnet dan sensor sentuh) dan percobaan dengan sensor eksternal (mengukur cuaca dengan sensor BME280). Kali ini, kami akan bereksplorasi dengan menggunakan alat LCD I2C.

Dengan LCD I2C, proses pemasangan kabel akan berjalan lebih mudah dan hanya membutuhkan jumlah kabel yang lebih sedikit karena hanya perlu menghubungkan 4 buah pin LCD ke port tertentu pada ESP32. Selain itu, terdapat juga potensiometer yang telah terpasang dibalik LCD seperti pada gambar dibawah. Tujuannya untuk mengatur tingkat kecerahan pada LCD.

Bagian Belakang I2C LCD

Segitu dulu saja intro-nya. Waktunya mencoba-coba ESP32 dengan LCD I2C.

Alat & Komponen

Komponen yang harus dipersiapkan untuk percobaan kali ini adalah sebagai berikut:

  • Board ESP32
  • Kabel Jumper
  • Kabel Micro-USB
  • I2C LCD 16x2 (bisa juga dengan menggunakan ukuran yang lainnya, misalnya 20x4)
  • Pastikan untuk meng-install library Liquid_Crystal I2C terlebih dulu.

Alat-alat dan komponen diatas akan dipakai untuk 2 buah percobaan yang kali ini menggunakan LCD I2C, yaitu menampilkan teks statis pada LCD dan menampilkan teks berjalan (running text) pada LCD.

Static Text

Langkah-Langkah

Setelah semua alat dan library yang diperlukan sudah tersedia, lakukan langkah-langkah dibawah ini.

  • Sambungkan Board ESP32 ke komputer dengan menggunakan kabel micro-usb agar program bisa di-upload ke ESP32.
Diagram Skematik Rangkaian Percobaan dengan LCD
  • Dengan menggunakan kabel jumper, hubungkan port pada board ESP32 ke pin I2C LCD yang sesuai. Hubungkan port GND ke pin GND, port VIN ke pin VCC, port 22 (GPIO22) ke pin SCL dan port 21 (GPIO21) ke pin SDA. Ikuti instruksi pemasangan kabel tersebut sesuai dengan gambar diagram skematik diatas.
  • Buka Arduino IDE. Masukkan kode program seperti pada gambar dibawah.
Kode Program Static Text LCD
  • Kemudian, jalankan programnya unutk melihat hasilnya dengan menekan tombol upload pada Arduno IDE. Hasilnya bisa dilihat pada gambar dibawah ini.
Hasil keluaran program LCD Static Text

Apa yang sebenarnya dilakukan oleh program tersebut? Sederhana. Ketika program telah dijalankan, akan muncul tulisan “Hello World!” pada LCD.

Tapi program ini tidak sebatas hanya menampilkan “Hello World!” saja, namun teks tersebut akan muncul bergantian pada baris yang berbeda pada tiap rentang waktu tertentu. Untuk kasus percobaan ini, teks “Hello World!” akan muncul selama 1 detik pada baris atas, lalu teks tersebut muncul pada baris bawah LCD 1 detik, kemudian muncul lagi pada baris atas dan diulang-ulang terus. Semoga penjelasan ini bisa dipahami, karena tidak sempat merekam hasilnya (hanya memperoleh fotonya saja).

Catatan tambahan, untuk percobaan ini sebaiknya panjang teks yang digunakan tidak melebihi 16 karakter (bisa lebih ataupun kurang, tergantung pada ukuran LCD yang digunakan)

Intermezzo

Saat pertama kali menjalankan programnya, kami menemukan sebuah keanehan pada LCD. Teks tidak muncul sama sekali, padahal programnya sudah berjalan dengan benar. Gambar bisa dilihat dibawah.

Kami awalnya mencoba untuk memastika bahwa alamat dari I2C LCD ini benar. Setelah kami cek, ternyata alamatnya sudah sesuai. Lalu mencoba mengganti kabel jumper yang digunakan dan mengecek ulang port yang terhubung untuk memastikan kabel terpasang sesuai pada tempatnya. Tidak ada kesalahan yang ditemukan.

Lalu, kami berasumsi bahwa LCDnya rusak. Tapi tidak mungkin, karena LCDnya baru saja dibeli (walaupun ada kemungkinan juga memang LCD sudah rusak sejak awal). Dengan mencoba googling, kami mencoba mencari solusi dari orang-orang yang dulunya pernah mengalami masalah yang kurang lebih sama dengan yang kami alami.

Dan kami menyadari sesuatu, bahwa di I2C LCD ini telah terpasang sebuah pontesiometer. Setelah membaca kembali fungsinya, kami baru sadar bahwa potensiometernya harus diutak-atik dulu untuk menemukan kontras yang sesuai. Namun karena harus menggunakan alat seperti obeng untuk memutarnya (dan kebetulan kami tidak punya alatnya), kami terpaksa menggunakan kuku tangan untuk mengutak-atik potensiometernya. Cara ini sebaiknya tidak dipakai karena sepertinya dapat merusak potensiometer yang telah terpasang pada I2C LCD.

Setelah kami mengatur potensiometernya, kontras pada LCD telah sesuai dan akhirnya bisa melihat keluaran hasil programnya. Karena masalahnya sudah sesuai, sesi intermezzo-nya disudahi dulu.

Running Text

Percobaan sebelumnya, teks yang dimunculkan pada LCD hanya berupa teks statis. Kali ini, kami akan mencoba menampilkan teks yang berjalan (running text) pada LCD.

Alat-alat dan komponen yang diperlukan sama persis dengan yang dipakai pada percobaan sebelumnya. Begitu juga dengan langkah-langkah yang dijalankan. Yang berbeda pada percobaan kali ini hanyalah kode yang perlu dimasukkan ke dalam Arduino IDE. Kode program tersebut bisa dilihat pada gambar dibawah ini.

Kode Program LCD Running Text (1)
Kode Program LCD Running Text (2)

Kemudian, jalankan programnya pada Arduino IDE dan tinggal melihat hasilnya pada LCD I2C. Hasilnya bisa dilihat pada video dengan link dibawah ini.

Intinya, program akan menampilkan teks “Static Message” pada baris atas. Dibawahnya, akan ada teks “This is a scrolling message with more than 16 characters” yang berjalan dari kanan ke kiri. Karena keterbatasan waktu, kami tidak sempat untuk mencoba mengutak-atik isi teks yang ingin ditampilkan ataupun kodenya. Namun, satu hal yang pasti adalah kami tahu bahwa kodenya telah berjalan dengan baik dan LCD-nya tidak rusak seperti yang kami duga.

Sekian tulisan kali ini. Semoga bermanfaat buat pembaca semuanya termasuk diri saya sendiri.

--

--

Aulia Nur Adib Phasya
0 Followers

Just an ordinary person who enjoys learning something new