Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Der MCP23017 ist ein relativ einfach zu bauender IC, da er Port A und B auf beiden Seiten des Chips hat und die Pins in sequenzieller Reihenfolge angeordnet sind.
Ebenso ist auch der I2C-Adressbus alle zusammen.
Es gibt 2 Pins auf diesem IC, die nicht verwendet werden, da er mit dem MCP23S17 vergleichbar ist, der eine SPI-Schnittstelle verwendet, bei der diese Pins verwendet werden.
Ein Datenblatt für diesen IC ist von Microchip erhältlich.
Schritt 1: Schaltplan
Der Schaltplan zeigt den Anschluss des ICs an einen ESP8266
HINWEIS: Der IC läuft zwischen 2,7 und 5,5 Volt.
Pin-Anschlüsse auf meinem Board
- Pin 9 (VDD) auf 3v3
- Pin 18 (RESET) auf 3v3
- Pin 17 (A2) an GND
- Pin 16 (A1) auf GND
- Pin 15 (A0) auf GND
- Pin 14 (NC) auf GND (nicht erforderlich)
- Pin 13 (SDA) an ESP GPIO0
- Pin 12 (SCL) an ESP GPIO2
- Pin 11 (NC) auf GND (nicht erforderlich)
- Pin 10 (VSS) an GND
Schritt 2: Hauptplatine herstellen
Das Board ist einfach zu machen, wie oben beschrieben, alles hat ein einfaches Layout.
Mein Mainboard hat wenig Zeit in Anspruch genommen und ist oben gezeigt.
Sie können diese Schaltung natürlich auf einem Steckbrett aufbauen.
Schritt 3: Zusätzliche Boards
Ich habe einige zusätzliche 8-Bit-Boards zusammengestellt, die leicht in verschiedene Projektboards gesteckt werden können.
Die erste Platine ist mit einer 7-Segment-LED-Anzeige verbunden und wird mit Pin 1 mit Segment a, Pin 2 mit b usw. verbunden. Es gibt einen kleinen Widerstand (ca. 55 Ohm) zum Schutz der LEDs.
Die zweite ist eine 8-Schalter-Bank, die alle miteinander verdrahtet sind und an 3,3 V oder Masse angeschlossen werden können. Ich habe keine Pull-Widerstände enthalten, da der MCP23017 sie eingebaut hat.
Das dritte ist aus einem Ebay-Kit, es besteht aus 8 LEDs und einem Widerstandsarray mit einer Verbindung zu Gnd. Ich habe auch die gleiche Platine, habe die LEDs jedoch umgekehrt installiert, sodass sie mit 3,3 V oder 5 V anstelle von Gnd verbunden sind. Bei Ebay sind sie als 8-Kanal Flowing Water Light LED DIY Kit, 99p aus China bekannt.
Schritt 4: Programmierung
Ich habe die Programme so geschrieben, dass sie mit einem ESP01 arbeiten, da dieser nur 2 I / O-Pins hat. Es kann natürlich mit jedem der ESP8266-Boards verwendet werden. Die SDA- und SCL-Pins können jedem Pin zwischen 1 und 12 zugewiesen werden.
Bei Verwendung einer älteren Version von LUA (z. B. NodeMCU 0.9.6 build 20150704 powered by Lua 5.1.4) ist I2C bereits installiert. Andernfalls müssen Sie sicherstellen, dass das I2C-Modul in Ihrem Build enthalten ist.
Ich habe 3 einfache Lua-Programme beigefügt, um zu zeigen, wie der IC verwendet werden kann.
7Segment.lua steuert eine LED-Anzeige und Sequenzen zwischen den Zahlen 1 bis 0.
KittCar.lua treibt die 8-LED-Platine an, um das berühmte Auto aus den 80er Jahren zu simulieren.
Reader.lua liest von Port B.
Schritt 5: Welcher Pin?
Ein extra Programm, das ich mir beim Basteln ausgedacht habe.
Es verwendet Port B als Eingang und Port A als Ausgang. Das Foto zeigt DIP-Schalter, aber Sie können einen der Port B-Pins mit Gnd verbinden und die LED-Anzeige zeigt an, welcher Pin angeschlossen ist.
HINWEIS: Es funktioniert nur mit 1 Pin gleichzeitig!
Schritt 6: Fazit
Natürlich sind auch andere I/O-Expander verfügbar. Einige sind 8 Bit, 16 Bit und sogar 24 Bit! Alle funktionieren ähnlich wie der MCP23017, aber dieser IC ist für seine Fähigkeiten sehr günstig und kann für jeweils etwa 10p aus China bezogen werden.
Ich habe nicht alle Funktionen dieses ICs verwendet, da auch Interrupts verfügbar sind, die verwendet werden können. Beim Lesen des Datenblatts erfahren Sie alles über die verschiedenen Register und die Verwendungsmöglichkeiten des ICs.
Es ist möglich, 8 dieser Geräte auf demselben I2C-Bus zu haben, was 128 I/O-Ports ergibt, die alle über 2 Leitungen gesteuert werden. Denken Sie an die Möglichkeiten dort!