Buenas. Estoy intentando comunicar dos Arduino mediante sus pines TX y RX.
El Arduino Leonardo hace de transmisor y el Arduino UNO de receptor por lo que conecto el pin TX de Leonardo con RX de UNO.
SI abro el monitor serial del TX veo que transmite lo que quiero. Sin embargo parece que el RX no recibe lo que envia el TX.
Para empezar he escrito dos codigos muy sencillos, os los dejo aqui (codigo TX y RX respectivamente):
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println('a');
delay(500);
Serial.println('b');
delay(500);
}
int option;
void setup() {
Serial.begin(9600);
pinMode(4, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
option = Serial.read();
if (option == 'a') {
digitalWrite(4, LOW);
}
if (option == 'b') {
digitalWrite(4, HIGH);
}
}
}
¿Veis algun error?
Saludos y muchas gracias por la ayuda!!!
El error es que el segundo recibe char y no int option;
asi que modifica
int option;
por
char option
Habia supuesto que al comparar un int con un caracter se compararia su codigo ASCII.
De todas formas cambiando la variable a tipo char sigue sin funcionar.
Saludos y gracias!!!
Si. Probé eso antes. Me aseguré que el TX envía y el RX recibe por separado pero no logro que se comuniquen entre ellos.
Saludos y gracias por ayudarme!!!
Que conexiones estas usando en uno y otro
Se que parece obvia la pregunta pero?
En Leonardo los pines 0 y 1 son Serial1 no Serial.
Serial es el monitor Serie.
Conecto el pin 1 de TX (Leonardo) con el pin 0 de RX (UNO)
Saludos y gracias!!
EDITO: y por lo tanto en el codigo de TX debo usar las funciones Serial.1...
Y ahora sí funciona.
Muchisimas gracias por la ayuda!!!!!
Si pero usa Serial1 para el transmisor no Serial. Serial te envia a tu monitor Serie en el Leonardo no a los pines 0 y 1.
void setup() {
Serial1.begin(9600);
Serial.begin(9600);
}
void loop() {
Serial1.println('a'); // esto envia por TX
Serial.println('a'); // esto lo ves por monitor serie
delay(500);
Serial1.println('b');
Serial.println('b');
delay(500);
}
Muchas gracias de verdad!! Todo solucionado y algo más aprendido.
Gracias!! Saludos!!