Innehållsförteckning:
- Steg 1: Anslut MCP23008
- Steg 2: Konstruera en styrelse
- Steg 3: Använda en biblioteksmodul
- Steg 4: Kitt Car Program
- Steg 5: 7 Segment -LED
- Steg 6: Slutsats
Video: NODEMCU LUA ESP8266 Med MCP23008 8 Bit Port Expander IC: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
MCP23008 är en 8-bitars I/O-expander med seriellt gränssnitt och fungerar mellan 1,8 och 5,5 volt, så den är idealisk för ESP8266, Arduino, Raspberry Pi, PIC-chips och mer.
Om du har sett min andra Instructable på MCP23017 kanske du undrar varför jag också gör en för MCP23008, eftersom det verkligen är en mindre version av samma sak.
Orsakerna är att dess register är olika både i namn och nummer och jag skulle vilja visa hur man använder en färdig biblioteksmodul. Inte alla är skickliga när de använder NodeMCU lua, så jag skulle vilja visa denna aspekt av programmering samt hur man använder MCP23008.
Biblioteket och programmen finns på github.com.
Databladet för MCP23008 är tillgängligt från Microchip.
Steg 1: Anslut MCP23008
MCP23008 IC har en enkel layout och att bygga en bräda är väldigt enkelt för den. Du kan också ställa in kretsen på en brödbräda.
Pin Anslutningar på mitt kort
- Pin 18 (VDD) till 3v3
- Pin 9 (VSS) till GND
- Stift 7 (NC) till GND (Ej nödvändigt)
- Pin 1 (SCL) till ESP GPIO2
- Pin 2 (SDA) till ESP GPIO0
- Pin 5 (A0) till GND
- Stift 4 (A1) till GND
- Pin 3 (A2) till GND
- Pin 6 (RESET) till 3v3
Anslut stiften som ska läsas till Gnd på port A (stift 10 - 17)
Obs! Här är alla adresspinnar anslutna till Gnd för att använda MCP23008 på adressen 0x20 på I2C -adressbussen.
Om du använde adressen 0x21 skulle A0 vara ansluten till 3.3V, med A1 & A2 ansluten till Gnd.
På samma sätt om du använder adressen 0x22 måste A1 anslutas till 3.3V med A0 och A2 ansluten till Gnd.
etc…
Steg 2: Konstruera en styrelse
Jag använde en 25 mm x 64 mm (9 rader x 25 hål) Vero bandskiva för att konstruera min bräda. Det är lite tätt, men eftersom de flesta stiften du behöver är på vardera sidan av IC, är det tillräckligt för vad det måste göra.
Jag har använt 8 stift och 8 huvuduttag för port A så att jag kan koppla in mina olika moduler samt andra ledningar för olika projekt. Jag har lagt till extra Gnd- och 3.3V -stift eftersom jag tycker att det alltid är brist på dessa när man ansluter moduler.
Steg 3: Använda en biblioteksmodul
Biblioteksmoduler innehåller normalt ett urval av underrutiner, funktioner och variabler som kan nås av ett annat program. Själva programmet körs inte, men dess funktioner kan nås av det anropande programmet. Det betyder att du kan ha dina underrutiner i biblioteket och ringa upp dem när du behöver dem, vilket gör ett litet samtalsprogram. Det blir mer värdefullt om du har många olika program som använder samma underrutiner, du behöver inte inkludera delrutinerna i varje program.
Obs! Programmet mcp23008.lua måste laddas in i ESP8266 -minnet som de andra programmen.
Jag har inkluderat github.com -programmen här samt ett enkelt program (test.lua) för att visa att biblioteket fungerar.
Det finns minst 2 sätt att inkludera biblioteket i ditt program.
kräver ("mcp23008")
mcp23008.begin (0x0, gpio2, gpio0, i2c. SLOW)
eller
mcp = require ("mcp23008")
mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)
Båda ovanstående gör samma sak, men den andra metoden låter dig använda din egen variabel istället för programnamnet.
Steg 4: Kitt Car Program
Jag har inkluderat programmet KittCar23008.lua och KittLib.lua som använder biblioteket för att visa skillnaderna i hur man skriver program på detta sätt. Båda programmen gör samma sak.
Den 8 LED -kontakten är tillgänglig från Ebay som ett kit och är känd som en 8 -kanals flytande vattenljus LED DIY Kit, 99p från Kina. Du måste lödda det själv.
Obs! Om du har problem med att försöka köra KittLib.lua -programmet kan du försöka ansluta MCP23008 RESET -stift till Gnd en stund. Jag vet att detta kommer att ge en direkt kortslutning (eftersom den är ansluten till 3,3V) och du måste återställa allt annat. Det fungerar också genom att ansluta till Gnd via ett 10 ohm motstånd, förmodligen ett bättre sätt att göra det.
Jag fann också att KittLib.lua skulle köras utan problem efter att ha kört test.lua (Fråga mig inte varför?)
Jag har försökt olika sätt att lösa KittLib.lua -programproblemet, men hittills har jag inte hittat någon logisk anledning till att det kraschar. Är det någon som har några idéer?
Jag har inte skrivit alla dessa program själv, så jag kan inte säga varför det är ett problem, men efter att ha tittat på kodningen verkar det inte vara något uppenbart fel.
Steg 5: 7 Segment -LED
Som med KittCar.lua -programmet ovan har jag inkluderat ett fristående och ett bibliotekberoende program för att driva en 7 -segment LED -display.
Återigen gör båda programmen samma sak, men visar hur man använder en biblioteksmodul antingen skriven av dig själv eller någon annan.
Steg 6: Slutsats
Jag har försökt visa hur man använder kodmoduler i Lua -miljön och samtidigt tillämpa den på en specifik IC.
Även om jag har haft problem med att göra detta, så tror jag att det finns tillräckligt med för att visa hur dessa moduler fungerar liksom att visa en verklig applikation.
Rekommenderad:
Gör SAMD21-baserade kort USB-port till en hårdvaruseriell port !: 3 steg
Göra SAMD21-baserade kort USB-port till en hårdvaruseriell port!: Det är standard idag att använda en Arduino (eller någon annan kompatibel) USB-port på kortet som en emulerad serieport. Detta är mycket användbart för att felsöka, skicka och ta emot data från våra älskvärda kort. Jag arbetade med uChip när jag gick igenom datashash
NODEMCU Lua ESP8266 med realtidsklocka (RTC) och EEPROM: 7 steg
NODEMCU Lua ESP8266 Med Real Time Clock (RTC) & EEPROM: Att få rätt tid är viktigt om du vill föra en datalogg. Det finns olika sätt att få tid från källor på Internet. Du kan fråga varför inte använda ESP8266 för att hålla tid åt dig? Du kan väl, den har sin egen interna RTC (Real Time
Blink LED med ESP8266 NodeMCU Lua WiFi Handledning: 6 steg
Blink LED med ESP8266 NodeMCU Lua WiFi Handledning: BESKRIVNINGNodeMCU är en IoT -plattform med öppen källkod. Den innehåller firmware som körs på ESP8266 WiFi SoC från Espressif och hårdvara som är baserad på ESP-12-modulen. Termen " NodeMcu " som standard hänvisar till filmprogrammet snarare än t
NODEMCU LUA ESP8266 Med CD4017 Decade Counter: 4 steg (med bilder)
NODEMCU LUA ESP8266 Med CD4017 Decade Counter: CD4017 är en decennieräknare / avdelare. Detta betyder att när den får en puls räknar den den och skickar en utgång till den lämpliga stiftet. Det är en ganska enkel IC att använda och du kan antingen bygga kretsen på ett brödbräda eller köpa en från Ebay för
NODEMCU LUA ESP8266 Med MCP23017 16 Bit Port Expander IC: 6 steg (med bilder)
NODEMCU LUA ESP8266 Med MCP23017 16 Bit Port Expander IC: MCP23017 är en relativt enkel IC att göra ett kort för eftersom den har Port A och B på vardera sidan av chipet och stiften är i sekventiell ordning. På samma sätt är I2C -adressbussen alla tillsammans också. Det finns 2 stift på denna IC som är oanvända eftersom det