Innehållsförteckning:

NODEMCU LUA ESP8266 Med MCP23017 16 Bit Port Expander IC: 6 steg (med bilder)
NODEMCU LUA ESP8266 Med MCP23017 16 Bit Port Expander IC: 6 steg (med bilder)

Video: NODEMCU LUA ESP8266 Med MCP23017 16 Bit Port Expander IC: 6 steg (med bilder)

Video: NODEMCU LUA ESP8266 Med MCP23017 16 Bit Port Expander IC: 6 steg (med bilder)
Video: encoder-interrupt NODE MCU ESP8266 2024, November
Anonim
NODEMCU LUA ESP8266 Med MCP23017 16 Bit Port Expander IC
NODEMCU LUA ESP8266 Med MCP23017 16 Bit Port Expander IC

MCP23017 är en relativt enkel IC att göra ett bräde för eftersom den har port A och B på vardera sidan av chipet och stiften är i ordningsföljd.

På samma sätt är I2C -adressbussen också tillsammans.

Det finns 2 stift på denna IC som är oanvända eftersom det är jämförbart med MCP23S17 som använder ett SPI -gränssnitt där dessa stift används.

Ett datablad för denna IC är tillgängligt från Microchip.

Steg 1: Kretsdiagram

Kretsdiagram
Kretsdiagram

Kretsschemat visar hur man ansluter IC till en ESP8266

OBS: IC körs mellan 2,7 och 5,5 volt.

Pin Anslutningar på mitt kort

  • Stift 9 (VDD) till 3v3
  • Pin 18 (RESET) till 3v3
  • Stift 17 (A2) till GND
  • Pin 16 (A1) till GND
  • Pin 15 (A0) till GND
  • Stift 14 (NC) till GND (Ej nödvändigt)
  • Pin 13 (SDA) till ESP GPIO0
  • Pin 12 (SCL) till ESP GPIO2
  • Stift 11 (NC) till GND (Ej nödvändigt)
  • Pin 10 (VSS) till GND

Steg 2: Gör huvudkortet

Gör huvudstyrelsen
Gör huvudstyrelsen

Styrelsen är rakt fram för att göra som förklarat ovan, allt har en enkel layout.

Min huvudkort tog lite tid att göra och visas ovan.

Du kan naturligtvis bygga denna krets på en brödbräda.

Steg 3: Ytterligare kort

Ytterligare styrelser
Ytterligare styrelser

Jag har skapat några extra 8 bitars kort som enkelt kan anslutas till olika projektkort.

Det första kortet är anslutet till en 7 -segment LED -display och är ansluten pin 1 till segment a, pin 2 till b etc. Det finns ett litet motstånd (ca 55 ohm) för att skydda lysdioderna.

Den andra är en 8 switchar bank som alla är ihopkopplade och kan anslutas till 3.3V eller jord. Jag har inte inkluderat några dragmotstånd eftersom MCP23017 har dem inbyggda.

Den tredje är från ett Ebay -kit, den består av 8 lysdioder och en resistor array med en anslutning till Gnd. Jag har också samma kort men installerade lysdioderna tvärtom så att den ansluts till 3.3V eller 5V istället för Gnd. På Ebay är de kända som ett 8 -kanals flödande vattenljus LED DIY -kit, 99p från Kina.

Steg 4: Programmering

Programmering
Programmering

Jag har skrivit programmen för att arbeta med en ESP01 eftersom den bara har 2 I/O -stift. Den kan naturligtvis användas med alla ESP8266 -kort. SDA- och SCL -stiften kan tilldelas valfri stift mellan 1 och 12.

Om du använder en äldre version av LUA (t.ex. NodeMCU 0.9.6 build 20150704 som drivs av Lua 5.1.4) är I2C redan installerat. Annars måste du se till att I2C -modulen ingår i din byggnad.

Jag har inkluderat 3 enkla Lua -program för att visa hur IC: n kan användas.

7Segment.lua driver en LED -display och sekvenser mellan siffrorna 1 till 0.

KittCar.lua driver 8 LED -kortet för att simulera den berömda bilen från 80 -talet.

Reader.lua läser från Port B.

Steg 5: Vilken stift?

Vilken Pin?
Vilken Pin?

Ett extra program som jag kom på när jag pysslade.

Den använder port B som ingång och port A som utgång. Bilden visar DIP -switchar, men du kan ansluta en av port B -stiften till Gnd och LED -displayen visar vilken stift som är ansluten.

OBS: Det fungerar bara med 1 stift åt gången!

Steg 6: Slutsats

Slutsats
Slutsats

Det finns naturligtvis andra I/O -utbyggare tillgängliga. Vissa är 8 -bitars, 16 -bitars och till och med 24 -bitars! Alla fungerar på liknande sätt som MCP23017, men denna IC är mycket billig för sin förmåga och kan köpas för cirka 10 p styck från Kina.

Jag har inte använt alla funktioner i denna IC eftersom det också finns avbrott som kan tas i bruk. Att läsa databladet berättar allt om de olika registren och sätten IC kan användas.

Det är möjligt att ha 8 av dessa enheter på samma I2C -buss som ger 128 I/O -portar som alla styrs av 2 linjer. Tänk på möjligheterna där!

Rekommenderad: