MASIGNALPHAS2101
6680671983845063762

Cara Scan Alamat Modul I2C LCD dengan Arduino Uno

 Cara Scan Alamat Modul I2C LCD dengan Arduino Uno
Add Comments
1/10/2021
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.
Modul Inter Integrated Cyrcuit / I2C
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.

Hardware
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
Program
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
Selanjutnya adalah menuliskan program untuk menampilkan karakter pada LCD. Untuk lebih jelasnya, baca tutorial LCD dibawah ini.
Hestech Indonesia

Innovasi di bidang Teknologi, Listrik, Teknik Komputer dan gaya Hidup. Info lainnya tentang praktik konservasi berbasis Sains, inovasi, dan kearifan lokal