Taula de continguts:
- Pas 1: cablejar l'MCP23008
- Pas 2: construir una junta
- Pas 3: utilitzar un mòdul de biblioteca
- Pas 4: Programa Kitt Car
- Pas 5: LED de 7 segments
- Pas 6: Conclusió
Vídeo: NODEMCU LUA ESP8266 Amb MCP23008 IC d'expansió de port de 8 bits: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:16
El MCP23008 és un expansor d'E / S de 8 bits amb interfície sèrie i funciona entre 1,8 i 5,5 volts, de manera que és ideal per a ESP8266, Arduino, Raspberry Pi, xips PIC i molt més.
Si heu vist el meu altre Instructable a l'MCP23017, potser us preguntareu per què també en faig un per a l'MCP23008, ja que realment és una versió més petita del mateix.
Els motius són que els seus registres són diferents tant pel que fa al nom com al número i m'agradaria mostrar com s'utilitza un mòdul de biblioteca preparat. No tothom és hàbil quan s’utilitza NodeMCU lua, així que m’agradaria mostrar aquest aspecte de la programació i també com utilitzar l’MCP23008.
La biblioteca i els programes estan disponibles a github.com.
El full de dades del MCP23008 està disponible a Microchip.
Pas 1: cablejar l'MCP23008
L’IC MCP23008 té un disseny senzill i la realització d’una placa és realment senzilla. També podeu configurar el circuit en una taula de pa.
Fixa les connexions al meu tauler
- Pin 18 (VDD) a 3v3
- Pin 9 (VSS) a GND
- Pin 7 (NC) a GND (no és necessari)
- Pin 1 (SCL) a ESP GPIO2
- Pin 2 (SDA) a ESP GPIO0
- Pin 5 (A0) a GND
- Pin 4 (A1) a GND
- Pin 3 (A2) a GND
- Pin 6 (RESET) a 3v3
Connecteu els pins per llegir-los a Gnd al port A (pins 10 - 17)
Nota: aquí tots els pins d’adreça estan connectats a Gnd per utilitzar l’MCP23008 a l’adreça 0x20 al bus d’adreces I2C.
Si utilitzeu l'adreça 0x21, A0 estaria connectat a 3,3 V, amb A1 i A2 connectats a Gnd.
De la mateixa manera, si s'utilitza l'adreça 0x22, A1 hauria de connectar-se a 3,3V amb A0 i A2 connectats a Gnd.
etc …
Pas 2: construir una junta
Vaig utilitzar un tauler de tires Vero de 25 mm x 64 mm (9 files x 25 forats) per construir el meu tauler. És una mica ajustat, però com que la majoria dels passadors que necessiteu es troben a banda i banda del CI, és adequat per al que ha de fer.
He utilitzat 8 pins i 8 endolls de capçalera per al port A, de manera que puc connectar els meus mòduls i altres cables per a diferents projectes. He afegit pins Gnd i 3.3V addicionals, ja que trobo que sempre en falten quan connecteu mòduls junts.
Pas 3: utilitzar un mòdul de biblioteca
Els mòduls de biblioteca normalment contenen una selecció de subrutines, funcions i variables a les quals pot accedir un altre programa. El programa en si no s’executa, però el programa que fa trucades pot accedir a les seves funcions. Vol dir que podeu tenir les vostres subrutines a la biblioteca i trucar-les sempre que les necessiteu, fent un petit programa de trucades. Es fa més valuós si teniu molts programes diferents que utilitzen les mateixes subrutines, no cal incloure-les a tots els programes.
Nota: cal carregar el programa mcp23008.lua a la memòria ESP8266 com la resta de programes.
He inclòs els programes github.com aquí, així com un programa senzill (test.lua) per demostrar que la biblioteca funciona.
Hi ha almenys dues maneres d’incloure la biblioteca al vostre programa.
require ("mcp23008")
mcp23008.begin (0x0, gpio2, gpio0, i2c. SLOW)
o bé
mcp = require ("mcp23008")
mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)
Tots dos anteriors fan el mateix, però el segon mètode us permet utilitzar la vostra pròpia variable en lloc del nom del programa.
Pas 4: Programa Kitt Car
He inclòs el programa KittCar23008.lua i KittLib.lua que utilitza la biblioteca per mostrar les diferències en com escriure programes d'aquesta manera. Tots dos programes fan el mateix.
El connector de 8 LED està disponible a Ebay com a kit i es coneix com a kit de bricolatge LED de llum d’aigua que flueix de 8 canals, 99p de la Xina. Ho heu de soldar vosaltres mateixos.
Nota: Si teniu un problema en intentar executar el programa KittLib.lua, proveu de connectar el pin RESET MCP23008 a Gnd momentàniament. Sé que això donarà un curtcircuit directe (ja que està connectat a 3,3V) i haureu de restablir tota la resta. També funciona connectant-se a Gnd mitjançant una resistència de 10 ohms, probablement una millor manera de fer-ho.
També vaig trobar que KittLib.lua funcionaria sense problemes després d’executar test.lua (No em pregunteu per què?)
He provat diverses maneres de resoldre el problema del programa KittLib.lua, però fins ara no he trobat cap raó lògica per què es bloqueja. Algú té alguna idea?
No he escrit tots aquests programes jo mateix, de manera que no sóc capaç de dir per què hi ha un problema, tot i que, després d’haver analitzat la codificació, no sembla que hi hagi res evidentment erroni.
Pas 5: LED de 7 segments
Com amb el programa KittCar.lua anterior, he inclòs un programa independent i dependent de la biblioteca per conduir una pantalla LED de 7 segments.
Una vegada més, tots dos programes fan el mateix, però demostren com utilitzar un mòdul de biblioteca escrit per vosaltres mateixos o per algú altre.
Pas 6: Conclusió
He intentat demostrar com s'utilitzen mòduls de codi dins de l'entorn Lua i aplicar-los a un CI específic al mateix temps.
Tot i que he tingut problemes per fer-ho, crec que n’hi ha prou per mostrar el funcionament d’aquests mòduls i demostrar una aplicació de la vida real.
Recomanat:
Disseny d’un PCB d’expansió (Intel® IoT): 20 passos
Disseny d’un PCB d’expansió (Intel® IoT): aquest manual d’instruccions s’ha escrit com a punt de partida per a aquells que desitgin utilitzar Intel® Edison al màxim potencial, incorporant-lo a un projecte integrat completament desenvolupat. Per fer-ho, és probable que hàgiu de fer-ho, ja que Intel® crida
Tauler d’expansió personalitzat casolà de Raspberry Pi: 8 passos
Taula d’expansió personalitzada casolana de Raspberry Pi: des del 2015 estic millorant aquest gran projecte per tenir un centre multimèdia personalitzat gairebé il·limitat al meu cotxe. Un dia vaig decidir organitzar-hi els cables amb una placa de PCB personalitzada. Les imatges anteriors es troben en un ampli escenari de prototipus, de manera que
NLDWRTG la placa d’expansió ULTIMATE WRT54G: 8 passos (amb imatges)
NLDWRTG, la placa d’expansió ULTIMATE WRT54G: estic modificant els routers WRT54G des del 2006, però mai no vaig tenir temps de dissenyar-hi una placa dedicada fins l’any passat. mantenir-se viu
NODEMCU LUA ESP8266 Amb comptador de dècades CD4017: 4 passos (amb imatges)
NODEMCU LUA ESP8266 Amb comptador de dècades CD4017: El CD4017 és un comptador / divisor de dècades. Això vol dir que quan rep un impuls el compta i envia una sortida al pin adequat. És un CI força senzill d'utilitzar i podeu construir el circuit en una placa de pa o comprar-ne un a Ebay per
NODEMCU LUA ESP8266 Amb MCP23017 IC de 16 bits d'expansió de ports: 6 passos (amb imatges)
NODEMCU LUA ESP8266 Amb MCP23017 IC de 16 bits d’expansió de ports: l’MCP23017 és un IC relativament fàcil de fer una placa ja que té els ports A i B a banda i banda del xip i els pins estan en ordre seqüencial. tots junts també. Hi ha 2 pins en aquest CI que no s’utilitzen