Em muitos projetos precisamos alterar parâmetros de funcionamento durante o uso. Quando esses parâmetros são simples e não precisam ser ajustados com frequência, uma chave seletora é uma ótima opção de interface, já que possui baixo custo e é de fácil implementação. Neste post veremos como utilizar esse dispositivo em projetos baseados no Arduino.
Como funciona uma chave seletora?
Uma chave seletora, ou DIP Switch, é um conjunto de interruptores projetados para uso em placas de circuito impresso para mudança do comportamento dos componentes eletrônicos. Funcionam como qualquer chave, no seu estado desligado interrompem o circuito e quando ligados permitem a passagem de corrente elétrica. São uma alternativa mais prática aos jumpers de configuração e foram amplamente utilizados na década de 80 e 90 para armazenamento de configurações em eletrônicos e para guardar códigos de segurança em sistemas de abertura de portões por radiofrequência.
Circuito: Chave seletora com Arduino
Para montagem do circuito de demonstração de funcionamento da chave seletora utilizaremos os seguintes materiais:
A montagem é extremamente simples, conforme mostrado na imagem acima: os terminais inferiores são conectados ao GND do Arduino, os terminais superiores aos pinos digitais D2 a D5. O terminal positivo do LED ao pino D13 e o negativo ao GND através de um resistor de 220Ω.
Código: Chave seletora com Arduino
No código do Arduino, definiremos os pinos onde as chaves do DIP Switch estão sendo conectados como INPUT_PULLUP, dessa forma, esses pinos estarão em estado HIGH quando as chaves estiverem desligadas e LOW quando ligadas. Para entender melhor o uso de entradas pull-up no Arduino confira o post “Entendendo o pull-up e pull-down no Arduino“.
Neste código exemplo, usamos os estados das chaves para definir o intervalo para que o LED pisque – quando apenas a chave 1 estiver ligada o intervalo será de 1 segundo, se a chave 1 e 2 estiverem ligadas o intervalo será de 3 segundos e assim por diante.
/* #------------------------# | DIP Switch | | | | Ítalo Coelho | #------------------------# */ #define switch1 2 #define switch2 3 #define switch3 4 #define switch4 5 #define LEDpin 13 void setup() { pinMode(LEDpin, OUTPUT); //Pinos onde as chaves estão conectadas em estado HIGH por padrão pinMode(switch1, INPUT_PULLUP); pinMode(switch2, INPUT_PULLUP); pinMode(switch3, INPUT_PULLUP); pinMode(switch4, INPUT_PULLUP); } void loop() { //Define o intervalo de acordo com a posição das chaves int interval = 1*(!digitalRead(switch1)) + 2*(!digitalRead(switch2)) + 3*(!digitalRead(switch3)) + 4*(!digitalRead(switch4)); static bool LEDstate = false; static uint64_t then = millis(); if(millis() - then > interval*1000) { then = millis(); LEDstate = !LEDstate; //Troca o estado do LED digitalWrite(LEDpin, LEDstate); } }
Gostou de aprender como usar uma chave seletora com Arduino? Não esqueça de deixar um comentário abaixo nos contando o que achou.