Breve explicación: los datos enviados a través de la serie Bluetooth no llegan correctamente al Arduino.
Ayer conecté un módulo bluetooth JY-MCU a mi Arduino UNO R3 para probarlo. Conecté los pines TXD y RXD a los pines Arduino 10 y 11 respectivamente y utilicé SoftSerial para comunicarme. Primero probé algunos comandos AT que encontré en línea. Después de AT
devolvió OK
, ejecuté el código encontrado Aquí y obtuve esta salida:
Starting config
OK
OKlinvorV1.6
OK57600
Done!
Por lo tanto, el nombre y el pin cambiaron, pero yo (supuestamente) cambié la velocidad en baudios con éxito. Sin embargo, cualquier intento posterior de ejecutar cualquier comando AT falló (sin salida), incluso cuando configuré la nueva velocidad de transmisión (57600) en el módem de software. Luego intenté sincronizarlo con mi PC y utilicé el siguiente código para probar:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11);
void setup() {
Serial.begin(9600);
mySerial.begin(57600);
delay(1000);
}
void waitForResponse() {
if (mySerial.available()) {
while (mySerial.available()) {
int a = mySerial.read();
Serial.println(a);
}
Serial.write("\n");
}
}
void loop() {
waitForResponse();
delay(2000);
}
En resumen, espero que el módulo reciba algo y luego imprima el valor de cada byte. Lo extraño es que los datos que envío (usando cutecom en la PC) simplemente no son correctos; por ejemplo, el envío de la letra A (en minúsculas o mayúsculas) genera el número 161. Sin embargo, el envío de dos letras A genera los números 161 y 176 A pesar de que son la misma letra. Tengo muy poca experiencia con la comunicación en serie, pero parece que la velocidad en baudios no es correcta. Sin embargo, si este es el caso, no sé cómo volver a cambiar la velocidad en baudios a 9600 ya que ya no puedo enviar comandos AT al módulo.
Cualquier ayuda sobre cómo hacer que el módulo funcione correctamente o al menos una explicación sobre lo que está sucediendo aquí es más que apreciada.