Inhoudsopgave:

NODEMCU LUA ESP8266 Met MCP23017 16 Bit Port Expander IC - Ajarnpa
NODEMCU LUA ESP8266 Met MCP23017 16 Bit Port Expander IC - Ajarnpa

Video: NODEMCU LUA ESP8266 Met MCP23017 16 Bit Port Expander IC - Ajarnpa

Video: NODEMCU LUA ESP8266 Met MCP23017 16 Bit Port Expander IC - Ajarnpa
Video: BocaJS - Iot with Javascript - Espruino on ESP8266 2024, Juli-
Anonim
NODEMCU LUA ESP8266 Met MCP23017 16 Bit Port Expander IC
NODEMCU LUA ESP8266 Met MCP23017 16 Bit Port Expander IC

De MCP23017 is een relatief eenvoudig IC om een bord voor te maken, omdat het poort A en B aan weerszijden van de chip heeft en de pinnen in de juiste volgorde staan.

Evenzo is de I2C-adresbus ook allemaal samen.

Er zijn 2 pinnen op dit IC die ongebruikt zijn omdat het vergelijkbaar is met de MCP23S17 die een SPI-interface gebruikt waar deze pinnen worden gebruikt.

Een datasheet voor dit IC is verkrijgbaar bij Microchip.

Stap 1: Schakelschema

Schakelschema
Schakelschema

Het schakelschema laat zien hoe je het IC aansluit op een ESP8266

OPMERKING: Het IC werkt tussen 2,7 en 5,5 volt.

Pin-verbindingen op mijn bord

  • Pin 9 (VDD) naar 3v3
  • Pin 18 (RESET) naar 3v3
  • Pin 17 (A2) naar GND
  • Pin 16 (A1) naar GND
  • Pin 15 (A0) naar GND
  • Pin 14 (NC) naar GND (niet nodig)
  • Pin 13 (SDA) naar ESP GPIO0
  • Pin 12 (SCL) naar ESP GPIO2
  • Pin 11 (NC) naar GND (niet nodig)
  • Pin 10 (VSS) naar GND

Stap 2: Het moederbord maken

Het moederbord maken
Het moederbord maken

Het bord is eenvoudig te maken zoals hierboven uitgelegd, alles is eenvoudig van opzet.

Mijn moederbord kostte weinig tijd om te maken en is hierboven weergegeven.

Je kunt deze schakeling natuurlijk bouwen op een breadboard.

Stap 3: Extra borden

Extra borden
Extra borden

Ik heb wat extra 8-bits boards gemaakt die gemakkelijk in verschillende projectboards kunnen worden gestoken.

Het eerste bord is verbonden met een 7-segment LED-display en is verbonden met pin 1 op segment a, pin 2 op b enz. Er is een kleine weerstand (ongeveer 55 ohm) om de LED's te beschermen.

De tweede is een bank met 8 schakelaars, allemaal met elkaar bedraad en kan worden aangesloten op 3,3 V of aarde. Ik heb geen trekweerstanden toegevoegd omdat de MCP23017 ze heeft ingebouwd.

De derde is van een Ebay-kit, deze bestaat uit 8 LED's en een weerstandsarray met een verbinding met Gnd. Ik heb ook hetzelfde bord, maar heb de LED's andersom geïnstalleerd, zodat het verbinding maakt met 3,3 V of 5 V in plaats van Gnd. Op Ebay staan ze bekend als een 8 Channel Flowing Water Light LED DIY Kit, 99p uit China.

Stap 4: Programmeren

Programmeren
Programmeren

Ik heb de programma's geschreven om met een ESP01 te werken, aangezien deze slechts 2 I/O-pinnen heeft. Het kan natuurlijk worden gebruikt met elk van de ESP8266-borden. De SDA- en SCL-pinnen kunnen worden toegewezen aan elke pin tussen 1 en 12.

Als u een oudere versie van LUA gebruikt (bijv. NodeMCU 0.9.6 build 20150704 powered by Lua 5.1.4), is de I2C al geïnstalleerd. Anders moet u ervoor zorgen dat de I2C-module in uw build is opgenomen.

Ik heb 3 eenvoudige Lua-programma's bijgevoegd om te laten zien hoe de IC kan worden gebruikt.

7Segment.lua stuurt een LED-display en sequenties tussen de nummers 1 tot 0.

KittCar.lua bestuurt het 8 LED-bord om de beroemde auto uit de jaren 80 te simuleren.

Reader.lua leest van poort B.

Stap 5: Welke pin?

Welke pin?
Welke pin?

Een extra programma dat ik bedacht tijdens het knutselen.

Het gebruikt poort B als ingang en poort A als uitgang. De foto toont DIP-switches, maar u kunt een van de poort B-pinnen op Gnd aansluiten en het LED-display laat zien welke pin is aangesloten.

OPMERKING: Het werkt slechts met 1 pin tegelijk!

Stap 6: Conclusie

Conclusie
Conclusie

Er zijn natuurlijk andere I/O-uitbreidingen beschikbaar. Sommige zijn 8 bit, 16 bit en zelfs 24 bit! Ze werken allemaal op dezelfde manier als de MCP23017, maar deze IC is erg goedkoop voor zijn mogelijkheden en kan voor ongeveer 10p elk uit China worden gekocht.

Ik heb niet alle functies van dit IC gebruikt, omdat er ook interrupts beschikbaar zijn die kunnen worden gebruikt. Het lezen van de datasheet vertelt alles over de verschillende registers en manieren waarop de IC kan worden gebruikt.

Het is mogelijk om 8 van deze apparaten op dezelfde I2C-bus te hebben, waardoor 128 I/O-poorten worden bestuurd door 2 lijnen. Denk aan de mogelijkheden daar!

Aanbevolen: