İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
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 yolu da hep birliktedir.
Bu IC üzerinde, bu pinlerin kullanıldığı bir SPI arayüzü kullanan MCP23S17 ile karşılaştırılabilir olduğu için kullanılmayan 2 pin vardır.
Bu IC için bir veri sayfası Microchip'te mevcuttur.
Adım 1: Devre Şeması
Devre şeması, IC'nin bir ESP8266'ya nasıl bağlanacağını gösterir.
NOT: IC 2,7 ile 5,5 Volt arasında çalışır.
Anakartımdaki Pin Bağlantıları
- 9'u (VDD) 3v3'e sabitleyin
- 18'i (RESET) 3v3'e sabitleyin
- Pin 17'yi (A2) GND'ye
- Pin 16'yı (A1) GND'ye
- 15'i (A0) GND'ye sabitleyin
- Pin 14 (NC) - GND (Gerekli değil)
- 13'ü (SDA) ESP GPIO0'a sabitleyin
- 12'yi (SCL) ESP GPIO2'ye sabitleyin
- Pin 11 (NC) - GND (Gerekli değil)
- 10'u (VSS) GND'ye sabitleyin
Adım 2: Ana Kartın Yapılması
Pano yukarıda açıklandığı gibi basittir, her şey basit bir düzendedir.
Ana kartımın yapımı çok az zaman aldı ve yukarıda gösterilmektedir.
Elbette bu devreyi bir breadboard üzerine kurabilirsiniz.
3. Adım: Ek Kartlar
Farklı proje panolarına kolayca takılabilen ekstra 8 bitlik panolar oluşturdum.
İlk kart 7 segmentli bir LED ekrana bağlanır ve pin 1'e segment a'ya, pin 2'den b'ye vb. bağlanır. LED'leri korumak için küçük bir direnç (yaklaşık 55 ohm) vardır.
İkincisi, hepsi birbirine bağlı bir 8 anahtar bankasıdır ve 3.3V veya toprağa bağlanabilir. MCP23017'de yerleşik olduğu için herhangi bir çekme direnci eklemedim.
Üçüncüsü bir Ebay kitinden, 8 LED'den ve Gnd'ye bağlantılı bir direnç dizisinden oluşuyor. Ben de aynı panoya sahibim ancak LED'leri Gnd yerine 3.3V veya 5V'a bağlanacak şekilde ters taktım. Ebay'de, Çin'den 99p, 8 Kanallı Akan Su Işığı LED DIY Kiti olarak bilinirler.
Adım 4: Programlama
Sadece 2 G/Ç pinine sahip olduğu için programları bir ESP01 ile çalışacak şekilde yazdım. Elbette herhangi bir ESP8266 kartıyla kullanılabilir. SDA & SCL pinleri 1 ile 12 arasında herhangi bir pine atanabilir.
LUA'nın daha eski bir sürümünü kullanıyorsanız (örneğin, Lua 5.1.4 tarafından desteklenen NodeMCU 0.9.6 build 20150704), I2C zaten kuruludur. Aksi takdirde, yapınıza I2C modülünün dahil edildiğinden emin olmanız gerekir.
IC'nin nasıl kullanılabileceğini göstermek için 3 basit Lua programı ekledim.
7Segment.lua bir LED ekranı çalıştırır ve 1 ile 0 arasındaki sayılar arasında sıralanır.
KittCar.lua, 80'lerin ünlü arabasını simüle etmek için 8 LED kartını kullanıyor.
Reader.lua, Port B'den okur.
Adım 5: Hangi Pin?
Kurcalarken bulduğum ekstra bir program.
Giriş olarak B portunu ve çıkış olarak A portunu kullanır. Fotoğrafta DIP anahtarları gösterilmektedir, ancak B bağlantı noktası pinlerinden birini Gnd'ye bağlayabilirsiniz ve LED ekran hangi pinin bağlı olduğunu gösterecektir.
NOT: Bir seferde sadece 1 pin ile çalışır!
6. Adım: Sonuç
Elbette başka I/O genişleticiler de mevcuttur. Bazıları 8 bit, 16 bit ve hatta 24 bit! Hepsi MCP23017'ye benzer şekilde çalışır, ancak bu IC, yetenekleri için çok ucuzdur ve her biri Çin'den yaklaşık 10p'ye tedarik edilebilir.
Bu IC'nin tüm özelliklerini kullanmadım, çünkü kullanılabilir kesintiler de var. Veri sayfasını okumak, farklı kayıtlar ve IC'nin kullanılabileceği yollar hakkında her şeyi anlatır.
Bu cihazlardan 8'inin aynı I2C veriyolu üzerinde olması ve tümü 2 hat tarafından kontrol edilen 128 I/O portuna sahip olması mümkündür. Oradaki olasılıkları düşünün!