Menu
CoddyTech

Piscar ao receber um comando

Parte da seção Entradas do Journey de Arduino da Coddy. Lição 18 de 22.

Digite 3 e o LED deverá piscar três vezes e, depois, parar. loop() já se repete, então deixe que ele faça a contagem: mantenha uma variável com o número de piscadas que ainda faltam. Cada vez que loop() for executada, se ainda houver piscadas, pisque uma vez e subtraia uma.

int blinksLeft = 0;

void loop() {
  // um número do monitor Serial define blinksLeft
  if (blinksLeft > 0) {
    // uma piscada
    blinksLeft = blinksLeft - 1;
  }
}

Quando blinksLeft chegar a 0, o if será falso e o LED ficará apagado até o próximo número.

A quebra de linha após o número ainda faz parseInt() retornar 0 um segundo depois. Ignore o 0 como antes, ou ele apagará as piscadas que ainda faltam.

challenge icon

Desafio

Médio

Pisque o LED no pino 13 tantas vezes quanto o número digitado no monitor Serial:

  • quando houver caracteres aguardando, leia um número com parseInt() e armazene-o em blinksLeft se for maior que 0
  • se blinksLeft for maior que 0, pisque uma vez (200 ms ligado, 200 ms desligado) e subtraia um

Pressione Run, envie 3 pelo monitor Serial e, em seguida, pressione Check.

Experimente você mesmo

const int ledPin = 13;

int blinksLeft = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // um número do monitor Serial define blinksLeft
  // enquanto blinksLeft for maior que 0, pisque uma vez e subtraia 1
}
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