void setup() { // put your setup code here, to run once: Serial.begin(9600); //Inicializamos el serial } void loop() { char ch = ' '; //Variable donde se guarda el char que se recibe por serial. bool TodoNumeros = true; //Para saber si todos los caracteres recividos son numeros String Mensaje ="" ; //Variable para guardar el texto pasado por serial. //Lee serial if (Serial.available()) //Si el serial esta libre... { while( ch != '\n') //leemos hasta el retorno de carro o enter. { ch = Serial.read(); //Lee un caracter. TodoNumeros = EsNumero(ch); if (TodoNumeros == true) Mensaje = Mensaje + ch ; //lo anadimos a la variable mensaje. delay(25); //Esperamos 25ms para evitar colixiones de datos. }//Fin del while }//Fin del if Serial.print ("Leido: "); Serial.println (Mensaje); delay(2000); }//Fin Loop //Esta funcion analiza si el CHAR pasado es numero o un caracter bool EsNumero(char n){ bool Numero = false;// Valor por defecto false para que entregue un error switch ( n ){ case '0': Numero = true; break; case '1': Numero = true; break; case '2': Numero = true; break; case '3': Numero = true; break; case '4': Numero = true; break; case '5': Numero = true; break; case '6': Numero = true; break; case '7': Numero = true; break; case '8': Numero = true; break; case '9': Numero = true; break; default: Numero = false;// Si no es numero da error break; } /* Serial.print (""); Serial.print ("Caracter: "); Serial.println (n); Serial.print ("Bolean: "); Serial.println (Numero);*/ delay(200); return Numero; }// Fin EsNumero
miércoles, 26 de diciembre de 2018
Arduino El dato pasado por serial es Numero o Caracter
Estoy con una parte del programa, en el cual solo podemos recibir números y para distinguir entre numero o letra he realizado este pequeño programa.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario