Hola a toda la comunidad, me a surgido una duda cacharreando con mi arduino y es que datos tengo que poner en el terminal serie si quiero mandar un numero como por ejemplo este: "435101" y que me encienda el led. Ya se que se puede hacer de manera mas sencilla pero la gracia es saber como puedo mandar ese numero y que el arduino lo acepte.
int pin13 = 13;
int serialvalue = 0;
void setup() {
Serial.begin(9600); //Arrancamos comunicacion serial
}
void loop() {
while (Serial.available()) {
serialvalue = Serial.read();
if (serialvalue == 435101){
pinMode(pin13, OUTPUT);
delay(100);
digitalWrite(pin13, HIGH); //Pin 13 Alto
}
if (serialvalue == 435102){ //Pin 13 Bajo
digitalWrite(pin13, LOW);
}
}
}
Como veis un codigo bien sencillo.
He probado a mandar el numero tal cual y no funciona.
Hola de nuevo, al final lo he conseguido con la funcion Serial.parseInt() y funciona de lujo aqui dejo el codigo por si alguien le es de utilidad algun dia.
//
int pin13 = 13; //Defino la variables
long serialvalue = 0;
void setup() {
Serial.begin(9600); // Arrancamos comunicacion serial
Serial.setTimeout(50); // Ajusto el timeout del puerto Serie (por defecto 1000 ms)
pinMode(pin13, OUTPUT); // Pongo el pin 13 como salida
}
void loop() {
while (Serial.available()) {
serialvalue = Serial.parseInt(); // Asigno "serialvalue" a Serial.parseInt
Serial.println(serialvalue); // Me imprime por el puerto serie la variable serialvalue
if (serialvalue == 435101){ // Condicion 1
digitalWrite(pin13, HIGH); //Encender led
}
if (serialvalue == 435102){ // Condicion 2
digitalWrite(pin13, LOW); //Apagar led
}
}
}
He probado tu código mil veces y he visto qye hay un error y es el siguiente, cada vez que mando el dato 435010 se me envía un cero y no entiendo el porque, quisiera saber si me explicas.
He probado tu código mil veces y he visto qye hay un error y es el siguiente, cada vez que mando el dato 435010 se me envía un cero y no entiendo el porque, quisiera saber si me explicas.
He probado tu código varias veces y he notado un error, siempre que envió el dato 435010, seguido me aparece un cero en el monitor serial, quisiera saber si me puedes explicar porque sucede esto.