Önceki yazımızda PCF8574 I2C Expander (çoklayıcı) çipi ile Arduino’nun pin sayısını artırabileceğimizden bahsetmiştik. Bu yazıda ise PCF8574’ün bize sağladığı bu ek pinleri giriş olarak nasıl kullanacağımızı açıklayacağız.
Önceki yazımızı okumadıysanız ve PCF8574’ün ne olduğunu bilmiyorsanız buraya tıklayarak öncül makaleyi okumanızı tavsiye ederiz. Kısa bir hatırlatma ile başlayalım.
PCF8574’ü Arduino’ya bağlamanın temel yoluna bakalım.
Görüldüğü gibi sadece 4 kablo ile Uno’ya bağlayabildik. Adres pinlerini de ayarladığımızda çipimiz kullanıma hazır olacaktır. Uno’ya tek bir PCF8574 bağlayacaksak 3 adres girişini de GND’ye bağlayarak adresi 0x20 olarak ayarlayabilir ve kullanabiliriz.
Olur da çipin hangi I2C adresinde olduğunu bulamazsak I2C Arduino Modüllerinin Adres Numarası Nasıl Bulunur? adlı makalemizdeki kodu kullanarak bağlı olan I2C cihazların adreslerini bulabiliriz.
ÖNEMLİ: PCF8574’ü harici bir güç kaynağı ile besleyeceksek veya çok fazla I2C modülü bağlayacaksak SDA ve SCL pinlerini 2,2K-10K Ohm arası dirençlerle 5V/VCC hattına bağlamak önerilir.
Sonrasında çıkış pinlerini sanki bir Arduino piniymiş gibi istediğimiz şekilde kullanmamız mümkün.
I2C protokolüne sahip modülleri kullanmak ileri düzey kod bilgisi gerektireceği için Arduino’nun bize tanıdığı en büyük kolaylığı kullanmayı tercih ediyoruz: kütüphane kullanmak. PCF8574 çipi için hazırlanmış pek çok kütüphane yer alıyor. Biz kullanım kolaylığı nedeniyle MSZ98 tarafından hazırlanmış pcf8574 kütüphanesini tercih ediyoruz.
Kütüphaneyi Arduino IDE’nin ana menüsünden Araçlar > Kütüphaneleri Yönet… bölümüne girip pcf8574 kelimesini aratarak MSZ98 tarafından hazırlanmış versiyonu kurarak ekleyebiliriz. Kütüphanenin Github sayfasını merak edenler buraya tıklayabilir.
Aşağıdaki sketch kodu çipin 4 numaralı pinine bağlanan bir buton ile 1 numaralı pinine bağlanmış bir LED’i kontrol ediyor.
loop() döngüsü içinde öncelikle 4 numaralı pinin, yani butonun durumunu okuyor ve oluşturduğumuz buton değişkenine kaydediyoruz. Sonrasında ise bu değeri 1 numaralı pinin konumunu değiştirmek için kullanıyoruz.
Döngüde yorum yapılarak devre dışı bırakılmış kod ise altındaki iki satırlık kodun yaptığını herhangi bir değişken kullanmadan kısa yoldan hallediyor. Bu yöntem kodu kısaltsa da, okunabilirlikten uzaklaştırdığı için yeni başlayanların anlamasını zorlaştırır. Ancak bu şekilde de kullanılabildiğini bilmekte fayda var.
Sketch kodunu kopyalamak için pencerenin sağ üst köşesindeki butona tıklayabilir veya buraya tıklayarak ZIP dosyası olarak indirebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/* PCF8574 I2C Çoklayıcı Arduino ile Nasıl Kullanılır? PCF8574 I2C Çoklayıcının detaylı açıklaması ve örnek projelerini web sitemizde bulabilirsiniz. Mete Hoca https://www.metehoca.com/ */ #include "pcf8574.h" PCF8574 PCF1(0x20); void setup() { pinMode(PCF1, 1, OUTPUT); pinMode(PCF1, 4, INPUT); } void loop() { //digitalWrite(PCF1, 1, digitalRead(PCF1, 4)); int buton = digitalRead(PCF1, 4); digitalWrite(PCF1, 1, buton); } |
Arduino’da iyi olmak için öncelikle elektronikte iyi olmak gerekir. Türkiye’nin en iyi temel elektronik eğitim seti ARDUINO ÖNCESİ TEMEL ELEKTRONİK EĞİTİM VE DENEY SETİ‘ni keşfedin. Gereksiz bilgilerden arındırılmış basit ve eğlenceli anlatımla ELEKTRONİK öğrenin ve Arduino’ya METE HOCA farkıyla güçlü başlayın!
ÖZGÜN ve KULLANIŞLI projeler yapabilmek için ARDUINO’yu doğru öğrenmek gerekir. Arduino’ya güçlü başlamanın en iyi yolu ARDUINO’YA GÜÇLÜ BAŞLANGIÇ EĞİTİM VE PROJE SETİ‘dir. Arduino Uno üzerine kurulu olan set ile bu müthiş geliştirme platformunu tüm detaylarıyla anlayacak, başka hiçbir yerde bulamayacağınız inceliklerini öğrenecek ve en sık kullanılan Arduino sensör ve modüllerine aşina olacaksınız.