Inhaltsverzeichnis:

NODEMCU LUA ESP8266 mit MCP23017 16 Bit Port Expander IC - Gunook
NODEMCU LUA ESP8266 mit MCP23017 16 Bit Port Expander IC - Gunook

Video: NODEMCU LUA ESP8266 mit MCP23017 16 Bit Port Expander IC - Gunook

Video: NODEMCU LUA ESP8266 mit MCP23017 16 Bit Port Expander IC - Gunook
Video: ESP8266 NodeMCU Interface - MCP23017 i/o expender with LED Example! 2024, November
Anonim
NODEMCU LUA ESP8266 mit MCP23017 16 Bit Port Expander IC
NODEMCU LUA ESP8266 mit MCP23017 16 Bit Port Expander IC

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

Schaltplan
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

Herstellung des Mainboards
Herstellung des Mainboards

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

Zusätzliche Boards
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

Programmierung
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?

Welcher Pin?
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

Abschluss
Abschluss

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!

Empfohlen: