Tengo dos Arduino UNO con los que no puedo hablar entre ellos. Hice las siguientes conexiones
A <---> B
0(RX) 1(TX)
1(TX) 0(RX)
GND GND
Tengo entonces, en mi código (corriendo en ambos tableros):
void setup()
{
Serial.begin(9600);
// ...
}
void loop()
{
if (Serial.available() >= 1) {
in_sample_value = Serial.read();
in_sample_available = true;
}
if (out_sample_available) {
Serial.write(out_sample_value);
out_sample_available = false;
}
}
in_sample_value se consume en un ISR (que también establece el indicador in_sample_available en false), out_sample_value se produce en otro ISR (que también establece el indicador out_sample_available en true). El problema es que ambos leds TX en ambas placas están continuamente encendidos, pero los leds RX están completamente apagados en ambas placas. Sé que los ISR se están ejecutando porque los probé. ¿Puedes ver lo que estoy haciendo mal?
Addendum
Para crear un caso de prueba mínimo, simplemente conecté los pines 0 y 1 en una de las dos placas y ejecuté lo siguiente:
void setup() {
Serial.begin(9600);
}
uint8_t count = 0;
void loop() {
Serial.write(count++);
Serial.read();
}
Como se dijo anteriormente, el led TX está encendido, el led RX está apagado.