[TUTORIAL] Rangkaian LCD Menggunakan Komunikasi SPI
Pendahuluan
Setiap pin begitu berharga... Ya, itulah yang harus diperhatikan dalam menggunakan platform berbasis mikrokontroler, misalnya Arduino UNO yang hanya memiliki 13 pin data. Secara konvensional, kita paling tidak membutuhkan 6 pin digital untuk LCD. Hal ini tentunya sangat memboroskan penggunaan pin. Pada tutorial sebelumnya, kita telah menjelaskan bagaimana menggunakan LCD yang hanya membutuhkan 3 pin data. Pada tutorial ini, kita juga akan menggunakan 3 pin data, namun menggunakan protokol SPI. Kita bisa menggunakan kedua alternatif ini. Bedanya, ketika menggunakan protokol SPI, kita wajib menggunakan dua pin yaitu pin ke-13 (SCK) dan pin ke-11 (MOSI). Pin SS dapat kita sesuaikan. Jadi, kita juga hanya akan menggunakan tiga pin, yaitu SCK, MOSI, dan SS. Pada tutorial ini, pin SS menggunakan pin ke-10.
Hardware
Siapkanlah Arduino. Saat ini saya menggunakan Arduino UNO. Arduino Nano dapat dijadikan alternatif. Jika menggunakan MEGA, tentu jumlah pin tidak menjadi masalah Selain Arduino, siapkan juga sebuah IC shif register 74HC95. IC jenis ini sangat umum di pasaran. Siapkan juga sebuah LCD 16x2, potensiometer 1K dan beberapa kabel jumper. Rangkailah semuanya seperti pada Gambar 1. Skematik di bawah ini dibuat menggunakan software Proteus.
Gambar 1. Skematik pemasangan hardware
Software
Unduhlah pustaka LiquidCrystal yang disertakan pada tutorial ini. Pustaka ini telah dimodifikasi, sehingga berbeda dengan LiquidCrystal pada umumnya. Jika telah selesai mengunduh, Import-lah pustaka tersebut ke library Arduino kita. Caranya, buka IDE Arduino, cari Sketch ->Include Library -> Add .ZIP Library... . Selanjutnya, ketiklah program berikut:
#include <SPI.h> #include <LiquidCrystal.h> // Sesuaikan dengan pin SS kita. // Disini digunakan pin 10 LiquidCrystal lcd(10); void setup() { lcd.begin(16, 2); //format kursor = (kolom,baris), indeks dimulai dari nol lcd.setCursor(0,0); lcd.print("hello, world!"); } void loop() { //turun ke kolom bawah lcd.setCursor(0, 1); //tampilkan nilai detik lcd.print(millis()/1000); }
Demikian tutorial kali ini. Semoga bermanfaat....
# | Download File |
---|---|
1 | ![]() |
Mari Gabung
Halo
, Ada yang ingin disampaikan? Jangan sungkan untuk gabung diskusi ini. Silahkan Login dulu atau Daftar baru.