Indholdsfortegnelse:
- Trin 1: Tilslutning af MCP23008
- Trin 2: Konstruktion af et bord
- Trin 3: Brug af et biblioteksmodul
- Trin 4: Kitt Car Program
- Trin 5: 7 Segment LED
- Trin 6: Konklusion
Video: NODEMCU LUA ESP8266 Med MCP23008 8 Bit Port Expander IC: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
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
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
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
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
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
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
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:
Gør SAMD21-baserede plader USB-port til en hardware-seriel port !: 3 trin
Gør SAMD21-baserede plader USB-port til en hardware-seriel port !: Det er i dag standard at bruge en Arduino (eller en hvilken som helst anden kompatibel) USB-port som en emuleret seriel port. Dette er meget nyttigt til fejlfinding, afsendelse og modtagelse af data fra vores elskelige boards. Jeg arbejdede på uChip, da jeg gennemgik datashash
NODEMCU Lua ESP8266 med ur i realtid (RTC) og EEPROM: 7 trin
NODEMCU Lua ESP8266 Med Real Time Clock (RTC) & EEPROM: Det er vigtigt at få den korrekte tid, hvis du vil føre en datalog. Der er forskellige måder at få tiden fra kilder på Internettet. Du kan spørge, hvorfor ikke bruge ESP8266 til at holde tid til dig? Det kan du godt, det har sin egen interne RTC (Real Time
NODEMCU LUA ESP8266 Kørsel af en M5450B7 LED Display Driver IC: 5 trin (med billeder)
NODEMCU LUA ESP8266 Kørsel af en M5450B7 LED -skærmdriver IC: M5450B7 er en 40 Pin DIP LED -skærmdriver IC. Det ser snarere ud som et dyr, men det er relativt let at styre og programmere. Der er 34 output pins, der kan have en LED tilsluttet til hver enkelt. Enheden synker strøm frem for at levere den, så c
NODEMCU LUA ESP8266 Med CD4017 Decade Counter: 4 trin (med billeder)
NODEMCU LUA ESP8266 Med CD4017 Decade Counter: CD4017 er en tiårs tæller / divider. Det betyder, at når den modtager en puls, tæller den den og sender en udgang til den relevante pin. Det er en ganske let IC at bruge, og du kan enten bygge kredsløbet på et brødbræt eller købe et fra Ebay til
NODEMCU LUA ESP8266 Med MCP23017 16 Bit Port Expander IC: 6 trin (med billeder)
NODEMCU LUA ESP8266 Med MCP23017 16 Bit Port Expander IC: MCP23017 er en relativt let IC at lave et board til, da den har Port A og B på hver side af chippen, og benene er i rækkefølge. På samme måde er I2C -adressebussen alt sammen også. Der er 2 ben på denne IC, som ikke er brugt, da den