Hola, he llegado aquí para conseguir orientación acerca de recibir y enviar datos con un módulo HC-05.
Mi proyecto consiste en mandar y recibir un dato entre 0 y 1024 de un arduino a otro con ayuda de un HC-05, este dato será enviado constantemente. Pero no sé si lo estoy haciendo de la forma correcto, porque mi planteamiento es el siguiente:
Código del Emisor:
if(AnularVal>IndiceVal&&AnularVal>PulgarVal&&AnularVal>MedioVal){
Funcion = 4;//FUNCION DE GIRO A LA DERECHA
PWM = ((AnularVal*255)/(AnularMax-AnularMin))+(765);//--intervalo--
byte PWMTm = lowByte(PWM);
byte PWMTM = highByte(PWM); //Reversa:
delay(10);
mySerial.write(PWMTm);
mySerial.write(PWMTM);
}
Explico: Aquí supuse que no podría mandar un dato con una extención mayor a un byte (Gracias a ChatGPT, que espero no equivocarme), el problema es en el receptor, adjunto el código:
Codigo del receptor:
if(Serial1.available()==2){
//Se leen los dos bytes recibidos
byte PWMTm=Serial1.read();//- significativo
byte PWMTM=Serial1.read();//+ significativo
//Calcular el número recibido
int PWMT = (PWMTM << 8)|PWMTm;//Se recorre el bit 8 posiciones y enmascara
Serial.print(PWMT);
}
if(Serial1.available()>2){
Serial1.flush();
}
Suponía que vaciaba ahora sí que la memoria donde se acumulan los datos del HC-05 para poder otra vez reconocer los 2 bytes recibidos, cabe aclarar que es un ciclo constante, y no deja de repetirse, pero al final, no vacía el buffer del HC-05, y los datos siguen acumulandose, así que sólo lee el número recibido una vez
Espero puedan ayudarme, soy nuevo en esto y me confunden las funciones del tipo Serial, gracias:)