NODEMCU LUA ESP8266 com IC expansor de porta de 16 bits MCP23017: 6 etapas (com imagens)
NODEMCU LUA ESP8266 com IC expansor de porta de 16 bits MCP23017: 6 etapas (com imagens)
Anonim
NODEMCU LUA ESP8266 com IC expansor de porta de 16 bits MCP23017
NODEMCU LUA ESP8266 com IC expansor de porta de 16 bits MCP23017

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

Diagrama de circuito
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

Fazendo a placa principal
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

Placas Adicionais
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

Programação
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?

Qual pino?
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

Conclusão
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í!