Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
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 está todo junto também.
Existem 2 pinos neste IC que não são usados, pois é comparável ao MCP23S17, que usa uma interface SPI onde esses pinos são usados.
Uma folha de dados para este IC está disponível na Microchip.
Etapa 1: Diagrama de Circuito
O diagrama do circuito mostra como conectar o IC a um ESP8266
NOTA: O IC funciona entre 2,7 e 5,5 Volts.
Conexões de pinos na minha placa
- Pino 9 (VDD) a 3v3
- Pino 18 (RESET) para 3v3
- Pino 17 (A2) para GND
- Pino 16 (A1) para GND
- Pino 15 (A0) para GND
- Pino 14 (NC) para GND (não necessário)
- Pino 13 (SDA) para ESP GPIO0
- Pino 12 (SCL) para ESP GPIO2
- Pino 11 (NC) para GND (não necessário)
- Pino 10 (VSS) para GND
Etapa 2: Fazendo a placa principal
A prancha é simples de fazer conforme explicado acima, tudo tem um layout simples.
Minha placa principal demorou pouco para ser feita e é mostrada acima.
É claro que você pode construir este circuito em uma placa de ensaio.
Etapa 3: placas adicionais
Eu criei algumas placas extras de 8 bits que podem ser facilmente conectadas em placas de projeto diferentes.
A primeira placa é conectada a um display LED de 7 segmentos e é conectada ao pino 1 ao segmento a, pino 2 a b etc. Há um pequeno resistor (cerca de 55 ohms) para proteger os LEDs.
O segundo é um banco de 8 switches, todos conectados entre si e podem ser conectados a 3,3 V ou aterramento. Não incluí resistores pull, pois o MCP23017 os tem embutidos.
O terceiro é de um kit Ebay, é composto por 8 LEDs e uma matriz de resistores com conexão para Gnd. Eu também tenho a mesma placa, mas instalei os LEDs ao contrário para que se conecte a 3,3 V ou 5 V em vez de Gnd. No Ebay, eles são conhecidos como um Kit DIY LED de luz de água corrente de 8 canais, 99p da China.
Etapa 4: Programação
Eu escrevi os programas para trabalhar com um ESP01, pois ele tem apenas 2 pinos de E / S. Claro que pode ser usado com qualquer uma das placas ESP8266. Os pinos SDA e SCL podem ser alocados a qualquer pino entre 1 e 12.
Se estiver usando uma versão mais antiga do LUA (por exemplo, NodeMCU 0.9.6 build 20150704 equipado com Lua 5.1.4), o I2C já está instalado. Caso contrário, você precisa garantir que o módulo I2C esteja incluído em sua construção.
Incluí 3 programas Lua simples para mostrar como o IC pode ser usado.
7Segment.lua aciona um display de LED e sequências entre os números de 1 a 0.
KittCar.lua dirige a placa de 8 LEDs para simular o famoso carro dos anos 80.
Reader.lua lê da Porta B.
Etapa 5: qual pino?
Um programa extra que criei enquanto tentava.
Ele usa a porta B como entrada e a porta A como saída. A foto mostra interruptores DIP, mas você pode conectar um dos pinos da porta B ao Gnd e o display LED mostrará qual pino está conectado.
NOTA: Funciona apenas com 1 pino de cada vez!
Etapa 6: Conclusão
Existem, é claro, outros expansores de E / S disponíveis. Alguns são de 8 bits, 16 bits e até 24 bits! Todos funcionam de maneira semelhante ao MCP23017, mas este IC é muito barato por suas capacidades e pode ser adquirido por cerca de 10p cada na China.
Não usei todos os recursos deste IC, pois também há interrupções disponíveis que podem ser utilizadas. Ler a folha de dados informa tudo sobre os diferentes registros e maneiras como o CI pode ser usado.
É possível ter 8 desses dispositivos no mesmo barramento I2C, fornecendo 128 portas de E / S, todas controladas por 2 linhas. Pense nas possibilidades aí!