Mari kita beralih ke mikrokontroler sejenak.
Di artikel kali ini mimin akan berbagi ilmu mengenai bagaimana cara menulis di LCD 1602 menggunakan mikrokontroller arduino sobat skema elektro ku, pasti tak asing lagi lcd yang satu ini. yup LCD 1602 ini sering digunakan berbagai projek mikrokontroller yang pernah di pakai oleh berbagai develpor di luar
oke tanpa basa basi lagi, kita akan membahas bagaimana cara menulis cd menggunakan module i2c
APA SIH I2C ITU ?
Module i2c 1602
Yang dimaksud dengan I2C LCD adalah modul LCD yang dikendalikan secara serial sinkron dengan protokol I2C/IIC (Inter Integrated Circuit) atau TWI (Two Wire Interface). Normalnya, modul LCD dikendalikan secara parallel baik untuk jalur data maupun kontrolnya. Namun, jalur parallel akan memakan banyak pin di sisi kontroller (misal Arduino, Android, komputer, dll). Setidaknya Anda akan membutuhkan 6 atau 7 pin untuk mengendalikan sebuah modul LCD. Dengan demikian untuk sebuah kontroller yang ‘sibuk’ dan harus mengendalikan banyak I/O, menggunakan jalur parallel adalah solusi yang kurang tepat.
Sebagai contoh, sebuah Arduino Uno memiliki pin digital sebanyak 13 buah. Jika Anda gunakan separuhnya untuk mengendalikan LCD berarti Anda hanya punya alternatif sekitar 6 atau 7 pin untuk mengendalikan perangkat yang lain, misalnya motor DC, sensor cahaya, keypad, dan I/O devices lainnya. Nah, sekarang tergantung pada sistem Anda, cukup atau tidak jika harus menggunakan 6/7 pin khusus untuk bekerja dengan LCD saja. Jika tidak cukup, Anda dengan mengubah jalur kendali LCD dari parallel ke serial (I2C) menggunakan modul I2C converter, sehingga Anda hanya akan membutuhkan 2 jalur kabel saja (plus satu kabel ground) untuk menghubungi sang LCD.
Arduino sendiri sudah mendukung protokol I2C/IIC. Di papan Arduino Uno, port I2C terletak pada pin A4 untuk jalur SDA (Serial Data) dan pin A5 untuk jalur SCL (Serial Clock). Jangan lupa untuk menghubungkan jalur kabel Ground antara Arduino dengan perangkat I2C client. Untuk sisi software, Arduino sudah cukup membantu kita bekerja dengan protokol ini melalui library ‘Wire.h’. Berikutnya, library ini akan dimanfaatkan untuk mengkonversi jalur parallel LCD menjadi jalur serial I2C. Anda dapat secara manual melakukannya, tapi jika tidak ingin repot, Anda dapat dengan mudah melakukannya menggunakan library LiquidCrystal_I2C.h. (source : http://saptaji.com)
- library I2C DOWNLOAD DI SINI
langsung saja ikuti wiring diagram seperti ini dan pastikan memasang module i2c dengan benar
setelah itu ikuti coding di bawah ini
#include <Wire.h> // memanggil i2c
#include <LiquidCrystal_I2C.h> // Memanggil i2C LCD Library
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{
// initialize the LCD
lcd.begin();
lcd.print("Hello, world!");
delay (1000);
lcd.setCursor(0,1);
lcd.print("Test Backlight ");
delay (1000);
for (int i=0; i<5; i++){
lcd.noBacklight();
delay(200);
lcd.backlight();
delay(200);}
lcd.setCursor(0,1);
lcd.print("Test noDisplay");
delay (1000);
for (int i=0; i<5; i++){
lcd.noDisplay();
delay(200);
lcd.display();
delay(200);}
lcd.setCursor(0,1);
lcd.print("Test UL Cursor ");
delay (1000);
for (int i=0; i<5; i++){
lcd.cursor();
delay(500);
lcd.noCursor();
delay(500);}
lcd.setCursor(0,1);
lcd.print("Test BL Cursor ");
delay (1000);
for (int i=0; i<5; i++){
lcd.blink();
delay(500);
lcd.noBlink();
delay(500);}
lcd.setCursor(0,1);
lcd.print("Test Text Scroll");
delay (1000);
lcd.setCursor(0,0);
lcd.print("Hello, world!");
for (int i=0; i<16; i++){
lcd.scrollDisplayRight();
delay(200);}
for (int i=0; i<16; i++){
lcd.scrollDisplayLeft();
delay(200);}
lcd.setCursor(0,1);
lcd.print("<- Right to Left");
delay (1000);
lcd.clear();
lcd.rightToLeft();
lcd.setCursor(15,0);
lcd.print("Hello, world!");
delay(3000);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("Left to Right ->");
delay (1000);
lcd.leftToRight();
lcd.setCursor(0,0);
lcd.print("Hello, world!");
}
void loop()
{
// jangan di apa apa in ini
}
NOTE JIKA LCD TIDAK TAMPIL TULISAN HANYA KOTAK KOTAK,
Brati addreess i2c yang sobat pakai berbeda
BAGAIMANA MENGETAHUI ALAMAT I2C YANG SOBAT PAKEK ???
Silahkan copy sketch dibawah ini
#include <Wire.h> // Memanggil i2c
void setup()
{
Wire.begin();
Serial.begin(9600);
while (!Serial); //wait for serial monitor
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4)
{
Serial.print("Unknow error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000); // wait 5 seconds for next scan
}Setelah kamu copy sketch buka serial monitor yang ada di aplikasi arduino
dan disitu kelihatan alamat I2C yang sobat pake
SELAMAT MENCOBA
No comments:
Post a Comment