Arduino - Chave Liga/Desliga

A chave ON/OFF (liga/desliga), também chamada de chave alavanca (toggle switch), tem dois estados: ON (fechada) e OFF (aberta). O estado da chave ON/OFF alterna entre ON/OFF cada vez que ela é pressionada, e o estado é mantido mesmo depois de soltá-la. Neste tutorial, vamos aprender a usar a chave ON/OFF com o Arduino.

Chave ON/OFF com Arduino

Não confunda com os seguintes componentes:

Sobre a Chave ON/OFF

Uma chave ON/OFF é uma chave que muda de estado (de ON para OFF, ou de OFF para ON) quando é pressionada e depois mantém esse estado mesmo quando solta. Para mudar o estado, precisamos pressioná-la de novo.

Pinagem

A chave ON/OFF tem basicamente dois tipos: chave de dois pinos e chave de três pinos

Neste tutorial, vamos usar a chave de dois pinos. Nesse tipo, NÃO precisamos diferenciar os dois pinos.

Pinagem da chave ON/OFF

Como Funciona

Há duas formas de usar a chave ON/OFF. Abaixo está a tabela de ligação da chave ON/OFF e o estado lido no Arduino nas duas formas:

pino 1 pino 2 Estado do Pino de Entrada do Arduino
1 GND Pino de entrada do Arduino (com pull-up) HIGH ⇒ OFF, LOW ⇒ ON
2 VCC Pino de entrada do Arduino (com pull-down) HIGH ⇒ ON, LOW ⇒ OFF

Precisamos escolher apenas uma das duas formas acima. O restante do tutorial vai usar a primeira forma.

Diagrama de Ligação

Diagrama de ligação da chave ON/OFF com Arduino

This image is created using Fritzing. Click to enlarge image

Para deixar a ligação estável e firme, recomendamos usar um Ferro de Solda para soldar os fios aos pinos da chave ON/OFF e depois usar Tubo Termorretrátil para deixar tudo seguro.

Código Arduino - Chave ON/OFF

Assim como um botão, uma chave ON/OFF também precisa de debounce (veja mais em Por que o botão e a chave ON/OFF precisam de debounce?). O debounce deixa o código complicado. Felizmente, a biblioteca ezButton tem suporte à função de debounce. A biblioteca também usa o resistor de pull-up interno. Isso torna a programação fácil para nós.

※ Nota:

Há dois casos de uso muito comuns:

  • O primeiro: se o estado da chave for ON, faça algo. Se o estado da entrada for OFF, faça o contrário.
  • O segundo: se o estado da chave mudar de ON para OFF (ou de OFF para ON), faça algo.
/* * Este código de Arduino foi desenvolvido por pt.newbiely.com * Este código de Arduino é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino/arduino-switch */ #include <ezButton.h> ezButton toggleSwitch(7); // create ezButton object that attach to pin 7; void setup() { Serial.begin(9600); toggleSwitch.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { toggleSwitch.loop(); // MUST call the loop() function first if (toggleSwitch.isPressed()) Serial.println("The switch: OFF -> ON"); if (toggleSwitch.isReleased()) Serial.println("The switch: ON -> OFF"); int state = toggleSwitch.getState(); if (state == HIGH) Serial.println("The switch: OFF"); else Serial.println("The switch: ON"); }

Passos Rápidos

  • Faça a ligação como no diagrama de ligação acima
  • Conecte o Arduino ao PC com o cabo USB
  • Abra o Arduino IDE
  • Instale a biblioteca ezButton. Veja Como Fazer
  • Selecione a placa e a porta corretas
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino
  • Pressione a chave para ON.
  • Veja o resultado no Serial Monitor.
  • Depois, pressione a chave para OFF.
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
The switch: OFF The switch: OFF The switch: OFF The switch: OFF -> ON The switch: ON The switch: ON The switch: ON The switch: ON The switch: ON The switch: ON The switch: ON -> OFF The switch: OFF The switch: OFF The switch: OFF
Ln 11, Col 1
Arduino Uno on COM15
2

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!