PCF8574 ile I2C LCD Yapımı ve Arduino ile Kullanımı

Yine bir ucuz çözüm yazısında birlikteyiz. Projelerinizde dijital pin tasarrufu sağlamak için i2c yolu en kolay çözümlerden birisi sanırım. Normal LCD bağlantısı yaparsanız 6 dijital pin kullanmak durumundasınız, bu da 14 dijital pine sahip Arduino Uno gibi modellere bir hayli yüksek bir rakam. LCD için 6 dijital pin ayıramadığınız projeleriniz için bu yazıda anlattıklarım basit bir çözüm olabilir.

Gerekli Malzemeler:

  1. 1 adet HD44780 denetleyicili 16×2 Karakter LCD
  2. 1 adet PCF8574
  3. 1 adet 1K direnç
  4. 1 adet 680 ? direnç
  5. 1 adet BC557 transistör
  6. 1 adet 10K trimpot
  7. Bağlantılar için kablo

Yukarıda şemasını verdiğim devreyi breadboard ya da delikli bakır plakete kurduktan sonra SDA-Arduino Analog4 ve SCL-Arduino Analog5 bağlantılarını yapıyoruz. Aşağıdaki bağlantılardan LiquidCrystal_I2C kütüphanesini indirip yüklüyoruz.

Aşağıda çok basit bir örnek program paylaşıyorum. Kütüphane ile birlikte de birkaç örnek geliyor. Onları da inceleyerek kütüphanenin tüm fonksiyonlarını öğrenebilirsiniz. Pek çok fonksiyon standart LCD kütüphanesindekiyle aynı.

//Arduinoturkiye.com PCF8574 I2C LCD Deneme Programı
#include <Wire.h> // Wire kütüphanesini ekliyoruz.
#include <LiquidCrystal_I2C.h> // LiquidCrystal_I2C kütüphanesini ekliyoruz.

LiquidCrystal_I2C lcd(0x20,16,2);  // 16 karakter, 2 satır LCD için bağlantı adresi:0x20

void setup()
{
  lcd.init(); // LCDmizi başlangıç durumuna getiriyoruz.
  // LCDmizin 2 satırına da mesaj yazdıracağız.
  lcd.backlight(); // Arkaplan ışığını yakıyoruz.
  lcd.setCursor(0,0); // İmlecimizi 1. satıra ayarlıyoruz.
  lcd.print("ArduinoTurkiye"); // 1. satıra yazdırmak istediğimiz mesajı yazdırıyoruz.
  lcd.setCursor(0,1); // İmlecimizi 2. satıra ayarlıyoruz.
  lcd.print("I2C LCD Denemesi"); // 2. satıra yazdırmak istediğimiz mesajı yazdırıyoruz. 
}

void loop()
{
}

PCF8574 yerine PCF8574A da kullanabilirsiniz aynı bağlantı şemasıyla. Fakat bağlantı adresini 0x38 şeklinde değiştirmek gerekiyor. Ayrıca topraklanan pinlerin durumuna göre oluşan farklı adreslerle birden fazla LCD de kullanabilirsiniz.

Ä°yi çalışmalar…

Kaynaklar:

Gerekli Olabilecek Bağlantılar:

Ä°smail

Üniversite öğrencisi, Arduino meraklısı.

