Web sitemize hoşgeldiniz, 08 Ocak 2025
muratdonmez.com.tr
Anasayfa » IOT » PCF8574 Pin Genişletici İle ESP8266 Pinlerini Arttırın

PCF8574 Pin Genişletici İle ESP8266 Pinlerini Arttırın

muratdonmez.com.tr
PCF8574 Pin Genişletici İle ESP8266 Pinlerini Arttırın

Merhaba, bu yazımda ESP8266, Arduino, STM32 veya Teensy modüllerinde kullanılan giriş-çıkış (I/O) pinleri yetersiz geldiğinde pin sayısını PCF8574 I2C Expander yani genişletici ile nasıl arttırabileceğinizden bahsedeceğim.

PCF8574 16 pinli yapıya sahip bir entegre devre olup 8 adet giriş veya çıkış verebilmektedir. PCF8574 üzerinde A0, A1, A2 olmak üzere 3 adet adres pinine sahiptir. Adres pinlerini farklı şekillerde bağlayarak I2C adresini değiştirebilir, bu 3 adet adres pini ile PCF8574’e 8 farklı adres ataması yapabiliriz. Böylelikle 8 adet PCF8574’ü I2C üzerinden 2 pin kullanarak ESP8266 veya Arduino’ya bağlayabilir ve 64 adet giriş-çıkış pini elde edebiliriz.

Yukarıdaki resimde PCF8574’ün pin bağlantı şemasını ve adres tablosunu görebilirsiniz. Biz projemizde PCF8574’ün DIP16 formunda olanı kullanacağız.

Projemizde ESP8266-01 ve PCF8574 kullanarak 8 adet LED’i kontrol edeceğiz, yani PCF8574’ün pinlerini çıkış olarak kullanacağız. Bunun için gerekli malzemelerimizin listesini aşağıya yazıyorum:

  • 1 adet ESP8266-01
  • 1 adet PCF8574
  • 8 adet 220 Ohm Direnç
  • 8 adet LED
  • 1 adet 100uF Kondansatör
  • 1 adet USB UART Dönüştürücü
  • 1 adet Breadboard
  • Bağlantı için kablolar

Gelelim bağlantılarımızı yukarıdaki şemaya göre yapmaya. Öncelikle PCF8574’ün SDA pinini ESP8266’nın GPIO2 pinine, PCF8574’ün SCL pinini de ESP8266’nın GPIO0 pinine bağlıyoruz. ESP8266’nın pin şemasına bakmak isterseniz ESP8266 üzerindeki hangi GPIO pinleri kullanılabilir? yazıma bakabilirsiniz. Bu arada ESP8266 üzerindeki CH_PD (veya CH_EN) pinini VCC pinine bağlamanız gerekmekte olduğunu da hatırlatmak isterim.

LED’lerimizin katod(-) bacaklarına 220Ohm’luk direnç bağladıktan sonra güç kaynağının eksi(-) ucuna, anot bacaklarını da PCF8574’ün P0 ile P7 arasındaki pinlerine bağlıyoruz.

Sıra geldi kodumuzu ESP8266’ya yüklemeye, aşağıda kodumuzu bulabilirsiniz. Kod ESP8266’ya yüklendikten sonra LED’leri sırasıyla önce sağa doğru sonra da sola doğru sırasıyla yakıp söndürecektir. PCF8574’ü tanıtmak için MSZ98 tarafından yazılmış olan pcf8574.h kütüphanesini kullandık. Bu kütüphaneyi “Tools(Araçlar)”“Manage Libraries(Kütüphaneleri Yönet)” e girerek kurabilirsiniz.


#include "pcf8574.h"
 
PCF8574 PCF1(0x20);
 
void setup() {
	for (int x = 0; x < 8; x++) pinMode(PCF1, x, OUTPUT);
	for (int x = 0; x < 8; x++) digitalWrite(PCF1, x, LOW);
}
 
void loop() {
  // sola kayma
  for (int y = 0; y < 8; y++) {
    digitalWrite(PCF1, y, HIGH);
    delay(100);
    for (int x = 0; x < 8; x++) digitalWrite(PCF1, x, LOW); 
} 
  // sağa kayma 
  for (int y = 7; y >= 0; y--) {
    digitalWrite(PCF1, y, HIGH);
    delay(100);
    for (int x = 0; x < 8; x++) digitalWrite(PCF1, x, LOW);
  }
}

Kodumuzda 8 adet LED’imizi sırasıyla yakıp söndürerek PCF8574’ün pinlerini çıkış olarak kullanmayı gördük. PCF8574’ün pinlerini giriş olarak kullanmayı görmek için PCF8574 Pin Genişleticiyi Giriş Olarak Kullanmak yazıma bakabilirsiniz.

 

Etiketler:

muratdonmez.com.tr
BU KONUYU SOSYAL MEDYA HESAPLARINDA PAYLAŞ
Yorumlar

Henüz yorum yapılmamış.

Yorum Yaz