Menu
CoddyTech

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.

challenge icon

Desafio

Médio

O 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);
}
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