ESP8266 - Chave DIP

As chaves DIP (Dual In-line Package) são amplamente usadas em eletrônica para várias tarefas de configuração, como endereços de dispositivos, configurações de comunicação e códigos de segurança. Este tutorial vai explorar o uso da chave DIP com o ESP8266. Especificamente, vamos abordar:

ESP8266 NodeMCU com Chave DIP

Hardware Necessário

1×ESP8266 NodeMCU ESP-12F
1×Alternatively, ESP8266 D1 Mini NodeMCU ESP-12F
1×Alternatively, ESP8266 NodeMCU ESP-12E (Uno-form)
1×Micro USB Cable
1×Alternatively, ESP8266 NodeMCU ESP-12F (SMD-form)
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×DIP Chave
1×Protoboard
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para ESP8266

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre a Chave DIP

As chaves DIP são usadas principalmente para configurar dispositivos, permitindo que os usuários ajustem configurações como endereço do dispositivo, parâmetros de comunicação, códigos de segurança, modos de operação e preferências do sistema em diversos setores e aplicações.

Uma chave DIP é formada por várias pequenas chaves deslizantes agrupadas. Cada uma dessas chaves deslizantes é chamada de "posição". As chaves DIP estão disponíveis em diferentes tipos, de acordo com o número de posições que oferecem. Por exemplo, existem chaves DIP de 2 posições, 4 posições, 5 posições, 6 posições, 8 posições e 10 posições.

Uma chave DIP pode representar um número configurável. Cada posição da chave corresponde a um bit do número. Ao alternar as posições entre ON e OFF, podemos definir o número desejado.

Pinagem

Pinagem da Chave DIP
image source: diyables.io

Uma chave DIP é composta por duas fileiras de pinos, com o número de pinos em cada fileira correspondendo às posições disponíveis da chave. Por exemplo, uma chave DIP de 4 posições inclui um total de 8 pinos, distribuídos igualmente com 4 pinos em cada lado. Dentro da estrutura da chave DIP, cada par de pinos opostos forma uma chave deslizante. Vale mencionar que não é necessário diferenciar os pinos dos dois lados, pois eles podem ser usados de forma intercambiável.

Como Funciona

IEm chaves DIP, quando uma chave está na posição ON, isso significa que a chave está fechada. Isso indica que a conexão elétrica está estabelecida, permitindo que a corrente passe pela chave.

Por outro lado, quando uma chave está na posição OFF, isso significa que a chave está aberta. Nesse estado, a conexão elétrica é interrompida e a corrente não consegue fluir pela chave.

Então, resumindo:

  • Posição ON: Circuito fechado, permitindo o fluxo de corrente.
  • Posição OFF: Circuito aberto, impedindo o fluxo de corrente.

Quando conectamos um lado de uma chave ao GND e o outro a um pino do ESP8266, e depois configuramos o pino do ESP8266 como entrada digital com pull-up, a tabela abaixo ilustra a relação entre as posições da chave e os valores lidos pelo ESP8266:

Posição da chave DIP Representação binária Estado do circuito Estado do pino do ESP8266
ON 1 FECHADO LOW
OFF 0 ABERTO HIGH

Nas próximas partes, vamos usar uma chave DIP de 4 posições como exemplo. Você pode adaptar facilmente para chaves DIP de 2 posições, chaves DIP de 3 posições, chaves DIP de 5 posições, chaves DIP de 6 posições, chaves DIP de 8 posições e chaves DIP de 10 posições...

Diagrama de Ligação

Diagrama de Ligação da chave DIP com ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Para mais informações, veja Pinagem do ESP8266 e como alimentar o ESP8266 e outros componentes.

Código ESP8266 - Chave DIP

Vamos aprender por meio de dois trechos de código:

  • Ler o estado ON/OFF de cada posição da chave DIP.
  • Codificar as posições em um número.

