Pada Tutorial ini akan membahas bagaimana cara Scan atau mencari alamat interface i2c yang akan digunakan untuk menghubungkan antara LCD ke Arduino.
Pada umumnya LCD karakter di kendalikan dengan metode paralel, metode ini banyak menggunakan pin Arduino, biasanya menggunakan 6 sampai 7 Pin, dengan jumlah Pin Arduino Uno yg terbatas sering terjadi pin nya kurang. Arduino uno sudah mendukung komunikasi I2C dengan module I2C lcd, kita dapat mengkontrol LCD Karakter 16x2 hanya menggunakan 2 Pin yaitu Pin 4 (SDA) dan Pin 5 (SCL). Modul ini memiliki 4 pin, 2 pin untuk power dan 2 pin untuk komunikasi I2C, Untuk mengontrol kontras ada potensio trimpot di belakang lcd.
Setiap I2C memiliki alamat yang harus dimasukan kedalam program agar Arduino mengenali modul yang digunakan. Pada modul I2C menggunakan interface SCL (A4) dan SDA (A5). Keuntungan dari penggunaaan i2c yaitu hanya menggunakan dua jalur data saja sehingga dapat menghemat penggunaan pin I/O pada Arduino.
Berikut ini adalah Hardware atau komponen yang dibutuhkan dalam tutorial kali ini:
- Arduino Uno
- Modul I2C
- LCD 162
- Kabel Jumper
- Breadboard
Schematic
Setelah mendapatkan komponen diatas, kemudian rangkailah komponen seperti pada gambar berikut:
Schematic Scan Alamat I2C |
Tulis program dibawah ke dalam Software Arduino IDE yang sudah terinstal di laptop/PC, kemudian upload program kedalam Arduino:
Sebelum memasukkan program arduino, harus terlebih dahulu memasukan library I2C kedalam file instalasi Arduino IDE:
#include <Wire.h>
void setup()
{
Wire.begin(); //prosedur pembacaan i2c
Serial.begin(9600); //komunikasi serial menggunakan kecepatan 9600 bps
while (!Serial); // Arduino Uno: wait for serial monitor
Serial.println("\nI2C Scanner");
}
void loop() //fungsi yang berjalan terus menerus
{
int nDevices;
byte error, address; //tipe data untuk address dan error yaitu byte
//ditampilkan diserial monitor "Scanning..."
Serial.println("Scanning...");
nDevices = 00;
for(address = 1; address < 127; address++ )
{
// Write.endTransmisstion untuk melihat jika perangkat pada alamat dimana
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 00) //jika sudah tidak ada keerroran
{
Serial.print("I2C device found at address 0x"); //menuliskan di serial monitor "i2c ditemukan"
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4) //jika error == 4
//menuliskan di serial monitor di tidak diketahui alamat i2c
{
Serial.print("Unknow error at address 0x"); //menuliskan jika eror tidak diketahui
if (address<16)
Serial.print("0");
Serial.println(address,HEX); //format penulisan address dalam bentuk heksa
}
}
if (nDevices == 00) //jika tidak ada perangkat yang terhubung
Serial.println("No I2C devices found\n");
//ditampilkan peringatan tidak ada i2c yang ditemukan
else
Serial.println("done\n");
delay(5000); // diberikan waktu tunda 5 detik untuk scan berikutnya
}
Setelah berhasil diupload, kemudian buka serial monitor dan set Baud Rate ke 9600 maka akan menampilkan alamat sesuai dengan modul yang digunakan seperti berikut:
Alamat I2C |
Alamat yang ditunjukkan pada gambar diatas adalah 0x3F. Kemudian tuliskan alamat I2C pada program untuk menampilkan karakter pada LCD.
Alamat I2C pada Program Arduino |
comment 0 komentar
more_vert