Arduino ile LCD ekran kullanırken i2c protokolünü kullanan modüller kullanılabilmektedir. Bu modüller 2 adet pin ile ekranların kullanımını sağlamaktadır.
Arduino ile birlikte i2c modülünü kullanarak kodlama yapmak mümkündür.
Ekranın kullandığı haberleşme protokolünü öğrenmek için aşağıdaki kodları kullanabilirsiniz.
//Görsel İşitsel Teknoloji Kanalı
//wwww.teknikerler.com
//Kerim Arı Youtube kanalı i2c LCD Haberleşme protokolü öğrenme Kodları - kullanımı örnek Kodları
#include <Wire.h>
void setup()
{
Serial.begin (9600);
Serial.println ("I2C Ekran türü okunuyor...");
Wire.begin();
for (byte e = 8; e < 150; e++)
{
Wire.beginTransmission (e);
if (Wire.endTransmission () == 0)
{
Serial.println ("İletişim yolu bulundu ..OK");
Serial.print ("Ekran Türü : ");
Serial.print (e, DEC);
Serial.print (" (0x");
Serial.print (e, HEX);
Serial.println (")");
}
}
Serial.println ("Tamamlandı. ");
}
void loop() {}
Ekranınızın haberleşme protokolünü öğrenmişseniz artık ekranınıza yazılar yazdırmaya başlayabilirsiniz.
//Görsel İşitsel Teknoloji Kanalı
//wwww.teknikerler.com
//Kerim Arı Youtube kanalı i2c LCD kayan yazı Kodları - kullanımı örnek Kodları
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);
char * mesajiniz = " Gorsel, isitsel, Teknoloji Kanalıma Hosgeldiniz. Kanalima abone olmayi ve bu videoyu begenmeyi unutmayin. ";
void setup()
{
lcd.init();
lcd.backlight();
lcd.setCursor(1,0);
lcd.print("Merhaba Dunya");
}
void loop()
{
for (int letter = 0; letter <= strlen(mesajiniz) - 16; letter++)
{
showLetters(0, letter);
}
}
void showLetters(int printStart, int startLetter)
{
lcd.setCursor(printStart, 1);
for (int letter = startLetter; letter <= startLetter + 15; letter++) // Print only 16 chars in Line #2 starting 'startLetter'
{
lcd.print(mesajiniz[letter]);
}
lcd.print(" ");
delay(250);
}
//Görsel İşitsel Teknoloji Kanalı
//wwww.teknikerler.com
//Kerim Arı Youtube kanalı i2c LCD Kodları - kullanımı örnek Kodları
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F,16,2);
int pot = A0;
void setup()
{
lcd.init();
lcd.backlight();
lcd.setCursor(1,0);
lcd.print("Merhaba Dunya");
lcd.setCursor(6,1);
lcd.print("GiT");
delay(2000);
lcd.clear();
}
void loop()
{
int pot_dgr = analogRead(pot);
lcd.clear();
lcd.setCursor(0,0);
// lcd.autoscroll();
lcd.print("EKRAN TEST");
lcd.setCursor(0,1);
lcd.print(pot_dgr);
delay(1000);
//delay(1000);
//lcd.noBacklight();
//delay(1000);
//lcd.backlight();
//lcd.blink();
// lcd.cursor();
//delay(350);
}
Merhabalar, i2c ile 4×20 lcd bağladım fakat ekrana yolladığım her text mesajı yada int float vb sadece tek karakter basıyor, örneğin Sıcaklık : dediğimde sadece S karakteri görünüyor, ancak her karakteri ayrı ayrı lcd.print yaparsam tüm metin görünüyor, neden olabilir sizce?
Merhaba, Kullanmış olduğunuz kütüphaneden kaynaklanıyor olabilir. Farklı bir kütüphane ile deneyin.