33 comments

  1. sinan dedi ki:

    yazınız için teşekkürler, lcd kontrol etmek için sadece 2 pin kullanmak gerçekten çok hoş. Şu anda çalışır durumda bir sistemim ve yazıda anlattığınız şekilde gayet güzel çalışıyor. Size sormak istediğim bir şey var. SDA-A4 ve SCL-A5 i nasıl değiştirebilirim. Örneği SDA-A2 ve SCL-A3 olarak.

  2. İsmail Buçgün dedi ki:

    Merhaba,
    SDA ve SCL donanımsal olarak belirlendiğinden sonradan değiştirilmiyor bildiğim kadarıyla. Fakat bu 2 pine ek olarak yeni bir i2c yoluna ihtiyacınız varsa bunu çeşitli kütüphanelerle sağlayabilirsiniz. Şu adresteki kütüphane işinizi görecektir. http://forums.adafruit.com/viewtopic.php?f=25&t=13722 Ayrıca aynı i2c yoluna birden çok ürün bağlayabilirsiniz çalışma voltajları aynı olmak koşuluyla.

  3. murat dedi ki:

    Merhaba Ä°smail bey,

    Bu devreyi ısı ve nem ölçer şeklinde göstermeniz mümkün mü?

  4. İsmail Buçgün dedi ki:

    Merhaba,
    Hangi sensörleri kullanacağınızı söyleyebilirseniz yardımcı olabilirim. Ayrıca yorumlardan kod paylaşmak zor oluyor biraz forumda konu açarsanız daha iyi olur.

  5. onur dedi ki:

    saygı deger abilerim kardeşlerim benim proje ödevim var http://www.instructables.com/id/Arduino-Bike-Speedometer/?ALLSTEPS
    bu hız ölçeri yapacam kullanılan lcd den yoktu bulamadım elimdeki lcd CA1602h sizden ricam bu konu hakkında bana yardımcı olursanız sevinirim mezun olucam olamıyom bu devrenın bendeki lcd ye bağlantısını bide yazılımını yazarsanız çok sevinirim hergün dua ederim yazılımı yazılmış yanlız düzenlemeler gerekıyor galiba

  6. Ömer Koman dedi ki:

    onur verdiÄŸin ÅŸemada lcd i2c deÄŸil serial olarak baÄŸlanmış ama o ÅŸemada sanki lcd ye direk baÄŸlanıyor gibi çizilmiÅŸ kullanma onu. ÅŸurada http://arduinoturkiye.com/arduino-temel-baglantilar-arduino-basic-connections/ 11 nolu grafikle elindeki lcd yi kullanabilirsin. arduino standard lcd kütüphanesini http://fritzing.org/projects/how-to-connect-a-qy-1602a-lcd-to-arduino-correctly/ kullanabilirsin. kullanmak istediÄŸin devre A0 portuna baÄŸlı reed anahtarı saymak veya sürelerini ölçmekten ibaret. sonucu ister bilgisayardan göster ister lcd den farketmez. gördüğün her yazının altına giriÅŸ yapman gereksiz sadece bir tanesi yeterli. forumdan da faydalanabilirsin. projenini çaktırmadan bize bitirtme bu arada…

  7. sumeyre dedi ki:

    Merhsba,
    Ben srduino konusunda çok acemiyim. Devreyi şemaya göre yapmaya çalıştım ama pek anlayamadım. Fotoğraftan bakarak yapmaya çalışıyorum. Başka fotoğraf varsa farklı açılardan yükleyebilir misiniz?
    Şimdiden çok teşekkür ederim.

  8. Ömer Koman dedi ki:

    başka fotoğraf yok. kullanılan malzemelerin datasheetlerini indir bir kağıda bacak bağlantılarını yukarıdaki şemaya göre çiz gerisi gelir. kolay gelsin

  9. Ahmet Turan dedi ki:

    ardiuno ile 7 segment display de (mesela 2den fazla display ile) yazı kaydırma nasıl yapabilirim?

    • Ömer Koman dedi ki:

      ahmet bey önce tekli 7 segment bağlayıp bir programlayıp deneyin öğrenin nasıl sürülüyor. daha sonra şemayı alın. 7 segmenlerin a b c d e f g dot hatlarını ortak bağlayın tasarıma göre ortak anaot veya ortak katot bacakları ayrı birer transistörle süreceksiniz. kodu yazarken önce birinci 7 segmenti transistörünü sürecek daha sonra 1. transistörü kapatıp 2. segmentin transistörünü sürüp veriyi basacaksınız. buna multıplexed 7 segment denir. http://learn.parallax.com/4-digit-7-segment-led-display-arduino-demo

  10. ÖZAY YILMAZ dedi ki:

    bir sorum olacak ama bu I2C Bağlantısını dijital girişlere bağlayamaz mıyız
    kart üzerinde sadece A5 A4 E sda ve scl giriş yapılabiliyor I2C ile yapılan LCD ve saat modülü aynı anda kullanmak istiyorum bu girişler çoğaltılabilirmi

  11. Ömer Koman dedi ki:

    i2c baÄŸlantısı hardware olarak a4 a5 üstünden kullanılabilir diÄŸer diÄŸital portları kullandığınızda softI2C modulu (https://github.com/rweather/arduinolibs/blob/master/libraries/I2C/SoftI2C.cpp) kollanmanız lazım. birden fazla pcf8574 kullanabilirsiniz bir tanesini lcd ye bir tanesini keyboarda baÄŸlarsınız sda ve scl pinleri aynı anda paralel baÄŸlanacak adresleri deÄŸiÅŸtirmeniz lazım iki pcf aynı adreste olamaz, okurken ve yazarken ilgili olan i2c modulunun adresini kullanacaksınız…

    • ÖZAY YILMAZ dedi ki:

      teşekkür ederim ömer bey değişik örneklerle bu konuyu pekiştirmem lazım
      ı2c LCD ve saati sda ve scl bağlantılarını parelel olarak bağlayınca çalıştırabildim sizin örnek kodlaınız üzerinde değişiklik yaparak
      saat fonksiyonuna bir alarm fonksiyonu ekledim
      kodları
      #include // Wire kütüphanesini ekliyoruz.
      #include // DS1307new kütüphanesini ekliyoruz.
      #include

      int led =13;
      int saat=17;//alarm için başlangıç saati
      int dakika=39;//alarm için başlangıç dakikası
      int saniye=00;//alarm için başlangıç saniyesi

      LiquidCrystal_I2C lcd(0x38,16,2);
      // DeÄŸiÅŸkenler
      uint16_t startAddr = 0x0000; // NV-RAM’de saklamak için baÅŸlangıç adresi
      uint16_t lastAddr; // NV-RAM’de saklamak için yeni adres
      uint16_t TimeIsSet = 0xaa55; // Saatin tekrar ayarlanmamasına yardımcı olur.

      void setup()
      {
      pinMode (led,OUTPUT);

      // Store startAddr in NV-RAM address 0x08
      RTC.setRAM(0, (uint8_t *)&startAddr, sizeof(uint16_t));

      RTC.getRAM(54, (uint8_t *)&TimeIsSet, sizeof(uint16_t));
      if (TimeIsSet != 0xaa55)
      // Saat ve tarih daha önce ayarlanmış mı kontrol ediyoruz. Eğer ayarlanmamışsa
      // TimeIsSet değişkeni 0xaa55 değerine eşit değilse aşağıda girdiğimiz
      // verilerle saati ayarlamış oluruz.
      {
      RTC.stopClock();

      // Bu kısımdan sketchi yüklemeden önce tarih ve saati ayarlayabilirsiniz.
      // Bir kez ayarlayıp yükledikten sonra tekrar tarih saat ayarı yapabilmek
      // için entegreye bağlı batarya bağlantısı ve Arduinodan sağladığımız
      // 5v enerjiyi kesip bir süre beklemek gerekiyor. Daha sonra programda tarih
      // ve saati ayarladıktan sonra yüklediğinizde NV-RAMe ayarladığınız tarih ve
      // saat bilgileri kaydedilecektir. İlk satırı (Yıl,Ay,Gün), ikinci satırı
      // (Saat,Dakika,Saniye) formatında yazmanız gerekiyor.

      RTC.fillByYMD(2014,3,10);
      RTC.fillByHMS(9,54,0);

      RTC.setTime();
      TimeIsSet = 0xaa55;
      RTC.setRAM(54, (uint8_t *)&TimeIsSet, sizeof(uint16_t));
      RTC.startClock();
      }
      else
      {
      RTC.getTime();
      }
      {
      lcd.init();
      lcd.backlight();
      }
      }
      void loop()
      {

      RTC.getTime(); // Saat ve Tarih verilerini al

      if ((RTC.hour == (saat))&&(RTC.minute ==(dakika))&&(RTC.second ==(saniye)))
      {
      lcd.setCursor(4,1);
      lcd.print(“ALARM”);
      digitalWrite(led,HIGH);//led yerine buzzer kullanılabilir
      delay(2000);
      digitalWrite(led,LOW);
      delay(500);
      digitalWrite(led,HIGH);
      delay(2000);
      digitalWrite(led,LOW);
      delay(500);
      digitalWrite(led,HIGH);
      delay(2000);
      digitalWrite(led,LOW);
      delay(500);
      digitalWrite(led,HIGH);
      delay(1000);
      }
      else if
      ((RTC.hour == (saat))&&(RTC.minute == (dakika))&&(RTC.second == (saniye+10)))
      {
      digitalWrite(led,LOW);
      lcd.clear();
      }
      {
      lcd.setCursor(0,0);
      if (RTC.hour < 10)
      {
      lcd.print("0");
      lcd.print(RTC.hour);
      }
      else
      {
      lcd.print(RTC.hour);
      }
      lcd.setCursor(2,0);
      lcd.print(":");
      lcd.setCursor(3,0);
      if (RTC.minute<10)
      {
      lcd.print("0");
      lcd.print(RTC.minute);
      }
      else
      {
      lcd.print(RTC.minute);
      }
      lcd.setCursor(5,0);
      lcd.print("-");
      lcd.setCursor(6,0);
      if (RTC.day<10)
      {
      lcd.print("0");
      lcd.print(RTC.day);
      }
      else
      { lcd.print(RTC.day);
      }
      lcd.setCursor(8,0);
      lcd.print("/");
      lcd.setCursor(9,0);
      if (RTC.month<10)
      {
      lcd.print("0");
      lcd.print(RTC.month);
      }
      else
      {
      lcd.print(RTC.month);
      }
      lcd.setCursor(11,0);
      lcd.print("/");
      lcd.setCursor(12,0);
      lcd.setCursor(12,0);
      lcd.print(RTC.year);
      }
      }

  12. Mehmet dedi ki:

    Gerçekten çok güzel bir yazı

    Sitenizde araştırdım ama birden fazla ic2 slave cihaz ile nasıl haberleşilir.
    ic2 cihazların adres yapılandırmasını anlatan bir konuyu beklemekteyim.

    teşekkürler

    • Ömer Koman dedi ki:

      merhaba i2c slave cihazın desteklediği adres hattı sayısı kadar i2c slave cihaz bağlayabilirsiniz. yazıdaki pcf entegrenin 3 adet A0 A1 A2 adres bacakları var yani aynı anda 8 slave cihaz veya lcd sürebilirsiniz. A0..A2 adres pinleri gnd yani low yapılmış bu da hex 20 ye denk gelmektedir.
      adres formatınız şöyle A lar sırasıyla(A2 A1 A0) adres bitleriniz x okuma yazma biti şu anda önemsiz dikkate almayın (0100(AAA)x)
      yazıda lcdinit kısmında geçen 0x20 adresi 0100(000) bitlerine denk gelir
      0x21 adresini kullanmak isterseniz 0100(001) olduğundan pcf deki A0 pinini +5v a bağlamak yeterli. (bilgisayarınızdaki hesap makinasında programcı moduna geçip bitleri tek tek yazıp onaltılı görünümde bakıp test edebilirsiniz)

      aynı anda 2 i2c lcd kullanmak istersek programı aşağıdaki gibi düzenleyin.
      [code]
      //Arduinoturkiye.com PCF8574 I2C LCD Deneme Programı
      #include Wire.h> // Wire kütüphanesini ekliyoruz.
      #include LiquidCrystal_I2C.h> // LiquidCrystal_I2C kütüphanesini ekliyoruz.

      LiquidCrystal_I2C lcd(0x20,16,2); // 16 karakter, 2 satır LCD için bağlantı adresi:0x20

      LiquidCrystal_I2C lcd2(0x21,16,2); // 16 karakter, 2 satır LCD için bağlantı adresi:0x21 pcf de A0 pinini +5v yapın A1 ve A2 pinleri gnd de kalacak

      void setup()
      {
      lcd.init(); // LCDmizi başlangıç durumuna getiriyoruz.
      // LCDmizin 2 satırına da mesaj yazdıracağız.
      lcd.backlight(); // Arkaplan ışığını yakıyoruz.
      lcd.setCursor(0,0); // İmlecimizi 1. satıra ayarlıyoruz.
      // lcd 2 ayarlamaları
      lcd2.init(); // LCDmizi başlangıç durumuna getiriyoruz.
      // LCDmizin 2 satırına da mesaj yazdıracağız.
      lcd2.backlight(); // Arkaplan ışığını yakıyoruz.
      lcd2.setCursor(0,0); // İmlecimizi 1. satıra ayarlıyoruz.
      }
      void loop()
      {
      lcd.print(“ArduinoTurkiye”); // 1. satıra yazdırmak istediÄŸimiz mesajı yazdırıyoruz.
      lcd.setCursor(0,1); // İmlecimizi 2. satıra ayarlıyoruz.
      lcd.print(“I2C LCD Denemesi”); // 2. satıra yazdırmak istediÄŸimiz mesajı yazdırıyoruz.
      // 2.lcd ye yazı yazdırma
      lcd2.print(“ArduinoTurkiye”); // 1. satıra yazdırmak istediÄŸimiz mesajı yazdırıyoruz.
      lcd2.setCursor(0,1); // İmlecimizi 2. satıra ayarlıyoruz.
      lcd2.print(“I2C LCD Denemesi”); // 2. satıra yazdırmak istediÄŸimiz mesajı yazdırıyoruz.
      while(1=1){
      //sonsuz dongu
      }
      }
      [/code]

  13. Alper dedi ki:

    Merhaba elimde 16×2 lcd var. entegre pcf8574t var. 4 çıkışlı. gnd-gnd ye vcc 5v a sda ve scl ise duo da ki AREF den sonra ki SDA ve SCL çıkışlarına baÄŸlandı.
    //Arduinoturkiye.com PCF8574 I2C LCD Deneme Programı
    #include // Wire kütüphanesini ekliyoruz.
    #include // LiquidCrystal_I2C kütüphanesini ekliyoruz.

    LiquidCrystal_I2C lcd(0x20,16,2); // 16 karakter, 2 satır LCD için bağlantı adresi:0x20

    void setup()
    {
    lcd.init(); // LCDmizi başlangıç durumuna getiriyoruz.
    // LCDmizin 2 satırına da mesaj yazdıracağız.
    lcd.backlight(); // Arkaplan ışığını yakıyoruz.
    lcd.setCursor(0,0); // İmlecimizi 1. satıra ayarlıyoruz.
    lcd.print(“ArduinoTurkiye”); // 1. satıra yazdırmak istediÄŸimiz mesajı yazdırıyoruz.
    lcd.setCursor(0,1); // İmlecimizi 2. satıra ayarlıyoruz.
    lcd.print(“I2C LCD Denemesi”); // 2. satıra yazdırmak istediÄŸimiz mesajı yazdırıyoruz.
    }

    void loop()
    {
    }
    kodunuzu giriyorum ama çalıştıramıyorum.
    sanırım “lcd.init();” bur da hata veriyor. internetten farklı kodları çalıştırdım ama mavi ekran yanıyor ama yazı çıkmıyor. Yardımlarınızı rica ederim. LCD mi bozuk diye düşünüyorum.

    • Ömer Koman dedi ki:

      lcd li her projede bir sıkıntı oluyor lcd uzerınde yazan kodlardan internette datasheetını bulun pcf ile lcd arasında yazan d4 d5 d6 d7 etiketli pinler ile datasheette bu pinleri lcd de bulun ve neredeysa oraya baÄŸlamanız lazım en rw rs etiketli pinleride aynı ÅŸekilde bulun potansiyometrenin konumuda önemli onuda sola saÄŸa çevirip kontras yapıp ekranı görünür yapın. lcd pinlerinden emin olmadan hiç bir ÅŸeyi çalıştıramazsınız. bir pin bile deÄŸiÅŸk hatalı olamaz. baÄŸlantılarınız gerekirse 10 kere deÄŸiÅŸtirin veya sökün tekrar yapın…

  14. Alper dedi ki:

    Ömer Bey teşekkür ederim. sorunu çözdüm. 1.olarak lcd arkasında pot olduğunu farketmemiştim. Onunla yazı karakterlerini okunur hale getirdim. 2. olarak 0x20 kullanıyordum. onu 0x27 yaptım ve tüm sorunlarım çözüldü.

  15. Mehmet dedi ki:

    Merhaba PCF8574 entegreli bir i2C LCD modülü aldım

    Fakat sanırım donanımsal bir sorun var
    Arduino’da 0. kesmede herhangi bir sorun olmazken 1. kesmede simulasyonda donma meydana geliyor…

    attachInterrupt(Reset_irq, resetleme, RISING);
    attachInterrupt(1, KesmeyeGit, RISING);

    Kesmeler ve i2C LCD kullanımında böyle sorunlar yaşayan oldu mu ?

  16. mehmet dedi ki:

    Arduinho ile ortam aydınlıgı ölçen bir proje yapıyorum bende.Ama Ortamın aydınlık derecesine göre sistem kendini artırıp azaitacak.Belli bir degerin altında sistem kendini otomatikmen kapatacak bunu nasıl yapabilirim.Yardımcı olursanız çok sevinirim.Åžimdiden teÅŸekkürler…

  17. MEHMET AY dedi ki:

    Hayırlı günler.
    Çalıştığım yerde Mitsubishi PLC kullanılyor, PLC ile ihtiyacım olan her şeyi yapabilmekle beraber, Arduino ile yeni tanıştım. Kendim EML. mezunuyum, ona göre yardımınızı rica edeceğim.
    BoÅŸ zamanlarda, Saat ve namaz vakitlerini göstermek amacıyla, 10 adet displaya (1 display 4 bit BCD sürülüyor), PLC’deki 8 bitlik dataları, 3 çıkış ile ( Clock-Data-Write) shift register ve BCD display sürücü entegre kullanarak ilettim. Sistem 4-5 yıldır sıkıntısız çalışmakta.
    Åžimdi sorum ÅŸu;
    1-) Arduino’ya gerçek zaman saati baÄŸlamak. (Bunda sıkıntı yok)
    2-) Ardiuno’daki zaman bilgisinin RF 315/433 MHz Transmitter-receiver Module ile aptal bir LCD veya LED displaya aktarmak. ( Amaç evdeki tüm odalara aynı aptal terminalden baÄŸlayıp, saatlerin hepsinin aynı olmasını saÄŸlamak.)
    3-) Daha sonra ise bir wifi modül ilave edip, Ardiuno’nun gerçek zaman saati sunucusu ile kendini senkronize etmesini saÄŸlamak.
    Ben elektronik mezunuyum ve şamasını, bilgisini vereceğiniz her şeyi yapabileceğime, temin edebilceğime inanıyorum. Konu hakkında yönlendirir iseniz çok sevinirim, ve sonuçlarıda paylaşırım. Güzel ve faydalı bir çalışma olacagını tahmin ediyorum. Selamlar. Mehmet Ay

  18. gökhan dedi ki:

    bende aynı işlemleri yaptım ama mega kullanıyorum2560 çalıştıramadım hiç bir yazı cıkmıyor

    • Ömer Koman dedi ki:

      yukarıdaki şemayı mı uyguladınız bire bir yoksa i2c hazır lcd mi aldınız. hazır olan br şey aldıysanız protokolu farklı olabılır haberleşmede şemeasını inceleyin. i2c de adres bilgisi onemli orayı nasıl yapıyorsunuz o kısımları kontrol edin.

  19. Tunç Polat Edizsoy dedi ki:

    Ömer Hocam merhaba,
    Değerli bilgiler için teşekkür ederiz. Arduino ile hobi olarak ilgileniyorum. Biligisizliğimi maruz görün. Lcd yi I2c olarak kullandığımızda bağlantı adresi her zaman 0x20 midir? Ya da bu adres neye göre değişir nasıl belirlenir?

  20. Ömer Koman dedi ki:

    yukarıdaki ÅŸemada pcf entegrenin adres pinleri gorunuyor A0 A1 A2 VE 8 tane(2 uzeri 3) i2c pcf entegresi paralel baÄŸlanabilir. i2c ile haberleÅŸirken ÅŸu adrese ÅŸunu yaz bunu oku ÅŸeklinde çalışır baz adres deÄŸiÅŸmez bu adresten itibaren 8 tane adresi kullanabilirsin. baÅŸka i2c entegrelari baÅŸka baz adrsleri kullanabilir datasheetlere bakmanıza fayda var… yıkarıdaki yorumlarda adresleme ile ilgili bilgi vermiÅŸim bakarsınız.

  21. engin kanat dedi ki:

    konu çok eski ama yardımcı olacak birileri çıkar diye umuyorum. Yukarıdaki devreyi kurdum fakat çalıştıramadım. nedenini araÅŸtırıken yabancı bir sitede farklı bir kütüphane kullanın denilmiÅŸ. kütüphaneyi deÄŸiÅŸtirdim ve sonuç aldım. ama ÅŸimdide sadece ilk harfi gösteriyor gerisi yok “arduino turkiye” yazdım sadece “a” harfi görülüyor

    • Ömer Koman dedi ki:

      yukarıdaki devre denenmiş bir devre yazının altında kutuphane de belirtilmiş çalışması lazım. tek sıkıntı olabilecek şey arduino ide devemlı gelişiyor 4 senede bir çok versiyon çıkardılar kodlarda ufak tefek ayarlar gerekebiliyor. son dönemde deneyemedık. yazıyı yazan arkadaş artık sitemizde bulunmuyor. yeni kutuphanenıze gore bır harf yazdırabılmenız de başarı bu kodlara gore degıl kutuphaneyı buldugunuz yerde i2c lcd kodunu deneyın derım. uyumsuzluk olabılır bızdekı kodlarla.

  22. Erhan Silkin dedi ki:

    /* Demonstration sketch for PCF8574T I2C LCD Backpack
    Uses library from https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads GNU General Public License, version 3 (GPL-3.0) */
    #include
    #include
    #include

    LiquidCrystal_I2C lcd(0x3F,2,1,0,4,5,6,7); // 0x27 is the I2C bus address for an unmodified backpack

    void setup()
    {
    // activate LCD module
    lcd.begin (16,2); // for 16 x 2 LCD module
    lcd.setBacklightPin(3,POSITIVE);
    lcd.setBacklight(HIGH);
    }

    void loop()
    {
    lcd.home (); // set cursor to 0,0
    lcd.setCursor(0,0); // İmlecimizi 1. satıra ayarlıyoruz.
    lcd.print(” ERHAN SILKIN”); // 1. satıra yazdırmak istediÄŸimiz mesajı yazdırıyoruz.
    lcd.setCursor(0,1); // İmlecimizi 2. satıra ayarlıyoruz.
    lcd.print(“I2C LCD Denemesi”); // 2. satıra yazdırmak istediÄŸimiz mesajı yazdırıyoruz.
    }

    bu kodu kullanarak yazı yazdırmayı başardım.

  23. Mustafa dedi ki:

    Hocam ellerinize sağlık. Bizler sitenizi takip ederek uydu sistemlerine olan ilgimizi şu an için tamamen elektroniğe çevirmiş durumdayız. sizleri ipek bilisim ekibi olarak takip ediyoruz. Led denemesi ile ileriye dönük projeler hazırlamak ve bunu hayata geçirmek hedeflerimiz arasında.

    • Ömer Koman dedi ki:

      tebrikler çalışmalarınızda kolaylıklar dileriz ticari olarak ürün geliştirme zordur gerekli stabil yazılım ve kutuphaneleri çokça denemeniz lazım akla gelen gelmeyen her durumu test etmeyi ihmal etmeyiniz, esd koruma önlemlerini tasarımlarınıza ekleyin arduino çıplak hali ile ne endustrıyel nede ticari hiç bir urunun alt yapısı olamaz piyasa tecrubenizi devrelerınize mutlaka ekleyin.

E-posta adresiniz gösterilmeyecek. Gerekli alanlar * ile işaretlidir.

*



Sosyal AÄŸlar