PCF8574 ile I2C Tuş Takımı Yapımı ve Arduino ile Kullanımı

Paylaş
PCF8574 ile I2C Tuş Takımı Yapımı ve Arduino ile Kullanımı

Projelerimizde sistem üzerinden bazı ayarlar yapabilmek, bazı değerleri değiştirebilmek için tuş takımlarına ihtiyaç duyarız. 4×4 membran tuş takımı kolay biz çözüm olsa da 8 dijital pini gözden çıkarmamız gerekir Arduino ile kullanmak için. Bu yazımda da yine  bir önceki yazımdaki gibi PCF8574 kullanarak matris tuş takımını(matrix keypad) I2C yolu üzerinden kullanmayı anlatmaya çalışacağm.

Gerekli Malzemeler:

  1. 1 adet 4×4 membran tuş takımı
  2. 1 adet PCF8574
  3. 4 adet 220 ? direnç
  4. 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 Keypad ve Keypad_I2C kütüphanelerini indirip yüklüyoruz. Bendeki tuş takımının konnektöründe 1 ve 8in ne taraf olduğu yazılıydı, eğer yazmıyorsa deneyerek pinleri bulmanız gerekiyor.

Aşağıda örnek bir program paylaşıyorum. Örnekte tuş takımından girilen değer serial monitörde yazdırılıyor. Kütüphane içerisinde birkaç örnek program da mevcut.

// PCF8574 I2C Tuş Takımı Örnek Programı
// Yazar: Alexander Brevig
// Düzenleme: İsmail BUÇGÜN
// www.arduinoturkiye.com

#include <Keypad_I2C.h> // Keypad_I2C kütüphanesini bağlıyoruz.
#include <Keypad.h> // Keypad kütüphanesini bağlıyoruz.
#include <Wire.h> // Wire kütüphanesini bağlıyoruz.

// Tuş takımı için kullandığımız PCF8574 için adres.
// PCF8574ün 1,2 ve 3. pinleri için toprak bağlantısı yapılırsa
// bağlantı adresi 0x20 oluyor.
#define I2CADDR 0x20

const byte ROWS = 4; // Tuş takımındaki satır sayısı
const byte COLS = 4; // Tuş takımındaki sütun sayısı

// Tuş takımı üzerindeki butonları matris şeklinde yazıyoruz.
char hexaKeys[ROWS][COLS] = {
  {"1","2","3","A"},
  {"4","5","6","B"},
  {"7","8","9","C"},
  {"*","0","#","D"}
};
byte rowPins[ROWS] = {7, 6, 5, 4}; // Satıların konnektördeki pin numaraları
byte colPins[COLS] = {3, 2, 1, 0}; // Sütunların konnektördeki pin numaraları

// Yeni bir tuş takımı sınıfı oluşturuyoruz.
Keypad_I2C customKeypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS, I2CADDR); 

void setup(){
  customKeypad.begin( );
  // Seri iletişimi başlatıyoruz.
  Serial.begin(9600); 
}

void loop(){
  // Tuş takımından gelen değeri customkey değişkenine atıyoruz.
  char customKey = customKeypad.getKey(); 

  if (customKey != NO_KEY){
  // Serial monitörde customkey değişkenini yazdırıyoruz.
  Serial.println(customKey);
  }
}

PCF8574 yerine PCF8574A da kullanabilirsiniz aynı bağlantı şemasıyla. Fakat bağlantı adresini 0×38 şeklinde değiştirmek gerekiyor. Ayrıca bir önceki yazımdaki PCF8574lü I2C LCD ile birlikte I2C tuş takımı da kullanacaksanız PCF8574ün 2 numaralı pininde Gnd yerine 5v bağlantısı yaparak 0x22 şeklinde bağlantı adresi oluşturabilirsiniz.


 
İyi çalışmalar…

Gerekli Olabilecek Bağlantılar:

Devamını oku

Project Aslan, Arduino DUE Kullanan Bir Robot İşaret Dili Çevirmeni

Project Aslan, Arduino DUE Kullanan Bir Robot İşaret Dili Çevirmeni

Genellikle robotikleri endüstriyel veya araştırma alanlarına uygulandığı zaman görüyoruz, ancak günlük yaşamda da yardımcı olabilecekleri çok yol var: Örneğin, görme engelli insanlar için kişisel rehber görevi gören mutfak botu, engellilerin yemek yapmasına yardımcı olabilir. Veya – ve bu gerçek – işaret dili çevirmeni işlevi gören robot kolu. Sınıflarda, mahkemelerde ve evde, bu

Arduino Turkiye tarafından
Arduino DUE ile Yaşayabileceğiniz Sorunların Çözümleri

Arduino DUE ile Yaşayabileceğiniz Sorunların Çözümleri

Elinizden hatırı sayılır miktarda Arduino DUE geçtiyse (veya sadece şanssız gününüzdeyseniz), düzgün çalışmayan en az bir tane cihazla karşılaşma olasılığınız yüksek. Bunun için her zaman cihazı çöpe atmanız gerekmeyebilir. Birçok Arduino DUE sorununu çözmek için çeşitli yöntemler var. Diyelim ki Arduino DUE ile çalışmaya başlayacaksınız. Bunun için Arduino’yu açtınız

Arduino Turkiye tarafından
STM32 Mikro Denetleyiciler Arduino

STM32 Mikro Denetleyiciler Arduino Dünyasında Ne Anlama Geliyor?

Arduino ile tanışanlar genellikle uzun bir yolun başlangıcında oluyor. Çünkü Arduino dünyası vazgeçmesi zor maceralarla dolu. Arduino’yu tanıdıkça bu heyecanınız da artacak. Bu nedenle Arduino dünyasıyla sizi buluşturmak için biz de heyecan duyuyoruz. Çok ucuza elde edebileceğiniz Arduino kiti ve ihtiyaç duyacağınız diğer malzemeler uzun soluklu projeler için yeterli

Arduino Turkiye tarafından