Utilizando uma chave seletora com Arduino

Utilizando uma chave seletora com Arduino Deixe um comentário

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:

Esquemático chave seletora com Arduino

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);
  }
}

PRojeto chave seletora com Arduino

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. 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *