PCF8574: Arduino için daha fazla bağlantı pini alın

pcf8574

Kendinizi, kullanabileceğiniz girdi ve çıktıların sayısını artırmak istediğiniz bir durumda bulmuş olabilirsiniz. arduino kuruluÇünkü beklenenden daha fazla cihaza ihtiyaç duyan bir proje yürütüyorsunuz. Bu durumlarda yapabileceğiniz tek şey, bu bağlantılardan daha fazlasına sahip daha yüksek model bir anakart satın almayı düşünmektir. Ama şimdi onunla PCF8574, Arduino'nun I/O'sunu genişletebilir kolay ve ucuz bir şekilde.

Burada PCF8574'ün ne olduğunu bilmiyorsanız göstereceğiz, ayrıca Arduino kartınıza nasıl bağlanabileceğini ve nasıl çalıştığını da adım adım anlatacağız...

PCF8574 nedir?

pcf8574

El PCF8574 I2C1 veriyolu için bir dijital giriş ve çıkış (G/Ç) genişleticisidir. Philips tarafından üretilen bu cihaz, Arduino gibi bir işlemci bağlayarak daha az pin2 kullanarak daha fazla cihazı kontrol etmenize olanak sağlar. PCF8574, açık drenaj konfigürasyonunda CMOS çıkışlarına dayalı 8 adet yarı yönlü pin içerir.

Ayrıca PCF8574 düşük güçlü bir cihazdır. 2.5V'tan 6V'a kadar VCC işlemlerini destekler. 8 bitlik yarı çift yönlü G/Ç bağlantı noktası, mandallı çıkışlar, açık drenaj kesme çıkışı ve LED'ler için yüksek akım sürüş kapasitesine sahiptir. Öte yandan stand-by tüketimi ise 10 µA'nın altında, çok düşük.

İçin çok kullanışlıdır Arduino kartınızın yeteneklerini sınırlarının ötesine taşıyınArduino'nun sunduğundan daha fazlasına ihtiyaç duyan yaratıcılar için harika bir yardımcı olabilir. Her pinin sağlayabileceği maksimum akım konfigürasyona bağlı olacaktır:

  • Çıkış görevi gördüğünde, lavabo görevi gördüğünde yani elektrik akımı PCF25'e aktığında 8574mA'dir. Bu varsayılan yapılandırmadır.
  • Kaynak görevi gördüğünde 300μA'dır, yani akım PCF8574'ten aktığında. Aynı şekilde, tüm çıkışların Latch'lere sahip olduğunu, yani durumu kendi başlarına bir kayıt defterinde tuttuklarını bilmelisiniz. Yalnızca çıkışlardan birinin durumunu değiştirmek istediğimizde harekete geçmeliyiz.

İletişim tamamlandı I2C veriyolu aracılığıyla, böylece kendisine bağlı cihazlardan veri almak kolaydır. Benzer şekilde, aynı I3C veriyoluna 8 olası bağlantı sağlayan 2 adres pinine sahip olduğunu da belirtelim. Bu, yalnızca 64 pin kullanarak 2 cihazı kontrol etmenin mümkün olduğu anlamına gelir.

Adres Ayarları

Bu PCF8574 modülünün bazı modelleri genellikle yukarıdaki resimde gördüğünüz gibi yapılandırma pinleri ve atlama kabloları içerir. Diğer modellerde ise üç mikro anahtarla işleri kolaylaştıran bir anahtar yer alıyor... Ne olursa olsun alışkınlar adresleri yapılandırma G/Ç pinlerinin sayısı:

A0 A1 A2 Adres
0 0 0 0x20
0 0 1 0x21
0 1 0 0x22
0 1 1 0x23
1 0 0 0x24
1 0 1 0x25
1 1 0 0x26
1 1 1 0x27

Fiyat ve nereden alınır

Sadece birkaç avro karşılığında bulunabilir. Bu bir cihaz oldukça ucuz Daha az sayıda G/Ç'ye sahip bazı Arduino modelleri için bunun ne kadar pratik olabileceği konusunda. Yani bir PCF8574 arıyorsanız, onu özel mağazalarda veya ayrıca Amazon, Aliexpress veya eBay gibi büyük çevrimiçi platformlarda bulabilirsiniz. Örneğin, burada bir tane öneriyoruz:

