Dois botões ao mesmo tempo
Parte da seção Entradas do Journey de Arduino da Coddy. Lição 7 de 22.
Cada botão tem seu próprio pino e seu próprio digitalRead(). A placa lê um após o outro, mas tão rápido que, para você, é como se fosse ao mesmo tempo.
Máquinas de fábrica geralmente têm dois botões afastados, e só funcionam enquanto ambos estão pressionados. As duas mãos ficam nos botões, então nenhuma pode ficar perto da lâmina. Essa regra é &&, de Combinando condições:
bool left = digitalRead(2) == LOW;
bool right = digitalRead(3) == LOW;
if (left && right) {
// ambos os botões estão pressionados
}Ambos os pinos precisam de INPUT_PULLUP. Esqueça um e esse pino ficará flutuando, o que aqui é lido como LOW, como se o botão correspondente estivesse sempre pressionado.
Desafio
FácilOs botões estão nos pinos 2 e 3, ambos conectados ao GND, e o LED está no pino 13. Acenda o LED somente enquanto os dois botões estiverem pressionados:
- configure os pinos 2 e 3 como
INPUT_PULLUP - leia cada botão em uma variável
bool - acenda o LED quando os dois estiverem pressionados; caso contrário, apague-o
Pressione Run, segure um botão, depois os dois e, em seguida, pressione Check.
Experimente você mesmo
const int leftPin = 2;
const int rightPin = 3;
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
// configure os pinos dos dois botões como INPUT_PULLUP
}
void loop() {
// leia os dois botões e acenda o LED somente enquanto ambos estiverem pressionados
}
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Entradas
Pratique por conta própria: Playground de Arduino