İçindekiler:
- Adım 1: MCP23008'i kablolama
- Adım 2: Bir Pano Oluşturma
- 3. Adım: Bir Kitaplık Modülü Kullanma
- 4. Adım: Kitt Araba Programı
- Adım 5: 7 Segment LED'i
- 6. Adım: Sonuç
Video: NODEMCU LUA ESP8266, MCP23008 8 Bit Port Genişletici IC ile: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
MCP23008, Seri Arayüzlü 8-Bit G/Ç Genişleticidir ve 1.8 ile 5.5 volt arasında çalışır, bu nedenle ESP8266, Arduino, Raspberry Pi, PIC Chips ve daha fazlası için idealdir.
MCP23017'deki diğer Instructable'ımı gördüyseniz, aynı şeyin gerçekten daha küçük bir versiyonu olduğu için neden MCP23008 için de bir tane yaptığımı merak ediyor olabilirsiniz.
Sebebi ise registerlerinin isim ve numara olarak farklı olması ve hazır bir kütüphane modülünün nasıl kullanılacağını göstermek istiyorum. NodeMCU lua kullanırken herkes usta değildir, bu yüzden programlamanın bu yönünü ve MCP23008'in nasıl kullanılacağını göstermek istiyorum.
Kütüphane ve programlar github.com'da mevcuttur.
MCP23008 için veri sayfası Microchip'ten edinilebilir.
Adım 1: MCP23008'i kablolama
MCP23008 IC basit bir yerleşim düzenine sahiptir ve bir pano oluşturmak onun için gerçekten kolaydır. Devreyi bir breadboard üzerine de kurabilirsiniz.
Anakartımdaki Pin Bağlantıları
- 18'i (VDD) 3v3'e sabitleyin
- Pin 9'u (VSS) GND'ye
- Pin 7 (NC) - GND (Gerekli değil)
- ESP GPIO2'ye Pin 1 (SCL)
- ESP GPIO0'a Pin 2 (SDA)
- Pin 5'i (A0) GND'ye
- Pin 4'ü (A1) GND'ye
- Pin 3'ü (A2) GND'ye
- Pin 6'yı (RESET) 3v3'e
Okunacak pinleri Port A'daki Gnd'ye bağlayın (pin 10 - 17)
Not: burada tüm adres pinleri, MCP23008'i I2C adres yolunda 0x20 adresinde kullanmak için Gnd'ye bağlanır.
0x21 adresini kullanıyor olsaydınız, A0 3.3V'a, A1 ve A2 ise Gnd'ye bağlanırdı.
Benzer şekilde, 0x22 adresi kullanılıyorsa, A1'in A0 ve A2'nin Gnd'ye bağlı olmasıyla 3.3V'a bağlanması gerekir.
vesaire…
Adım 2: Bir Pano Oluşturma
Tahtamı oluşturmak için 25 mm x 64 mm (9 sıra x 25 delik) Vero şerit levha kullandım. Biraz sıkı, ancak ihtiyacınız olan pinlerin çoğu IC'nin her iki tarafında olduğundan, yapması gerekenler için yeterlidir.
A portu için 8 pin ve 8 başlık soketi kullandım, böylece çeşitli modüllerimi ve farklı projeler için diğer kabloları takabilirim. Modülleri birbirine bağlarken her zaman bir eksiklik olduğunu fark ettiğim için fazladan Gnd ve 3.3V pinleri ekledim.
3. Adım: Bir Kitaplık Modülü Kullanma
Kütüphane modülleri normalde başka bir program tarafından erişilebilen bir dizi alt rutin, fonksiyon ve değişken içerir. Programın kendisi çalışmaz, ancak işlevlerine çağıran program tarafından erişilebilir. Bu, alt rutinlerinizi kütüphane içerisinde bulundurabileceğiniz ve ihtiyacınız olduğunda onları çağırabileceğiniz, küçük bir arama programı oluşturabileceğiniz anlamına gelir. Aynı alt rutinleri kullanan birçok farklı programınız varsa daha değerli hale gelir, her programa alt rutinleri dahil etmenize gerek yoktur.
Not: mcp23008.lua programının diğer programlar gibi ESP8266 hafızasına yüklenmesi gerekmektedir.
Buraya github.com programlarını ve ayrıca kütüphanenin çalıştığını göstermek için basit bir program (test.lua) ekledim.
Kütüphaneyi programınıza dahil etmenin en az 2 yolu vardır.
gerektirir ("mcp23008")
mcp23008.begin(0x0, gpio2, gpio0, i2c. SLOW)
veya
mcp = gerektirir ("mcp23008")
mcp.begin(0x0, gpio2, gpio0, i2c. SLOW)
Yukarıdakilerin ikisi de aynı şeyi yapar, ancak ikinci yöntem program adı yerine kendi değişkeninizi kullanmanıza izin verir.
4. Adım: Kitt Araba Programı
Programların bu şekilde yazılmasındaki farklılıkları göstermek için kitaplığı kullanan KittCar23008.lua programını ve KittLib.lua'yı ekledim. Her iki program da aynı şeyi yapıyor.
8 LED fişi, Ebay'den bir kit olarak temin edilebilir ve Çin'den 99p, 8 Kanallı Akan Su Işığı LED DIY Kiti olarak bilinir. Kendiniz lehimlemeniz gerekiyor.
Not: KittLib.lua programını çalıştırmaya çalışırken bir sorununuz varsa, MCP23008 RESET pinini anlık olarak Gnd'ye bağlamayı deneyin. Bunun doğrudan kısa devre vereceğini biliyorum (3.3V'a bağlı olduğu için) ve diğer her şeyi sıfırlamanız gerekiyor. Ayrıca Gnd'ye 10 ohm'luk bir dirençle bağlanarak da çalışır, muhtemelen bunu yapmanın daha iyi bir yolu.
Test.lua'yı çalıştırdıktan sonra KittLib.lua'nın sorunsuz çalışacağını da buldum (Nedenini sormayın?)
KittLib.lua program sorununu çözmek için çeşitli yollar denedim, ancak şu ana kadar neden çöktüğüne dair mantıklı bir neden bulamıyorum. Herhangi bir fikri olan var mı?
Bu programların hepsini kendim yazmadım, bu yüzden neden bir sorun olduğunu söyleyemem, kodlamalara baktıktan sonra bariz bir şekilde yanlış bir şey yok gibi görünse de.
Adım 5: 7 Segment LED'i
Yukarıdaki KittCar.lua programında olduğu gibi, 7 segmentli bir LED ekranı sürmek için bağımsız ve kitaplığa bağlı bir program ekledim.
Yine, her iki program da aynı şeyi yapar, ancak kendiniz veya başka biri tarafından yazılmış bir kitaplık modülünün nasıl kullanılacağını gösterin.
6. Adım: Sonuç
Lua ortamında kod modüllerinin nasıl kullanılacağını ve aynı anda belirli bir IC'ye nasıl uygulanacağını göstermeye çalıştım.
Bunu yaparken bir sorun yaşasam da bu modüllerin nasıl çalıştığını göstermek ve gerçek hayattan bir uygulama göstermek için yeterli olduğunu düşünüyorum.
Önerilen:
I2C ile Birçok Nixie Tüpünü Kontrol Etmek için Çok Yönlü I/O Genişletici PCB: 9 Adım (Resimlerle)
I2C ile Birçok Nixie Tüpünü Kontrol Etmek için Çok Yönlü I/O Genişletici PCB: Şu anda eski nixie tüplerini hayata geçirme konusunda çok fazla ilgi var. Piyasada çok sayıda nixie tüp saat kiti mevcuttur. Eski Rus nixie tüpleri stoğu üzerinde bile canlı bir ticaret olduğu ortaya çıktı. Ayrıca burada Eğitilebilirler'de orada
ESP32 ile PWM - Arduino IDE ile ESP 32'de PWM ile LED Karartma: 6 Adım
ESP32 ile PWM | Arduino IDE ile ESP 32'de PWM ile LED Karartma: Bu talimatta Arduino IDE & PWM temel olarak herhangi bir MCU'dan analog çıkış üretmek için kullanılır ve bu analog çıkış 0V ile 3.3V (esp32 durumunda) arasında herhangi bir şey olabilir & itibaren
NODEMCU Lua ESP8266, Gerçek Zamanlı Saat (RTC) ve EEPROM ile: 7 Adım
NODEMCU Lua ESP8266 Gerçek Zamanlı Saat (RTC) ve EEPROM ile: Bir veri günlüğü tutmak istiyorsanız doğru zamanı almak çok önemlidir. İnternetteki kaynaklardan zaman almanın çeşitli yolları vardır. Size zaman ayırmak için neden ESP8266'yı kullanmadığınızı sorabilirsiniz. Yapabilirsin, kendi dahili RTC'si var (Gerçek Zamanlı
ESP32, ESP8266 ve Arduino için IO Genişletici: 24 Adım
ESP32, ESP8266 ve Arduino için IO Genişletici: ESP32, ESP8266 veya Arduino'nuzun IO'larını genişletmek ister misiniz? Ve I2C veri yolu kullanılarak kontrol edilebilecek 16 yeni GPIO olasılığını düşündünüz mü? Bugün sizi GPIO genişletici MCP23016 ile tanıştıracağım. Ayrıca, ben
NODEMCU LUA ESP8266, MCP23017 ile 16 Bit Port Genişletici IC: 6 Adım (Resimlerle)
NODEMCU LUA ESP8266 MCP23017 ile 16 Bit Port Genişletici IC: MCP23017, çipin her iki tarafında Port A ve B'ye sahip olduğu ve pinler sıralı olduğu için bir kart yapmak için nispeten kolay bir IC'dir. Benzer şekilde I2C adres veriyolu hepsi bir arada. Bu IC üzerinde kullanılmayan 2 pin var