Código ESP8266 - Lendo o estado ON/OFF da chave DIP

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the ESO8266 pins connected to the dip switch const int SWITCH_PINS[] = { D7, D6, D5, D2 }; void setup() { // initialize serial communication Serial.begin(9600); // set the dip switch pins as inputs with pull-up resistors enabled for (int i = 0; i < POSITION_NUM; i++) pinMode(SWITCH_PINS[i], INPUT_PULLUP); } void loop() { // Read the state of each switch position for (int i = 0; i < POSITION_NUM; i++) { Serial.print("position "); Serial.print(i + 1); Serial.print(": "); int state = digitalRead(SWITCH_PINS[i]); if (state == ON) Serial.println("ON "); else Serial.println("OFF "); } Serial.println(); // add a delay to prevent rapid readings delay(500); }

Passos Rápidos

Para começar com o ESP8266 no Arduino IDE, siga estes passos:

  • Confira o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Faça a ligação dos componentes conforme mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Faça a ligação conforme o diagrama de ligação acima
  • Conecte o ESP8266 ao PC via cabo USB
  • Abra o Arduino IDE
  • Selecione a placa e a porta corretas
  • Clique no botão Upload no Arduino IDE para fazer o upload do código para o ESP8266
  • Coloque cada posição da chave DIP em ON, uma por uma.
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
position 1: OFF position 2: OFF position 3: OFF position 4: OFF position 1: ON position 2: OFF position 3: OFF position 4: OFF position 1: ON position 2: ON position 3: OFF position 4: OFF position 1: ON position 2: ON position 3: ON position 4: OFF position 1: ON position 2: ON position 3: ON position 4: ON
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

Código ESP8266 - Codificando os estados da chave DIP em um número

/* * Este código de ESP8266 NodeMCU foi desenvolvido por pt.newbiely.com * Este código de ESP8266 NodeMCU é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/esp8266/esp8266-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the ESO8266 pins connected to the dip switch const int SWITCH_PINS[] = { D7, D6, D5, D2 }; void setup() { // Initialize serial communication Serial.begin(9600); // Set the DIP switch pins as inputs with pull-up resistors enabled for (int i = 0; i < POSITION_NUM; i++) pinMode(SWITCH_PINS[i], INPUT_PULLUP); } void loop() { int encoded_state = 0; for (int i = 0; i < POSITION_NUM; i++) { int state = digitalRead(SWITCH_PINS[i]); if (state == ON) encoded_state |= 1 << (POSITION_NUM - i - 1); } Serial.print("encoded state: "); Serial.println(encoded_state); // add a delay to prevent rapid readings delay(500); }

Passos Rápidos

Para começar com o ESP8266 no Arduino IDE, siga estes passos:

  • Confira o tutorial como configurar o ambiente para o ESP8266 no Arduino IDE se esta for a sua primeira vez usando o ESP8266.
  • Faça a ligação dos componentes conforme mostrado no diagrama.
  • Conecte a placa ESP8266 ao seu computador usando um cabo USB.
  • Abra o Arduino IDE no seu computador.
  • Escolha a placa ESP8266 correta, como (por exemplo, NodeMCU 1.0 (ESP-12E Module)), e a respectiva porta COM.
  • Faça o upload do código acima para o ESP8266
  • Coloque cada posição da chave DIP em ON, uma por uma.
  • Veja o resultado no Serial Monitor, ele será parecido com o abaixo.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')
New Line
9600 baud
encoded state: 0 encoded state: 1 encoded state: 2 encoded state: 3 encoded state: 4 encoded state: 5 encoded state: 6 encoded state: 7 encoded state: 8 encoded state: 9 encoded state: 10 encoded state: 11 encoded state: 12 encoded state: 13 encoded state: 14 encoded state: 15
Ln 11, Col 1
Nodemcu 1.0 (ESP-12E Module) on COM15
2

Observe que o valor depende das posições de cada chave deslizante. A tabela abaixo mostra o mapeamento entre a posição ON/OFF e o valor inteiro para uma chave DIP de 4 posições:

Posição-1Posição-2Posição-3Posição-4Valor BinárioValor Decimal
OFF OFF OFF OFF 0000 0
OFF OFF OFF ON 0001 1
OFF OFF ON OFF 0010 2
OFF OFF ON ON 0011 3
OFF ON OFF OFF 0100 4
OFF ON OFF ON 0101 5
OFF ON ON OFF 0110 6
OFF ON ON ON 0111 7
ON OFF OFF OFF 1000 8
ON OFF OFF ON 1001 9
ON OFF ON OFF 1010 10
ON OFF ON ON 1011 11
ON ON OFF OFF 1100 12
ON ON OFF ON 1101 13
ON ON ON OFF 1110 14
ON ON ON ON 1111 15

Vídeo

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!