Raspberry Pi + LCD 16×2 (I2C)

, , Leave a comment

Menambah display di Raspberry Pi akan meningkatkan kualitas penampilan dari project yang kita buat. Saya membeli LCD 16×2 (controller SPLC780C) dengan backlight warna biru. LCD ini kompatibel dengan HD4470. Saya membelinya dari tokopedia dengan harga yang cukup murah. Dan karena tidak ingin memboroskan GPIO pin, saya juga membeli I2C backpack sehingga hanya 5 pin saja yang dibutuhkan untuk dapat memfungsikan LCD ini. Tanpa I2C backpack, 11-12 pin yang dibutuhkan dan tentunya kabel akan lebih semrawut. Sebagai catatan, LCD dan I2C backpack dapat berfungsi dengan tegangan 3.3 volts, tapi untuk mendapatkan kecerahan dan kontras maksimum, LCD perlu dihubungkan dengan 5 volts. Akibatnya pin SDA dan SDL dari I2C backpack akan memiliki tegangan 5 volt yang akan terhubung dengan Raspberry Pi GPIO pin yang bekerja dengan tegangan 3.3 volt. Hal ini mungkin dapat menimbulkan kerusakan Raspberry Pi Oleh karena itu, kita memerlukan level shifter sehingga tegangan SDA dan SDL berubah dari 5 volt menjadi 3 volt saat terhubung dengan Raspberry Pi.

lcd
Gambar 1. LCD 16×02
I2C backpack
Gambar 2. I2C backpack
Level Shifter
Gambar 3. Level Shifter

 

  1. Raspberry Pi 2/3/Zero
  2. LCD 16×2 HD4470 compliant
  3. I2C backpack
  4. Level shifter

Tahap 1. Pasang LCD dan I2C backpack

I2C backpack pada umumnya dijual dengan pin header terpisah. Solderlah pin header ke I2C. Setelah menjadi satu lalu pasangkan I2C ke LCD. Aturlah hingga pas lalu solder. Hasilnya, kita punya 4 pin yang dihubungkan dengan Raspberry. LCD pack akan terlihat seperti dibawah ini.

LCD Pack
Gambar 4. LCD Pack

 

Tahap 2. Tambahkan level shifter ke LCD pack

Solder pin dari LCD pack ke level shifter sesuai dengan table dibawah ini. Untuk lebih jelasnya ikutilah ilustrasinya.

LCD

Level shifter (HV) Level shifter (LV) Raspberry Pi

GND

GND

GND

GND

VCC

HV

LV

5 volt (HV), 3.3 volt (LV)

SDA

HV2

LV2

GPIO 02 (SDA)

SDL HV1 LV1

GPIO 03 (SDL)

Illustrasi
Gambar 5. Illustrasi

 

Bagian elektronik sudah selesai. Hubungkan Raspberry Pi dengan power supply dan seketika LCD akan menyala. Screen kosong mungkin akan terlihat, atau karakter kotak-kotak akan tampak di baris pertama.

 

Tahap 3. Mengaktifkan interface I2C di Raspberry Pi

Setelah Raspberry selesai boot, masukkan perintah sudo raspi-config

  1. Pilih Advanced
  2. Pilih I2C
  3. Pilih YES

Lalu keluarlah dari raspi config untuk selanjutnya menginstall I2C tools dan smbus agar kita dapat mengetahui alamat dari LCD saat terhubung.

sudo apt-get install i2c-tools

sudo apt-get install python-smbus

Setelah itu reboot Raspberry Pi. Setelah reboot selesai ketikkan i2cdetect –y 1. Dalam kasus ini, saya mendapatkan alamat LCD 3f, catatlah alamat ini, karena kita akan menggunakannya sebentar lagi. Apabila kamu tidak melihat apapun, maka itu berarti LCD belum terhubung. Periksa kembali koneksi di tahap 2.

LCD Address
Gambar 6. LCD Address

 

Tahap 4. Download python driver dan update

Saya menemukan driver yang di post disini yang aslinya berasal dari sebuah blog yang dikembangkan kembali oleh user github DenisFromHR. Atau kamu bisa mendapatkan driver tersebut di attachment dibagian bawah tulisan ini.

Buka dan editlah driver tersebut lalu rubahlah baris yang saya highlight kuning. Dalam kasus saya I2CBUS = 1 and ADDRESS = 0x3f. Jika kamu menggunakan Raspberry Pi versi 1, maka I2CBUS=0. Simpan lalu keluar.

Driver
Gambar 7. Driver

 

Tahap 5. Memprogram LCD

Memprogram LCD ini untuk menampilkan teks sangatlah mudah. Pertama, importlah library dan panggil lcdnya..

import i2c_lcd_driver

mylcd = i2c_lcd_driver.lcd()

untuk menampilkan baris kata gunakan mylcd.lcd_display_string(text, line number, cursor position). Contoh mylcd.lcd_display_string(“Hello World”,1,3). Baris teks tersebut akan tampil pada baris pertama, pada posisi ke-empat. Ingatlah, penomoran kursor mulai dari 0-15.

Catatan: Jika tidak ada teks yang muncul, aturlah potensio meter pada I2C backpack (kotak warna biru) hingga mendapatkan kontras yang paling pas hingga teks terbaca.

LCD ini mengikuti standard character seperti dibawah ini. Untuk menampilkan karakter spesifik, kamu bisa mencoba dengan script dibawah ini. Jumlahkan nomor kolom dan baris untuk nampilkan karakter. Contoh. karakter “à” adalah 126 (120+6).

LCD Characters
Gambar 8. LCD Characters
Script sederhana
Gambar 9. Script sederhana

 

Untuk menampilkan custom font kita perlu membuat sebuah matriks untuk menyalakan dan mematikan setiap pixel dari sel LCD. 1 untuk menyalakan, 0 untuk mematikan. Contoh script dapat didownload di sini. Kunjungi situs https://omerk.github.io/lcdchargen/ untuk membuat karakter secara online.

Dengan prinsip yang sama, kita juga dapat membuat animasi. Prinsipnya adalah mengaktifkan beberapa custom font yang berbeda dan mengulangnya berkali-kali. Contoh script dapat didownload disini.

Dalam tulisan berikutnya, saya akan gali library ini lebih dalam dan beberapa project yang saya kerjakan dengan LCD ini.

Referensi:

  1. http://www.raspberrypi-spy.co.uk/2015/05/using-an-i2c-enabled-lcd-screen-with-the-raspberry-pi/
  2. http://www.circuitbasics.com/raspberry-pi-i2c-lcd-set-up-and-programming/

Jika ada pertanyaan silahkan saja comment. Jika tulisan ini bermanfaat bagi orang lain, silahkan share free knowledge ini. Terima kasih.

Download link:

i2c_lcd_driver and examples

 

 

 

 

Facebook Comments
 

Leave a Reply