Arduino UNO R4 - Chave DIP

As chaves DIP (Dual In-line Package) são muito usadas em eletrônica para configurar dispositivos, por exemplo para definir endereços ou ligar e desligar recursos. Neste guia, vamos aprender a usar uma chave DIP com o Arduino UNO R4. Vamos ver:

Arduino UNO R4 com Chave DIP

Sobre a Chave DIP

As chaves DIP são usadas principalmente para configurar dispositivos, permitindo que o usuário ajuste opções como endereço do dispositivo, comunicação, códigos de segurança, modo de operação e preferências do sistema para diferentes usos e setores.

Uma chave DIP é formada por várias pequenas chaves deslizantes combinadas em uma única peça. Cada chave deslizante é chamada de "posição". Existem diferentes tipos de chaves DIP, cada um com um número específico de posições, como 2, 4, 5, 6, 8 ou 10.

Uma chave DIP pode ser ajustada para representar números diferentes. Cada posição da chave corresponde a um bit do número. Ao colocar essas posições em ON ou OFF, escolhemos o número de que precisamos.

Pinagem

Pinagem da Chave DIP
image source: diyables.io

Uma chave DIP tem duas fileiras de pinos. O número de pinos em cada fileira corresponde ao número de posições da chave. Por exemplo, em uma chave DIP de 4 posições, há 8 pinos no total, com 4 pinos de cada lado. Cada par de pinos um em frente ao outro forma uma chave deslizante. É importante notar que não importa de que lado o pino está, porque os pinos são intercambiáveis.

Como Funciona

Quando uma chave DIP está em ON, ela está fechada. Isso permite que a eletricidade passe pela chave.

Quando a chave está em OFF, ela está aberta. Isso significa que a conexão elétrica é interrompida e nenhuma corrente pode passar pela chave.

Para deixar claro:

  • Posição ON: o circuito está fechado, a corrente pode passar.
  • Posição OFF: o circuito está aberto, a corrente não pode passar.

Quando você conecta um lado da chave ao GND e o outro lado ao pino do Arduino UNO R4, e configura o pino do Arduino UNO R4 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 UNO R4.

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

Nas próximas seções, vamos usar uma chave DIP de 4 posições como exemplo. Você também pode adaptar o código para chaves DIP de 2 posições, 3 posições, 5 posições, 6 posições, 8 posições e 10 posições.

Diagrama de Ligação

Diagrama de Ligação da chave DIP com Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

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

Código Arduino UNO R4 - Chave DIP

Vamos explorar dois exemplos de código:

  • Verificar se cada chave está em ON ou OFF.
  • Transformar essas posições da chave em um número.

Código Arduino UNO R4 - Lendo o estado ON/OFF da chave DIP

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

Siga estas instruções passo a passo:

  • Se esta é a sua primeira vez usando o Arduino Uno R4 WiFi/Minima, consulte o tutorial sobre como configurar o ambiente para o Arduino Uno R4 WiFi/Minima na Arduino IDE.
  • Faça a ligação dos componentes de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Uno R4 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Selecione a placa Arduino Uno R4 apropriada (por exemplo, Arduino Uno R4 WiFi) e a porta COM.
  • Siga o diagrama de ligação fornecido.
  • Conecte o Arduino UNO R4 ao seu computador usando um cabo USB.
  • Abra o software Arduino IDE.
  • Escolha a placa e a porta corretas.
  • Clique no botão Upload na Arduino IDE para enviar o código ao Arduino UNO R4.
  • Ligue cada chave da chave DIP, uma de cada vez.
  • Verifique os resultados no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' 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 Uno R4 WiFi on COM15
2

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

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

Siga estas instruções passo a passo:

  • Se esta é a sua primeira vez usando o Arduino Uno R4 WiFi/Minima, consulte o tutorial sobre como configurar o ambiente para o Arduino Uno R4 WiFi/Minima na Arduino IDE.
  • Faça a ligação dos componentes de acordo com o diagrama fornecido.
  • Conecte a placa Arduino Uno R4 ao seu computador usando um cabo USB.
  • Abra a Arduino IDE no seu computador.
  • Selecione a placa Arduino Uno R4 apropriada (por exemplo, Arduino Uno R4 WiFi) e a porta COM.
  • Faça o upload do código para o Arduino UNO R4.
  • Ligue cada chave da chave DIP, uma de cada vez.
  • Verifique o Serial Monitor para ver os resultados, que aparecem assim.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' 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 Uno R4 WiFi on COM15
2

Observe que o valor muda de acordo com a posição de cada chave deslizante. A tabela abaixo mostra como as posições ON/OFF correspondem aos valores inteiros em 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!