Arduino ile PCF8575 G/Ç Genişletici Nasıl Kullanılır

How to Use the PCF8575 I/O Expander with Arduino

PCF8575, I2C arabirimi aracılığıyla bir mikrodenetleyici ile iletişim kuran 16 bit G/Ç genişleticidir. Arduino'nuzdaki giriş/çıkış pimlerinin sayısını genişletmenizi sağlar, bu da birçok sensör, düğme veya LED gerektiren projeler için mükemmeldir. Bu öğretici, PCF8575'i Arduino ile bağlayarak ve kullanarak size rehberlik edecektir.


Ne İhtiyacınız Olacak

  1. PCF8575 G/Ç Genişletici Modülü
  2. Arduino Kurulu (örn. UNO, Mega, Nano)
  3. Test için sensörler, düğmeler veya LED'ler
  4. Breadboard ve jumper telleri
  5. Arduino IDE kurulu bir bilgisayar

1. Adım: PCF8575 modülünü anlamak

PCF8575, giriş veya çıkış olarak yapılandırılabilen 16 ek GPIO pimi sağlar. I2C protokolü aracılığıyla iletişim kurar ve birden çok modülü aynı veri yoluna bağlamak için ayarlanabilir bir I2C adresine sahiptir.

Pinout

Pin İşlev
VCC Güç kaynağı (3.3V/5V)
Gnd Zemin
SDA I2C veri hattı
Scl I2C saat çizgisi
P0-P15 Genel amaçlı G/Ç pimleri

I2C adres yapılandırması

  • I2C adresi A0, A1 ve A2 pimleri tarafından belirlenir:
    • GND'ye tüm pimler: 0x20 (Varsayılan adres)
    • VCC'ye tüm pimler: 0x27

Adım 2: PCF8575'i Arduino'ya bağlama

PCF8575'i bir Arduino'ya nasıl bağlayacağınız aşağıda açıklanmıştır:

PCF8575 PIN Arduino pimi
VCC 5V
Gnd Gnd
SDA A4 (SDA)
Scl A5 (SCL)

Çevresellerinizi (örn. LED'ler veya düğmeler) P0-P15 pimlerine bağlayın.

Not: Diğer Arduino panoları için doğru I2C pimlerini kullandığınızdan emin olun.


Adım 3: Gerekli kütüphaneyi kurun

PCF8575 ile çalışmayı basitleştirmek için "PCF8575" kitaplığını yükleyin.

Yüklenecek adımlar:

  1. Arduino IDE'yi açın.
  2. Gidip gelmek Eskiz > Kütüphane ekleyin > Kütüphaneleri Yönetin.
  3. "PCF8575" arayın ve tıklayın Düzenlemek.

4. Adım: Kodu yükleyin

Örnek: LED'leri kontrol etmek

Bu kod, PCF8575'i kullanarak LED'lerin nasıl açılacağını ve kapatılacağını gösterir:

#include <Wire.h>
#include <PCF8575.h>

PCF8575 pcf8575(0x20); // Initialize with the default I2C address

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

  // Set all pins as outputs
  for (int i = 0; i < 16; i++) {
    pcf8575.pinMode(i, OUTPUT);
  }

  Serial.println("PCF8575 initialized.");
}

void loop() {
  // Turn all LEDs on
  for (int i = 0; i < 16; i++) {
    pcf8575.digitalWrite(i, HIGH);
  }
  delay(1000);

  // Turn all LEDs off
  for (int i = 0; i < 16; i++) {
    pcf8575.digitalWrite(i, LOW);
  }
  delay(1000);
}

Örnek: Okuma düğmeleri

Bu kod, PCF8575'e bağlı düğmelerden nasıl okunacağını gösterir:

#include <Wire.h>
#include <PCF8575.h>

PCF8575 pcf8575(0x20); // Initialize with the default I2C address

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

  // Set all pins as inputs
  for (int i = 0; i < 16; i++) {
    pcf8575.pinMode(i, INPUT);
  }

  Serial.println("PCF8575 initialized.");
}

void loop() {
  for (int i = 0; i < 16; i++) {
    int state = pcf8575.digitalRead(i);
    Serial.print("Pin ");
    Serial.print(i);
    Serial.print(": ");
    Serial.println(state);
  }
  delay(500);
}

Adım 5: Kurulumu test edin

  1. Arduino'yu USB üzerinden bilgisayarınıza bağlayın.
  2. Arduino IDE'yi açın ve doğru seçin Pano Ve Liman altında Aletler menü.
  3. Kodu tıklayarak Arduino'ya yükleyin Yüklemek.
  4. LED örneği için LED'leri açıp kapatmayı gözlemleyin. Düğme örneği için, seri monitördeki izleme düğmesi durumları.

PCF8575 uygulamaları

  1. Arduino projeleri için genişleyen GPIO pinleri
  2. Karmaşık LED matrisler oluşturma
  3. Birden çok sensör veya düğme dizisi okuma
  4. Röleleri ve aktüatörleri kontrol etmek

Sorun giderme

  • Modülden yanıt yok: I2C bağlantılarını ve adres yapılandırmasını doğrulayın.
  • Tutarsız okumalar: I2C hatları için kararlı bir güç kaynağı ve uygun çekme dirençlerinden emin olun.
  • Yanlış PIN davranışı: Koddaki pim modlarını (giriş/çıktı) çift kontrol edin.

Çözüm

PCF8575 G/Ç genişleticisini Arduino ile başarıyla arayüz ettiniz ve 16 ek GPIO piminden kontrol etmenize veya okumanıza izin verdiniz. Farklı çevre birimleriyle deneyin ve bu çok yönlü modülle projelerinizi genişletin!

Yorum bırak

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.