NodeMCU ve MCP23017 ile GPIO Expander

Merhaba Arkadaşlar,

Bu yazımda sizlere ESP8266 ile nasıl port çoğullanır onu anlatacağım. Çoğunlukla ESP8266-01 versiyonu kullanılır ve üzerinde 2 GPIO bulunur.
Bu 2 pin bize bazen yetmediği durumlar oluşur. Yada ESP8266-12 olup da port sayısını çıkartmak isteyebiliriz. Bunun için piyasada kullanılan MCP23017 16-Bit I/O Expander kullanacağım.

Çinde çok ucuz fiyatlara pcb şeklinde satılmaktadır. Üzerinde A ve B olmak üzere 2 adet 8 bitlik port mevcuttur. Bu 16 pini istediğimiz gibi programlayıp devrelerimiz de kullanabiliriz. I2C iletişim protokolünü kullandığı için sadece 2 pin bize yeterli olacaktır. Ayrıca A ve B olmak üzere 2 adet kesme çıkışları mevcuttur, bunun sayesinde kesme özelliğini açtığınız portlardan size uyarı gelir.

 

Bağlantısı:

Node MCU                MCP23017
3V3                                 3V3
GND                               GND
D2                                   SDA
D3                                   SCL
3V3                                 RESET

 

Programa başlamadan önce önceki yazılarımda Node MCU LUA programlamayı inceleyerek ESP8266 ya LUA yı kurabilirsiniz.

Gelelim programına;

İlk önce datasheet inden sık kullanılacak registerlerin adreslerini tanımladım. Daha sonra I2C için gerekli okuma yazma fonksiyonlarını hazırladım siz sadece okunacak yada yazılacak bit ve byte fonksiyonlarını kullanacaksınız.

Ana Programda basit bir şekilde timer açıp içerisine portb yi gösteren, led toggle yapan ve bir biti okuyup diğer bit e yazan kısımları ekledim çalıştırıp inceleyebilirsiniz.

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.