Serial.parseInt()
Serial.parseInt()
Receber um número pela serial byte a byte dá trabalho — você teria que juntar cada dígito na mão. O Serial.parseInt() faz esse serviço pra você: ele varre o que chegou, ignora o que não for dígito e devolve o primeiro número inteiro que encontrar.
Sintaxe
Serial.parseInt();
Parâmetros
Nenhum (na forma mais comum).
Retorno
Retorna o número inteiro lido (long). Se nada válido chegar dentro do tempo limite, retorna 0.
Exemplo
void setup() {
Serial.begin(9600);
Serial.println("Digite um numero:");
}
void loop() {
if (Serial.available() > 0) {
int n = Serial.parseInt();
if (n != 0) {
Serial.print("Dobro: ");
Serial.println(n * 2);
}
}
}
Notas e cuidados
- Ele é bloqueante: espera até chegar um número ou até estourar o timeout (1 segundo por padrão, ajustável com
Serial.setTimeout()). - Como o retorno
0também aparece quando dá timeout, fica difícil distinguir um zero de verdade de "não recebi nada". - No Monitor Serial, ative a opção de enviar "Nova linha" pra ele saber onde o número termina.