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.
Desafio
MédioPisque 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 emblinksLeftse for maior que 0 - se
blinksLeftfor 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
}
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
3Entrada Serial
Leia um caractere serialComandos de palavrasVelocidade de piscar via serialPiscar ao receber um comandoPratique por conta própria: Playground de Arduino