Índice:
- Etapa 1: Fiação do MCP23008
- Etapa 2: Construindo uma placa
- Etapa 3: usando um módulo de biblioteca
- Etapa 4: Programa Kitt Car
- Etapa 5: LED de 7 segmentos
- Etapa 6: Conclusão
Vídeo: NODEMCU LUA ESP8266 com IC expansor de porta de 8 bits MCP23008: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
O MCP23008 é um expansor de E / S de 8 bits com interface serial e opera entre 1,8 e 5,5 volts, portanto, é ideal para ESP8266, Arduino, Raspberry Pi, Chips PIC e muito mais.
Se você viu meu outro Instructable no MCP23017, deve estar se perguntando por que também estou fazendo um para o MCP23008, já que é realmente uma versão menor da mesma coisa.
Os motivos são que seus registros são diferentes tanto no nome quanto no número e eu gostaria de mostrar como usar um módulo de biblioteca pronto. Nem todo mundo é adepto do uso do NodeMCU lua, então gostaria de mostrar esse aspecto da programação e também como usar o MCP23008.
A biblioteca e os programas estão disponíveis em github.com.
A folha de dados do MCP23008 está disponível na Microchip.
Etapa 1: Fiação do MCP23008
O MCP23008 IC tem um layout simples e construir uma placa é realmente fácil para ele. Você também pode configurar o circuito em uma placa de pão.
Conexões de pinos na minha placa
- Pino 18 (VDD) a 3v3
- Pino 9 (VSS) para GND
- Pino 7 (NC) para GND (não necessário)
- Pino 1 (SCL) para ESP GPIO2
- Pino 2 (SDA) para ESP GPIO0
- Pino 5 (A0) para GND
- Pino 4 (A1) para GND
- Pino 3 (A2) para GND
- Pino 6 (RESET) para 3v3
Conecte os pinos para serem lidos no Gnd na Porta A (pinos 10 - 17)
Nota: aqui todos os pinos de endereço são conectados ao Gnd para usar o MCP23008 no endereço 0x20 no barramento de endereço I2C.
Se você estivesse usando o endereço 0x21, A0 seria conectado a 3,3 V, com A1 e A2 conectados a Gnd.
Da mesma forma, se estiver usando o endereço 0x22, A1 deve ser conectado a 3,3 V com A0 e A2 conectado a Gnd.
etc …
Etapa 2: Construindo uma placa
Usei uma placa de tira Vero de 25 mm x 64 mm (9 linhas x 25 orifícios) para construir minha prancha. É um pouco apertado, mas como a maioria dos pinos de que você precisa está em ambos os lados do IC, é adequado para o que precisa fazer.
Usei 8 pinos e 8 soquetes de cabeçalho para a porta A para poder conectar meus vários módulos, bem como outra fiação para diferentes projetos. Eu adicionei pinos Gnd e 3,3V extras, pois acho que sempre há uma falta deles ao conectar os módulos.
Etapa 3: usando um módulo de biblioteca
Módulos de biblioteca normalmente contêm uma seleção de sub-rotinas, funções e variáveis que podem ser acessadas por outro programa. O programa em si não é executado, mas suas funções podem ser acessadas pelo programa de chamada. Isso significa que você pode ter suas sub-rotinas dentro da biblioteca e chamá-las sempre que precisar, criando um pequeno programa de chamada. Torna-se mais valioso se você tiver muitos programas diferentes usando as mesmas sub-rotinas, você não precisa incluir as sub-rotinas em todos os programas.
Observação: o programa mcp23008.lua precisa ser carregado na memória do ESP8266 como os outros programas.
Incluí os programas github.com aqui, bem como um programa simples (test.lua) para mostrar que a biblioteca está funcionando.
Existem pelo menos 2 maneiras de incluir a biblioteca em seu programa.
requer ("mcp23008")
mcp23008.begin (0x0, gpio2, gpio0, i2c. SLOW)
ou
mcp = require ("mcp23008")
mcp.begin (0x0, gpio2, gpio0, i2c. SLOW)
Ambos os itens acima fazem a mesma coisa, mas o segundo método permite que você use sua própria variável em vez do nome do programa.
Etapa 4: Programa Kitt Car
Incluí o programa KittCar23008.lua e KittLib.lua, que usa a biblioteca para mostrar as diferenças em como escrever programas dessa maneira. Ambos os programas fazem a mesma coisa.
O plug-in de 8 LED está disponível no Ebay como um kit e é conhecido como Kit DIY de luz de água corrente de 8 canais, 99p da China. Você tem que soldá-lo sozinho.
Nota: Se você tiver problemas ao tentar executar o programa KittLib.lua, tente conectar o pino MCP23008 RESET a Gnd momentaneamente. Eu sei que isso vai dar um curto-circuito direto (já que está conectado a 3,3V) e você tem que reiniciar todo o resto. Também funciona conectando-se ao Gnd por meio de um resistor de 10 ohms, provavelmente a melhor maneira de fazer isso.
Também descobri que KittLib.lua executaria sem problemas após executar test.lua (Não me pergunte por quê?)
Tentei várias maneiras de resolver o problema do programa KittLib.lua, mas até agora não consigo encontrar nenhum motivo lógico para ele travar. Alguém tem alguma ideia?
Eu não escrevi todos esses programas, então não posso dizer por que há um problema, embora depois de olhar para a codificação, não pareça haver nada obviamente errado.
Etapa 5: LED de 7 segmentos
Tal como acontece com o programa KittCar.lua acima, incluí um programa autônomo e um programa dependente de biblioteca para acionar um display LED de 7 segmentos.
Novamente, os dois programas fazem a mesma coisa, mas demonstram como usar um módulo de biblioteca escrito por você ou por outra pessoa.
Etapa 6: Conclusão
Tentei demonstrar como usar módulos de código dentro do ambiente Lua e aplicá-lo a um IC específico ao mesmo tempo.
Embora eu tenha tido problemas ao fazer isso, acho que há o suficiente para mostrar como esses módulos funcionam, bem como demonstrar um aplicativo da vida real.
Recomendado:
Raspberry Pi - PCA9536 Tutorial em Python do expansor de entrada / saída: 4 etapas
Raspberry Pi - Expansor de entrada / saída PCA9536 Python Tutorial: O PCA9536 é um dispositivo CMOS de 8 pinos que fornece 4 bits de expansão de entrada / saída paralela de uso geral (GPIO) para aplicações de barramento I2C / SMBus. Consiste em um registro de configuração de 4 bits para servir ao propósito de seleção de entrada ou saída, 4 bits
Raspberry Pi - Tutorial de Java do expansor de entrada / saída PCA9536: 4 etapas
Raspberry Pi - Expansor de entrada / saída PCA9536 Tutorial Java: O PCA9536 é um dispositivo CMOS de 8 pinos que fornece 4 bits de expansão de entrada / saída paralela de uso geral (GPIO) para aplicativos de barramento I2C / SMBus. Consiste em um registro de configuração de 4 bits para servir ao propósito de seleção de entrada ou saída, 4 bits
PCF8591 (Expansor de E / S analógica i2c) Uso rápido e fácil: 9 etapas
PCF8591 (Expansor de E / S analógica i2c) Rápido Fácil Uso: Biblioteca para usar i2c pcf8591 IC com arduino e esp8266. Este IC pode controlar (até 4) a entrada analógica e / ou 1 saída analógica como medir a tensão, ler o valor do termistor ou atenuar um led. Pode ler o valor analógico e escrever o valor analógico com apenas 2 fios (perfec
NODEMCU LUA ESP8266 com IC expansor de porta de 16 bits MCP23017: 6 etapas (com imagens)
NODEMCU LUA ESP8266 Com MCP23017 16 Bit Port Expander IC: O MCP23017 é um IC relativamente fácil de fazer uma placa, pois tem as portas A e B em ambos os lados do chip e os pinos estão em ordem sequencial. Da mesma forma, o barramento de endereço I2C é todos juntos também. Existem 2 pinos neste IC que não são usados porque
Expansor de alcance WiFi no repetidor sem fio Linksys WRE54G: 6 etapas
Expansor de alcance WiFi no repetidor sem fio Linksys WRE54G: Definição do problema Às vezes, o alcance de operação existente não é suficiente ou, se houver obstáculos na rota entre o dispositivo e o roteador, a distância de operação pode ser reduzida drasticamente. Neste caso, você precisa aumentar a sensibilidade