Menu
CoddyTech

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.

challenge icon

Desafio

Fácil

Os 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
}
quiz iconTeste seus conhecimentos

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