Tabla de contenido:
- Paso 1: Cableado del MCP23008
- Paso 2: construcción de una placa
- Paso 3: uso de un módulo de biblioteca
- Paso 4: Programa de automóvil Kitt
- Paso 5: LED de 7 segmentos
- Paso 6: Conclusión
Video: NODEMCU LUA ESP8266 con IC de expansión de puerto de 8 bits MCP23008: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:44
El MCP23008 es un expansor de E / S de 8 bits con interfaz serial y opera entre 1.8 y 5.5 voltios, por lo que es ideal para ESP8266, Arduino, Raspberry Pi, PIC Chips y más.
Si ha visto mi otro Instructable en el MCP23017, es posible que se pregunte por qué también estoy haciendo uno para el MCP23008, ya que en realidad es una versión más pequeña de lo mismo.
Las razones son que sus registros son diferentes tanto en nombre como en número y me gustaría mostrar cómo usar un módulo de biblioteca listo para usar. No todo el mundo es experto en el uso de NodeMCU lua, por lo que me gustaría mostrar este aspecto de la programación y también cómo utilizar el MCP23008.
La biblioteca y los programas están disponibles en github.com.
La hoja de datos del MCP23008 está disponible en Microchip.
Paso 1: Cableado del MCP23008
El MCP23008 IC tiene un diseño simple y construir una placa es realmente fácil para él. También puede configurar el circuito en una placa de pruebas.
Conexiones de pines en mi tablero
- Pin 18 (VDD) a 3v3
- Pin 9 (VSS) a GND
- Pin 7 (NC) a GND (no es necesario)
- 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
Conecte los pines que se leerán a la tierra en el puerto A (pines 10-17)
Nota: aquí todos los pines de dirección están conectados a Gnd para usar el MCP23008 en la dirección 0x20 en el bus de direcciones I2C.
Si estuviera usando la dirección 0x21, A0 se conectaría a 3.3V, con A1 y A2 conectados a Gnd.
De manera similar, si usa la dirección 0x22, entonces A1 debería estar conectado a 3.3V con A0 y A2 conectados a Gnd.
etc …
Paso 2: construcción de una placa
Utilicé un tablero de tiras Vero de 25 mm x 64 mm (9 filas x 25 orificios) para construir mi tablero. Está un poco apretado, pero como la mayoría de los pines que necesita están a cada lado del IC, es adecuado para lo que tiene que hacer.
He usado 8 pines y 8 enchufes de encabezado para el puerto A para poder conectar mis diversos módulos, así como otro cableado para diferentes proyectos. He agregado pines Gnd y 3.3V adicionales, ya que siempre hay una escasez de estos al conectar módulos entre sí.
Paso 3: uso de un módulo de biblioteca
Los módulos de la biblioteca normalmente contienen una selección de subrutinas, funciones y variables a las que puede acceder otro programa. El programa en sí no se ejecuta, pero el programa que realiza la llamada puede acceder a sus funciones. Significa que puede tener sus subrutinas dentro de la biblioteca y llamarlas cuando las necesite, creando un pequeño programa de llamadas. Se vuelve más valioso si tiene muchos programas diferentes que utilizan las mismas subrutinas, no necesita incluir las subrutinas en todos los programas.
Nota: el programa mcp23008.lua debe cargarse en la memoria ESP8266 como los otros programas.
He incluido los programas de github.com aquí, así como un programa simple (test.lua) para mostrar que la biblioteca está funcionando.
Hay al menos 2 formas de incluir la biblioteca en su programa.
require ("mcp23008")
mcp23008.begin (0x0, gpio2, gpio0, i2c. SLOW)
o
mcp = require ("mcp23008")
mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)
Ambos de los anteriores hacen lo mismo, pero el segundo método le permite usar su propia variable en lugar del nombre del programa.
Paso 4: Programa de automóvil Kitt
He incluido el programa KittCar23008.lua y KittLib.lua que usa la biblioteca para mostrar las diferencias en cómo escribir programas de esta manera. Ambos programas hacen lo mismo.
El enchufe de 8 LED está disponible en Ebay como un kit y se conoce como un kit de bricolaje LED de luz de agua que fluye de 8 canales, 99p de China. Tienes que soldarlo tú mismo.
Nota: Si tiene un problema al intentar ejecutar el programa KittLib.lua, intente conectar el pin RESET MCP23008 a Gnd momentáneamente. Sé que esto dará un cortocircuito directo (ya que está conectado a 3.3V) y tienes que reiniciar todo lo demás. También funciona conectándose a Gnd a través de una resistencia de 10 ohmios, probablemente una mejor manera de hacerlo.
También descubrí que KittLib.lua se ejecutaría sin problemas después de ejecutar test.lua (¿No me preguntes por qué?)
He intentado varias formas de resolver el problema del programa KittLib.lua, pero hasta ahora no puedo encontrar ninguna razón lógica de por qué falla. ¿Alguien tiene alguna idea?
No he escrito todos estos programas yo mismo, por lo que no puedo decir por qué hay un problema, aunque después de mirar la codificación, no parece haber nada obviamente mal.
Paso 5: LED de 7 segmentos
Al igual que con el programa KittCar.lua anterior, he incluido un programa independiente y dependiente de la biblioteca para controlar una pantalla LED de 7 segmentos.
Nuevamente, ambos programas hacen lo mismo, pero demuestran cómo usar un módulo de biblioteca escrito por usted mismo o por otra persona.
Paso 6: Conclusión
He intentado demostrar cómo usar módulos de código dentro del entorno Lua y aplicarlo a un IC específico al mismo tiempo.
Aunque he tenido un problema al hacer esto, creo que hay suficiente para mostrar cómo funcionan estos módulos, así como demostrar una aplicación de la vida real.
Recomendado:
¡Conversión del puerto USB de las placas basadas en SAMD21 en un puerto serie de hardware !: 3 pasos
¡Convertir el puerto USB de las placas basadas en SAMD21 en un puerto serie de hardware !: Hoy en día es estándar utilizar un puerto USB de placa Arduino (o cualquier otro compatible) como puerto serie emulado. Esto es muy útil para depurar, enviar y recibir datos de nuestros adorables tableros. Estaba trabajando en uChip cuando, revisando el datash
¿El puerto USB de NODEMcu no funciona? Cargue el código usando el módulo USB a TTL (FTDI) en solo 2 pasos: 3 pasos
¿El puerto USB de NODEMcu no funciona? Cargue el código usando el módulo USB a TTL (FTDI) en solo 2 pasos: Cansado de conectarse a muchos cables desde el módulo USB a TTL al NODEMcu, siga estas instrucciones para cargar el código en solo 2 pasos. NODEMcu no funciona, entonces no se asuste. Es solo el chip del controlador USB o el conector USB
DIY MusiLED, LED sincronizados con música con una aplicación de Windows y Linux con un clic (32 bits y 64 bits). Fácil de recrear, fácil de usar, fácil de portar: 3 pasos
DIY MusiLED, LED sincronizados con música con una aplicación de Windows y Linux con un solo clic (32 bits y 64 bits). Fácil de recrear, fácil de usar, fácil de portar: este proyecto lo ayudará a conectar 18 LED (6 rojos + 6 azules + 6 amarillos) a su placa Arduino y analizar las señales en tiempo real de la tarjeta de sonido de su computadora y transmitirlas a los LED para iluminarlos según los efectos de ritmo (Snare, High Hat, Kick)
Compartir WiFi con puerto Ethernet en una Raspberry Pi: 7 pasos (con imágenes)
Comparta WiFi con puerto Ethernet en una Raspberry Pi: ¿Tiene una impresora láser o un escáner antiguo que todavía funciona muy bien pero no es compatible con wifi? O tal vez desee conectar un disco duro externo como dispositivo de respaldo en su red y se haya quedado sin puertos Ethernet en el enrutador de su hogar. Esta instr
NODEMCU LUA ESP8266 con IC de expansión de puerto de 16 bits MCP23017: 6 pasos (con imágenes)
NODEMCU LUA ESP8266 con MCP23017 IC de expansión de puerto de 16 bits: El MCP23017 es un IC relativamente fácil para hacer una placa, ya que tiene los puertos A y B a cada lado del chip y los pines están en orden secuencial. todos juntos también. Hay 2 pines en este IC que no se utilizan ya que