Indholdsfortegnelse:

NODEMCU LUA ESP8266 Med MCP23008 8 Bit Port Expander IC: 6 trin
NODEMCU LUA ESP8266 Med MCP23008 8 Bit Port Expander IC: 6 trin

Video: NODEMCU LUA ESP8266 Med MCP23008 8 Bit Port Expander IC: 6 trin

Video: NODEMCU LUA ESP8266 Med MCP23008 8 Bit Port Expander IC: 6 trin
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, November
Anonim
NODEMCU LUA ESP8266 Med MCP23008 8 Bit Port Expander IC
NODEMCU LUA ESP8266 Med MCP23008 8 Bit Port Expander IC

MCP23008 er en 8-bit I/O-udvidelse med serielt interface og fungerer mellem 1,8 og 5,5 volt, så den er ideel til ESP8266, Arduino, Raspberry Pi, PIC Chips og mere.

Hvis du har set min anden Instructable på MCP23017, undrer du dig måske over, hvorfor jeg også gør en til MCP23008, da det virkelig er en mindre version af det samme.

Årsagerne er, at dets registre er forskellige både i navn og nummer, og jeg vil gerne vise, hvordan man bruger et færdigt biblioteksmodul. Ikke alle er dygtige, når de bruger NodeMCU lua, så jeg vil gerne vise dette aspekt af programmering samt hvordan man bruger MCP23008.

Biblioteket og programmerne er tilgængelige på github.com.

Databladet til MCP23008 er tilgængeligt fra Microchip.

Trin 1: Tilslutning af MCP23008

Tilslutning af MCP23008
Tilslutning af MCP23008

MCP23008 IC har et enkelt layout, og det er virkelig let at bygge et bræt. Du kan også opsætte kredsløbet på et brødbræt.

Fastgør forbindelser på mit bord

  • Pin 18 (VDD) til 3v3
  • Pin 9 (VSS) til GND
  • Pin 7 (NC) til GND (ikke nødvendigt)
  • Pin 1 (SCL) til ESP GPIO2
  • Pin 2 (SDA) til ESP GPIO0
  • Pin 5 (A0) til GND
  • Pin 4 (A1) til GND
  • Pin 3 (A2) til GND
  • Pin 6 (RESET) til 3v3

Tilslut stifter, der skal læses, til Gnd på port A (ben 10 - 17)

Bemærk: her er alle adressestifter forbundet til Gnd for at bruge MCP23008 på adressen 0x20 på I2C -adressebussen.

Hvis du brugte adressen 0x21, ville A0 være forbundet til 3.3V, med A1 & A2 forbundet til Gnd.

På samme måde, hvis du bruger adressen 0x22, skal A1 forbindes til 3.3V med A0 og A2 tilsluttet Gnd.

etc…

Trin 2: Konstruktion af et bord

Konstruktion af et bestyrelse
Konstruktion af et bestyrelse

Jeg brugte en 25 mm x 64 mm (9 rækker x 25 huller) Vero stripplade til at konstruere mit bord. Det er lidt stramt, men da de fleste af de ben, du har brug for, er på hver side af IC, er det tilstrækkeligt til, hvad det skal gøre.

Jeg har brugt 8 ben og 8 stikstik til port A, så jeg kan tilslutte mine forskellige moduler samt andre ledninger til forskellige projekter. Jeg har tilføjet ekstra Gnd- og 3.3V -pins, da jeg finder, at der altid er mangel på disse, når man forbinder moduler sammen.

Trin 3: Brug af et biblioteksmodul

Brug af et biblioteksmodul
Brug af et biblioteksmodul

Biblioteksmoduler indeholder normalt et udvalg af underrutiner, funktioner og variabler, som et andet program kan få adgang til. Selve programmet kører ikke, men dets funktioner kan tilgås af det kaldende program. Det betyder, at du kan have dine underrutiner i biblioteket og ringe til dem, når du har brug for dem, og lave et lille opkaldsprogram. Det bliver mere værdifuldt, hvis du har mange forskellige programmer, der bruger de samme underrutiner, du behøver ikke at inkludere underrutinerne i hvert program.

Bemærk: mcp23008.lua -programmet skal indlæses i ESP8266 -hukommelsen ligesom de andre programmer.

Jeg har inkluderet github.com -programmerne her samt et enkelt program (test.lua) for at vise, at biblioteket fungerer.

Der er mindst 2 måder at inkludere biblioteket i dit program.

kræve ("mcp23008")

mcp23008.begynd (0x0, gpio2, gpio0, i2c. LOW)

eller

mcp = require ("mcp23008")

mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)

Begge ovenstående gør det samme, men den anden metode giver dig mulighed for at bruge din egen variabel i stedet for programnavnet.

Trin 4: Kitt Car Program

Kitt bilprogram
Kitt bilprogram

Jeg har inkluderet KittCar23008.lua -programmet og KittLib.lua, som bruger biblioteket til at vise forskellene i, hvordan man skriver programmer på denne måde. Begge programmer gør det samme.

Det 8 LED -stik kan fås fra Ebay som et sæt og er kendt som et 8 -kanals flydende vandlys LED DIY -kit, 99p fra Kina. Du skal selv lodde det.

Bemærk: Hvis du har et problem med at prøve at køre KittLib.lua -programmet, kan du prøve at forbinde MCP23008 RESET -pin til Gnd et øjeblik. Jeg ved, at dette vil give en direkte kortslutning (da den er tilsluttet 3.3V), og du skal nulstille alt andet. Det fungerer også ved at oprette forbindelse til Gnd via en 10 ohm modstand, sandsynligvis en bedre måde at gøre det på.

Jeg fandt også ud af, at KittLib.lua uden problemer ville køre efter at have kørt test.lua (Spørg mig ikke hvorfor?)

Jeg har prøvet forskellige måder at løse KittLib.lua -programproblemet på, men kan indtil nu ikke finde nogen logisk årsag til, hvorfor det går ned. Er der nogen der har nogen ideer?

Jeg har ikke selv skrevet alle disse programmer, så jeg kan ikke sige, hvorfor der er et problem, selvom der ikke ser ud til at være noget åbenbart forkert efter at have kigget på kodningen.

Trin 5: 7 Segment LED

7 LED segmenter
7 LED segmenter

Som med KittCar.lua -programmet ovenfor har jeg inkluderet et selvstændigt og et bibliotekafhængigt program til at køre et 7 -segment LED -display.

Igen gør begge programmer det samme, men demonstrerer, hvordan du bruger et biblioteksmodul, enten skrevet af dig selv eller en anden.

Trin 6: Konklusion

Konklusion
Konklusion

Jeg har forsøgt at demonstrere, hvordan man bruger kodemoduler i Lua -miljøet, og anvender det på en bestemt IC på samme tid.

Selvom jeg har haft et problem med at gøre dette, synes jeg, at der er nok til at vise, hvordan disse moduler fungerer, såvel som at demonstrere en applikation fra det virkelige liv.

Anbefalede: