Velocidade de piscar via serial
Parte da seção Entradas do Journey de Arduino da Coddy. Lição 17 de 22.
Digite 250 e a placa recebe três caracteres, '2', '5' e '0', depois a quebra de linha. Serial.parseInt() lê os dígitos e os transforma no número 250, parando no primeiro caractere que não for um dígito.
Há um porém: quando nenhum dígito chega, parseInt() espera até 1 segundo por um, depois retorna 0. Isso acontece depois de cada número que você digita: a quebra de linha que encerrou o número ainda está aguardando, então Serial.available() fica acima de 0 novamente, e parseInt() não encontra nenhum dígito, espera por um segundo e retorna 0.
Então trate um 0 como "nada útil" e mantenha o valor antigo:
if (Serial.available() > 0) {
int n = Serial.parseInt();
if (n > 0) {
wait = n;
}
}Você verá o LED pausar por um segundo depois de cada número que digitar: é o parseInt() aguardando.
Desafio
MédioO LED no pino 13 pisca, ficando aceso por wait ms e apagado por wait ms, com wait começando em 500. Deixe o Monitor Serial alterar a velocidade:
- quando houver caracteres aguardando, leia um número com
Serial.parseInt() - se for maior que 0, armazene-o em
wait
Pressione Run, envie 100 pelo Monitor Serial e, em seguida, pressione Check.
Experimente você mesmo
const int ledPin = 13;
int wait = 500;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// quando houver caracteres aguardando, leia um número para wait (se for maior que 0)
digitalWrite(ledPin, HIGH);
delay(wait);
digitalWrite(ledPin, LOW);
delay(wait);
}
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