Hola
Tengo dos arduino Leonardo que estoy tratando de comunicar por UART. He comprobado que la placa emisora sí es capaz de enviar datos (he hecho la prueba conectándola a un STM32L4), pero la placa receptora es incapaz de recibirlos.
He utilizado la librería SoftwareSerial y los cables de los pines RX y TX están cruzados entre ambos dispositivos. Los GND de ambos Arduinos están conectados, y cada Arduino está conectado a un ordenador distinto.
- Código del Arduino emisor:
#include "SoftwareSerial.h"
#define rxPin 2
#define txPin 3
SoftwareSerial miSerial(rxPin, txPin);
void setup() {
Serial.begin(9600);
miSerial.begin(9600);
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
}
void loop () {
miSerial.write("a");
delay(100);
}
- Código del Arduino receptor:
#include "SoftwareSerial.h"
#define rxPin 2
#define txPin 3
SoftwareSerial miSerial(rxPin, txPin);
void setup() {
Serial.begin(9600);
miSerial.begin(9600);
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
}
void loop() {
char sMsg = miSerial.read();
int iMsg = miSerial.read();
Serial.println(sMsg);
Serial.println(iMsg);
delay(100);
}
Lo que se imprime por pantalla es:
�
-1
Y lo que me desconcierta más es que el led "TX" del Arduino receptor siempre está encendido, pero ninguno en el emisor.
Agradecería cualquier tipo de ayuda. Gracias por adelantado.