Arduino Nano ESP32 - Chave DIP

Na eletrônica, as chaves DIP (Dual In-line Package) são muito usadas em tarefas de configuração, como endereços de dispositivos, configurações de comunicação e códigos de segurança. Este tutorial vai explorar como usar a chave DIP com o Arduino Nano ESP32. Especificamente, vamos ver:

Arduino Nano ESP32 com Chave DIP

Hardware Necessário

1×Arduino Nano ESP32
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 Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano ESP32

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 ferramentas essenciais para configurar dispositivos, permitindo que os usuários ajustem parâmetros como endereço do dispositivo, configurações de comunicação, códigos de segurança, modos de operação e preferências do sistema em vários setores e aplicações.

Uma chave DIP é composta por várias chaves deslizantes pequenas agrupadas, e cada chave é chamada de "posição". Essas chaves existem em tipos diferentes, de acordo com o número de posições que oferecem. Por exemplo, há chaves DIP de 2 posições, 4 posições, 5 posições, 6 posições, 8 posições e 10 posições.

Cada posição de uma chave DIP representa um bit configurável de um número. Alternando essas posições entre ON e OFF, os usuários podem definir o valor numérico que desejam configurar.

Pinagem

Pinagem da Chave DIP
image source: diyables.io

Uma chave DIP é formada por duas fileiras de pinos, em que o número de pinos de cada fileira corresponde ao número de posições da chave. Por exemplo, uma chave DIP de 4 posições tem um total de 8 pinos, divididos igualmente em 4 pinos de cada lado. Dentro da chave DIP, cada par de pinos opostos representa uma chave deslizante. É importante notar que não é preciso diferenciar os pinos dos dois lados, pois eles podem ser usados de forma intercambiável.

Como Funciona

Nas chaves DIP, quando uma chave está na posição ON, isso indica que a chave está acionada ou fechada. Isso significa que existe uma conexão elétrica estabelecida, permitindo o fluxo de corrente pela chave.

Por outro lado, quando uma chave está na posição OFF, isso indica que a chave está desacionada ou aberta. Nesse estado, a conexão elétrica é interrompida, impedindo o fluxo de corrente pela chave.

Para esclarecer:

  • Posição ON: Estabelece um circuito fechado, permitindo a passagem de corrente.
  • Posição OFF: Cria um circuito aberto, bloqueando o fluxo de corrente.

Quando um lado de uma chave é conectado ao terra (GND) e o outro lado a um pino do Arduino Nano ESP32, e o pino do Arduino Nano ESP32 é configurado como entrada digital com pull-up, a tabela abaixo mostra a relação entre a posição da chave e os valores lidos pelo Arduino Nano ESP32:

Posição da chave DIP Representação binária Estado do circuito Estado do pino do Arduino Nano ESP32
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 o Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Código Arduino Nano ESP32 - Chave DIP

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

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

Código Arduino Nano ESP32 - Lendo o estado ON/OFF da chave DIP

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the Arduino Nano ESP32 pins connected to the dip switch const int SWITCH_PINS[] = { D4, D5, D6, D7 }; 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 Arduino Nano ESP32, siga estes passos:

  • Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente do Arduino Nano ESP32 na Arduino IDE.
  • Ligue os componentes conforme o diagrama fornecido.
  • Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
  • Faça a ligação conforme o diagrama de ligação acima
  • Conecte o Arduino Nano ESP32 ao PC por um cabo USB
  • Abra a Arduino IDE
  • Selecione a placa e a porta corretas
  • Clique no botão Upload da Arduino IDE para fazer o upload do código para o Arduino Nano ESP32
  • 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
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' 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
Arduino Nano ESP32 on COM15
2

Código Arduino Nano ESP32 - Codificando os estados da chave DIP em um número

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-dip-switch */ #define POSITION_NUM 4 #define ON LOW #define OFF HIGH // define the Arduino Nano ESP32 pins connected to the dip switch const int SWITCH_PINS[] = { D4, D5, D6, D7 }; 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 Arduino Nano ESP32, siga estes passos:

  • Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente do Arduino Nano ESP32 na Arduino IDE.
  • Ligue os componentes conforme o diagrama fornecido.
  • Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
  • Faça o upload do código acima para o Arduino Nano ESP32
  • Coloque cada posição da chave DIP em ON, uma por uma.
  • Veja o resultado no Serial Monitor, que se parece com o abaixo.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' 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
Arduino Nano ESP32 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!