2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Önceki Instructable'larımdan birinde, bir LCD'yi Arduino Uno'ya nasıl bağlayacağınızı ve arayüzleyeceğinizi ve üzerindeki değerleri nasıl görüntüleyeceğinizi gösterdim. Ancak gözlemlendiği gibi, çok fazla bağlantı vardı ve proje çok fazla kablo nedeniyle çok dağınık olmaya başladıysa.
Bu Eğitilebilir Kitapta, LCD'yi kontrol etmek ve kullanmak için yalnızca 4 pime sahip olacak bir I2C'ye bir LCD'yi nasıl bağlayacağınızı göstereceğim. Öyleyse başlayalım.
Adım 1: Gerekli Bileşenler
Bu proje için ihtiyacınız olacak:
- Arduino Uno
- 16x2 LCD
- 16x2 LCD için I2C
- Bağlantı kabloları
Tüm bunlarla birlikte, bağlantılar kısmına geçelim.
2. Adım: Bağlantılar
Resimlere bakın ve bağlantıları yapın. Oldukça basit, sadece I2C'yi LCD'nin bağlantı noktalarına takmanız ve yerine lehimlemeniz gerekiyor. Ardından SCL pinini Arduino üzerindeki A4 pinine ve SDA pinini Arduino üzerindeki A5 pinine bağlayın.
LCD'de başlık pinlerini zaten lehimlediğim için I2C'yi lehimlemiyorum. Ancak I2C'yi LCD'ye lehimlemenizi öneririm
3. Adım: Kodlayın
Arduino IDE'de bulunan bir LCD I2C ana kütüphanesi vardır. Ancak içindeki kodda küçük bir sorun var. Bu kitaplıktaki tüm örnekler, I2C'nin varsayılan adresini 0x27 olarak kabul eder. Bu yüzden önce I2C'mizin adresini bulmalıyız. Bunu I2C tarayıcı kodunu kullanarak yapabiliriz. I2C adresine sahip olduğumuzda, bu değeri örnek kodda değiştirebilir ve kullanmaya başlayabiliriz.
I2C Tarayıcı Kodu:
#Dahil etmek
geçersiz kurulum() { Wire.begin(); Seri.başla(9600); while (!Seri); // seri monitör için bekle Serial.println("\nI2C Tarayıcı"); } void loop() { bayt hatası, adres; int nDevices; Serial.println("Taranıyor…"); nCihazlar = 0; for(address = 1; address < 127; address++) { // i2c_scanner, bir aygıtın adresi kabul edip etmediğini // görmek için Write.endTransmistion'ın // dönüş değerini kullanır. Wire.beginTransmission(adres); hata = Wire.endTransmission(); if (hata == 0) { Serial.print("0x adresinde I2C aygıtı bulundu"); if (adres<16) Serial.print("0"); Serial.print(adres, HEX); Serial.println(" !"); nCihazlar++; } else if (hata==4) { Serial.print("0x adresinde bilinmeyen hata"); if (adres<16) Serial.print("0"); Serial.println(adres, HEX); } } if (nDevices == 0) Serial.println("Hiç I2C cihazı bulunamadı\n"); başka Serial.println("bitti\n"); gecikme (5000); // sonraki tarama için 5 saniye bekleyin }
Örnek Kod(Seri Monitörde girilen karakterleri görüntülemek için):
#include #include
LiquidCrystal_I2C lcd (0x3F, 20, 4); // 16 karakter ve 2 satırlık bir ekran için LCD adresini 0x27 olarak ayarlayın
geçersiz kurulum()
{ lcd.init(); // lcd lcd.backlight()'ı başlat; Seri.başla(9600); }
boşluk döngüsü()
{ // karakterler seri port üzerinden geldiğinde… if (Serial.available()) { // mesajın tamamının ulaşması için biraz bekleyin delay(100); // ekranı temizle lcd.clear(); // mevcut tüm karakterleri oku while (Serial.available() > 0) { // her karakteri LCD'de göster lcd.write(Serial.read()); } } }
Adım 4: Çıktı
Kodu yükledikten sonra, gitmeye hazırsınız. Bu Eğitilebilirlik için Seri Baskı Kodu örneğini aldım. Şimdi kodu yükledikten sonra, Seri Monitörü açın ve bir kelime yazın ve "gönder" e tıklayın. Şimdi bu değerin LCD'de görüntülendiğini görmelisiniz.