Sommario:
- Passaggio 1: cablaggio dell'MCP23008
- Passaggio 2: costruzione di una tavola
- Passaggio 3: utilizzo di un modulo libreria
- Passaggio 4: programma Kitt Car
- Passaggio 5: LED a 7 segmenti
- Passaggio 6: conclusione
Video: NODEMCU LUA ESP8266 con MCP23008 8 bit Port Expander IC: 6 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
L'MCP23008 è un espansore I/O a 8 bit con interfaccia seriale e opera tra 1,8 e 5,5 volt, quindi è ideale per ESP8266, Arduino, Raspberry Pi, chip PIC e altro ancora.
Se hai visto il mio altro Instructable sull'MCP23017, ti starai chiedendo perché ne sto facendo uno anche per l'MCP23008, poiché è davvero una versione più piccola della stessa cosa.
Le ragioni sono che i suoi registri sono diversi sia nel nome che nel numero e vorrei mostrare come utilizzare un modulo di libreria già pronto. Non tutti sono esperti nell'uso di NodeMCU lua, quindi vorrei mostrare questo aspetto della programmazione e come utilizzare l'MCP23008.
La libreria e i programmi sono disponibili su github.com.
La scheda tecnica per l'MCP23008 è disponibile presso Microchip.
Passaggio 1: cablaggio dell'MCP23008
L'IC MCP23008 ha un layout semplice e costruire una scheda è davvero facile. Puoi anche impostare il circuito su una breadboard.
Pin Connections sulla mia scheda
- Pin 18 (VDD) a 3v3
- Pin 9 (VSS) a GND
- Pin 7 (NC) a GND (non necessario)
- Pin 1 (SCL) a ESP GPIO2
- Pin 2 (SDA) su ESP GPIO0
- Pin 5 (A0) a GND
- Pin 4 (A1) a GND
- Pin 3 (A2) a GND
- Pin 6 (RESET) su 3v3
Collegare i pin da leggere a Gnd sulla Porta A (pin 10 - 17)
Nota: qui tutti i pin di indirizzo sono collegati a Gnd per utilizzare l'MCP23008 all'indirizzo 0x20 sul bus di indirizzo I2C.
Se stavi usando l'indirizzo 0x21, allora A0 sarebbe collegato a 3,3 V, con A1 e A2 collegati a Gnd.
Allo stesso modo, se si utilizza l'indirizzo 0x22, allora A1 dovrebbe essere collegato a 3.3V con A0 e A2 collegati a Gnd.
eccetera…
Passaggio 2: costruzione di una tavola
Ho usato una tavola da 25 mm x 64 mm (9 file x 25 fori) Vero per costruire la mia tavola. È un po' stretto, ma poiché la maggior parte dei pin necessari si trova su entrambi i lati dell'IC, è adeguato a ciò che deve fare.
Ho usato 8 pin e 8 connettori femmina per la porta A in modo da poter collegare i miei vari moduli e altri cablaggi per diversi progetti. Ho aggiunto pin Gnd e 3,3 V extra poiché trovo che manchino sempre questi quando si collegano i moduli insieme.
Passaggio 3: utilizzo di un modulo libreria
I moduli della libreria normalmente contengono una selezione di sottoprogrammi, funzioni e variabili a cui è possibile accedere da un altro programma. Il programma stesso non viene eseguito, ma è possibile accedere alle sue funzioni dal programma chiamante. Significa che puoi avere le tue subroutine all'interno della libreria e richiamarle ogni volta che ne hai bisogno, creando un piccolo programma di chiamata. Diventa più prezioso se si hanno molti programmi diversi che utilizzano le stesse subroutine, non è necessario includere le subroutine in ogni programma.
Nota: il programma mcp23008.lua deve essere caricato nella memoria ESP8266 come gli altri programmi.
Ho incluso qui i programmi github.com e un semplice programma (test.lua) per mostrare che la libreria funziona.
Ci sono almeno 2 modi per includere la libreria nel tuo programma.
richiedono ("mcp23008")
mcp23008.begin(0x0, gpio2, gpio0, i2c. SLOW)
o
mcp = richiede ("mcp23008")
mcp.begin(0x0, gpio2, gpio0, i2c. SLOW)
Entrambi i precedenti fanno la stessa cosa, ma il secondo metodo ti consente di utilizzare la tua variabile invece del nome del programma.
Passaggio 4: programma Kitt Car
Ho incluso il programma KittCar23008.lua e KittLib.lua che usa la libreria per mostrare le differenze su come scrivere programmi in questo modo. Entrambi i programmi fanno la stessa cosa.
Il plug-in a 8 LED è disponibile su Ebay come kit ed è noto come kit fai-da-te a LED con luce a flusso d'acqua a 8 canali, 99p dalla Cina. Devi saldarlo da solo.
Nota: se si riscontra un problema nel tentativo di eseguire il programma KittLib.lua, provare a collegare momentaneamente il pin RESET dell'MCP23008 a Gnd. So che questo darà un cortocircuito diretto (dato che è collegato a 3,3 V) e devi ripristinare tutto il resto. Funziona anche collegandosi a Gnd tramite un resistore da 10 ohm, probabilmente un modo migliore per farlo.
Ho anche scoperto che KittLib.lua funzionerebbe senza problemi dopo aver eseguito test.lua (non chiedermi perché?)
Ho provato vari modi per risolvere il problema del programma KittLib.lua, ma finora non riesco a trovare alcuna ragione logica per cui si blocca. Qualcuno ha qualche idea?
Non ho scritto tutti questi programmi da solo, quindi non sono in grado di dire perché c'è un problema, anche se dopo aver guardato la codifica, non sembra esserci nulla di evidentemente sbagliato.
Passaggio 5: LED a 7 segmenti
Come con il programma KittCar.lua sopra, ho incluso un programma autonomo e dipendente dalla libreria per pilotare un display LED a 7 segmenti.
Di nuovo, entrambi i programmi fanno la stessa cosa, ma dimostrano come usare un modulo di libreria scritto da te o da qualcun altro.
Passaggio 6: conclusione
Ho provato a dimostrare come utilizzare i moduli di codice all'interno dell'ambiente Lua e applicarlo a un IC specifico allo stesso tempo.
Anche se ho avuto problemi a farlo, penso che ci sia abbastanza per mostrare come funzionano questi moduli oltre a dimostrare un'applicazione nella vita reale.
Consigliato:
NODEMCU LUA ESP8266 Connessione al database MySQL: 6 passaggi
NODEMCU LUA ESP8266 Connetti al database MySQL: questo istruibile non è per i deboli di cuore poiché utilizza XAMPP (Apache, MySQL e PHP), HTML e ovviamente LUA. Se sei sicuro di affrontarli, continua a leggere! Uso XAMPP in quanto può essere configurato su una pen drive o sul tuo disco rigido ed è configurato
NODEMCU Lua ESP8266 con orologio in tempo reale (RTC) e EEPROM: 7 passaggi
NODEMCU Lua ESP8266 con orologio in tempo reale (RTC) e EEPROM: ottenere l'ora corretta è essenziale se si desidera conservare un registro dati. Esistono vari modi per ottenere l'ora da fonti su Internet. Potresti chiedere perché non usare ESP8266 per tenere il tempo per te? Beh, puoi, ha il suo RTC interno (Real Time
NODEMCU LUA ESP8266 Guida di un driver per display a LED M5450B7 IC: 5 passaggi (con immagini)
NODEMCU LUA ESP8266 Guida di un IC driver display LED M5450B7: L'M5450B7 è un IC driver display LED DIP a 40 pin. Sembra piuttosto una bestia, ma è relativamente facile da controllare e programmare. Ci sono 34 pin di uscita che possono avere un LED collegato a ciascuno. Il dispositivo assorbe corrente anziché fornirla, quindi il c
NODEMCU LUA ESP8266 con contatore di decadi CD4017: 4 passaggi (con immagini)
NODEMCU LUA ESP8266 con contatore di decadi CD4017: il CD4017 è un contatore/divisore di decadi. Ciò significa che quando riceve un impulso lo conta e invia un'uscita al pin appropriato. È un IC abbastanza facile da usare e puoi costruire il circuito su una breadboard o acquistarne uno da Ebay per
NODEMCU LUA ESP8266 con MCP23017 16 bit Port Expander IC: 6 passaggi (con immagini)
NODEMCU LUA ESP8266 Con MCP23017 16 Bit Port Expander IC: L'MCP23017 è un IC relativamente facile per realizzare una scheda in quanto ha le porte A e B su entrambi i lati del chip e i pin sono in ordine sequenziale. Analogamente, il bus degli indirizzi I2C è anche tutti insieme. Ci sono 2 pin su questo IC che sono inutilizzati in quanto