Mengapa Auto Scan
Program LCD I2C dengan Arduino biasanya memiliki dua langkah, yang pertama adalah scan alamat I2C nya kemudian setelah dapat baru kita set di program baru dengan men deklarasi address nya dan tipe LCD nya, apakah mengunakan 16×2 atau dengan 20×4. Lebih jelas nya teman-teman mikro bisa lihat pada link di bawah ini
Program LCD I2C dengan Arduino
Namun cara ini cukup berbahaya dan riskan, sebagai contoh ketika ada kerusakan pada LCD I2C nya, nah bagaiaman cara ganti komponen ini? apakah perlu di program ulang? apakah harus kita cari alamat I2C yang sesuai? padahal menurut pengalaman yang saya uji sendiri, berbeda-beda alamat I2C nya. Tidak flexible kan tentu nya?
Pastikan membaca sampai akhir, karena mungkin saja program nya gak jalan, karena ada catatan di bagian akhir
Setelah cari beberapa refrensi ternyata ada tutorial nya di belajararduino.com, namun di buat watermark nya, setiap run program di arduino, muncul tulisan belajararduino.com, ^_^ akhir nya kita coba modifikasi library nya dan membuang beberapa fungsi pada LCD yang jarang di pakai. Untuk lebih jelas nya yuk kita coba lihat program di bawah ini, oh iya, sebelumnya teman-teman coba download dulu library nya ini, library yang sudah di modifikasi.
download library autoscan arduino
Contoh Program LCD
Contoh program LCD arduino sudah ada di file example pada link download di atas, tapi lebih jelas nya berikut contoh program nya,
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(16, 2); void setup() { // put your setup code here, to run once: lcd.autoAddress(); lcd.begin(); lcd.setCursor(0,0); lcd.print("TEST LCD"); } void loop() { // put your main code here, to run repeatedly: lcd.setCursor(0,1); lcd.print(millis()/1000); }
Begitu run program di atas di arduino, maka arduino akan deteksi langsung alamat I2C nya kemudian di set otomatis. Jadi kita gak gitu ribet lagi, scan address dulu baru program. Jika ada kerusakan pada LCD atau I2C nya, kita tinggal ganti dengan device baru colok langsung jalan, tanpa harus merubah program karena menyesuaikan alamat device baru lagi.
Kelemahan AutoSet Address
Namun kami mendapati beberapa kelemahan dari autoset Address ini, yaitu kita jadi tidak bisa menggunakan banyak LCD i2C pada library ini. Mungkin ini sebab kenapa pemrogram asal library ini tidak membuat auto set Address. Atau mungkin ada yang lebih expert dalam program library ini, autoset Address namun bisa menggunakan banyak LCD, Kalo kita di mikroavr seperti nya belum bisa.
Catatan Penting:
di library ini ada beberapa fungsi yang sudah kami buang, jadi ada beberapa fungsi yang error ketika di deklarasi. Karena fungsi ini memang jarang di gunakan, jadi boros memory, berikut list fungsi yang sudah di buang
void LiquidCrystal_I2C::noDisplay()
void LiquidCrystal_I2C::noCursor()
void LiquidCrystal_I2C::cursor()
void LiquidCrystal_I2C::noBlink()
void LiquidCrystal_I2C::blink()
void LiquidCrystal_I2C::scrollDisplayLeft(void)
void LiquidCrystal_I2C::scrollDisplayRight(void)
void LiquidCrystal_I2C::leftToRight(void)
void LiquidCrystal_I2C::rightToLeft(void)
void LiquidCrystal_I2C::autoscroll(void)
void LiquidCrystal_I2C::noAutoscroll(void)
void LiquidCrystal_I2C::createChar(uint8_t location, uint8_t charmap[])
void LiquidCrystal_I2C::noBacklight(void)
void LiquidCrystal_I2C::backlight(void)
Catatan penting lain nya adalah jika teman-teman sudah install library original di arduino anda, maka hapus dulu directory nya di C:\xxxx\xxxx\Documents\Arduino\libraries\Arduino-LiquidCrystal-I2C-library-master.
xxxx adalah alamat directory di PC anda, oke
Selamat mencoba