Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara mengekases sebuah device yang digunakan untuk interface seperti nilai sensor atau nilai adc dan indikator suatu keadaan, yaitu LCD i2C, perlu diperhatikan bahwa device I2C LCD ini memiliki keunikan dibanding dengan device lain salah satunya yaitu alamat address yang tidak sama, maka dari itu disini akan dijelaskan bagaimana cara mengaksesnya dan bagaimana cara membuatnya, pada contoh kali ini dicontohkan pada LCD 16x2 yang memiliki 16 kolom dan 2 baris, untuk library bisa didownload di link berikut. perlu diketahui jika membeli i2C lcd langkah yang harus diperhatikan pertama kali adalah scanning nilai addressnya, biasanya ada 2 address yaitu 0x27 atau 0x3F, sebenernya masih ada variasi lain namun kedua address itu yang sering ditemui. untuk lebih jelasnya berikut adalah skema dan program scannernya.
Link Library DOWNLOAD
a. Arduino UNO
b. LCD 16x2
c. I2C LCD Modul
d. Cara Pemasangan
e. Program Scanner Address I2C
//Pertama sertakan library Wire.h
#include <Wire.h>
void setup() {
Serial.begin (9600);
// Leonardo: wait for serial port to connect
while (!Serial)
{
}
Serial.println ();
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;
Wire.begin();
for (byte i = 8; i < 120; i++)
{
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0)
{
Serial.print ("Found address: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX);
Serial.println (")");
count++;
delay (1); // maybe unneeded?
} // end of good response
} // end of for loop
Serial.println ("Done.");
Serial.print ("Found ");
Serial.print (count, DEC);
Serial.println (" device(s).");
} // end of setup
#include <Wire.h>
void setup() {
Serial.begin (9600);
// Leonardo: wait for serial port to connect
while (!Serial)
{
}
Serial.println ();
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;
Wire.begin();
for (byte i = 8; i < 120; i++)
{
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0)
{
Serial.print ("Found address: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX);
Serial.println (")");
count++;
delay (1); // maybe unneeded?
} // end of good response
} // end of for loop
Serial.println ("Done.");
Serial.print ("Found ");
Serial.print (count, DEC);
Serial.println (" device(s).");
} // end of setup
void loop() {
//empty
}
f. Program Menampilkan LCD Menggunakan I2C
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2);
void setup(){
lcd.begin();
lcd.clear();
lcd.noCursor();
}
void loop(){
lcd.setCursor(0,0);
lcd.print("YANUAR M");
}
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2);
void setup(){
lcd.begin();
lcd.clear();
lcd.noCursor();
}
void loop(){
lcd.setCursor(0,0);
lcd.print("YANUAR M");
}
g. VIDEO HASILNYA
No comments:
Post a Comment