Arduino Nano - Chave DIP

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

Arduino Nano com Chave DIP

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
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

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, oferecendo aos usuários a capacidade de definir parâmetros como endereços de dispositivos, configurações 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 é composta por várias pequenas chaves deslizantes agrupadas, e cada chave deslizante é chamada de "posição". As chaves DIP estão disponíveis em vários tipos, determinados pelo número de posições que possuem. 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.

Cada posição de uma chave DIP representa um bit configurável de um número. Alternando as posições entre ON e OFF, podemos definir o valor numérico desejado.

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 em cada fileira corresponde às posições de chave disponíveis. Por exemplo, uma chave DIP de 4 posições inclui um total de 8 pinos, divididos igualmente com 4 pinos de cada lado. Na montagem da chave DIP, cada par de pinos opostos forma uma chave deslizante. É importante observar que diferenciar os pinos dos dois lados é desnecessário, pois eles podem ser trocados.

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 uma conexão elétrica é estabelecida, permitindo a passagem de corrente pela chave.

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

Resumindo:

  • Posição ON: Circuito fechado, permitindo a passagem de corrente.
  • Posição OFF: Circuito aberto, bloqueando a passagem de corrente.

Quando conectamos um lado de uma chave ao GND e o outro lado a um pino do Arduino Nano, e depois configuramos o pino do Arduino Nano como entrada digital com pull-up, a tabela abaixo mostra a relação entre a posição da chave e os valores lidos no Arduino Nano:

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

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Código do Arduino Nano - 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 do Arduino Nano - Lendo o estado ON/OFF da chave DIP

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

  • Faça a ligação conforme o diagrama de ligação acima
  • Conecte o Arduino Nano 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 carregar o código no Arduino Nano
  • 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
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' 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 on COM15
2

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

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

  • Carregue o código acima no Arduino Nano
  • Coloque cada posição da chave DIP em ON, uma por uma.
  • Veja o resultado no Serial Monitor, parecido com o abaixo.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' 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 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!