PCF8574'ü Arduino'ya bağlama

Daha PCF8574 genişleticiyi Arduino kartınıza bağlayın, Bağlantı şeması oldukça basittir. Yalnızca bağlanmanız gerekecek:

  • PCF8574 kartı üzerinde işaretlenen SCL pini Arduino'nun SCL pinine. Bu pin modele bağlı olarak değişebilir ancak genellikle UNO gibi daha popüler modellerde A5'te bulunur.
  • Genişleticinin SDA pini Arduino'nun SDA pinine bağlanmalıdır. Yukarıda da belirttiğim gibi modele göre değişebilir ama genel olarak A4'tür. Şüpheniz varsa modelinizin pin düzenini kontrol edin.
  • PCF8574'ün GND pini elbette Arduino'da GND işaretli olana bağlanacaktır, yani toprak bağlantısıdır.
  • Genişleticinin Vcc pini Arduino'nun 5V'una bağlanıyor, bu şekilde GND ve Vcc ile genişletme kartını çalışmaya başlayabilmesi için zaten çalıştırmış olduk.

operasyon

PCF8574 Arduino kartına bağlandıktan sonra şimdi bunu bilmenin zamanı geldi o nasıl çalışır. Bunu yapmak için, güçlü olanlara ek olarak iki Arduino pini kullanmanız karşılığında ekstra 8 pin daha alabileceğinizi unutmayın. Öte yandan, bir şeyi hesaba katmalısınız; PCF8'ün 8574 pininin her birinde, çok düşük dirençli bir çekme direnciyle birlikte bir MOSFET transistörünüz var. Bu, transistör aktif olduğunda 100 mikroA'lık bir akım yoğunluğunu varsayar.

Bu da bizi aşağıdaki panoramayla karşı karşıya bırakıyor:

  • Çıkış olarak konfigürasyon- Pim çıkış olarak kullanıldığında, yukarıda tartıştığım gibi bir akım havuzu görevi görür, yani akım içeri akar.
    • DÜŞÜK: Düşük voltajda akımı iletmez, yük = Vdd.
    • YÜKSEK : Yüksek voltajda 25mA'e kadar akım geçebildiğinde yük GND'ye bağlanacaktır.
  • Giriş olarak konfigürasyon: Her zaman YÜKSEK olarak ayarlanmalıdır ve bu durumda kaynak görevi görecek yani akım dışarı akacaktır.
    • Kapalı: Harici yük verilmediğinde pin üzerindeki gerilim GND'ye gider.
    • Açık: Harici bir yük oluştuğunda pin voltajı Vdd olarak değişir.

Arduino IDE Kodu

Arduino IDE, veri tipleri, programlama

İstediğiniz, bu PCF8574'ü Arduino'da kullanmak için nasıl kod oluşturulacağına dair bazı örneklerse, ihtiyaçlarınıza göre değiştirebileceğiniz bu kod örneklerini kullanmak kadar basittir:

  • Çıkış olarak konfigürasyon:
#include <Wire.h>

const int pcfAddress = 0x38;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  for (short channel = 0; channel < 8; channel++)
  {
    // Escribir dato en canal 'channel'
    Wire.beginTransmission(pcfAddress);
    Wire.write(~(1 << channel));
    Wire.endTransmission();
    
    // Leer dato de canal
    delay(500);
  }
}
  • Giriş olarak yapılandırma:
#include <Wire.h>

const int pcfAddress = 0x38;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  short channel = 1;
  byte value = 0;

  // Leer dato de canal 'channel'
  Wire.requestFrom(pcfAddress, 1 << channel);
  if (Wire.available())
  {
    value = Wire.read();
  }
  Wire.endTransmission();

  // Mostrar el valor por puerto serie
  Serial.println(value);
}

Şunu da kullanabileceğinizi unutmayın: PCF8574 için özel olarak oluşturulmuş kütüphane pratik örnekler de içeriyor…


İlk yorumu siz

Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.