Hola buenos dias, esoty haciendo unas pruebas con un WROOM que usa el esp32 y enviando datos por terminal en android, estoy enviando CHARS, la verdad todo bien, pero quiero llevar la cuenta de la recepcion para que avance de 1 en 1 pero la cuenta me avanza de 3 en 3, siemre de 3 en 3 y nose porque, al final del codigo hay un delay que puse para probar y la verdad en valores entre 50ms y 500ms se comporta igual.
void loop() {
if (BT.available()) {
int incoming = BT.read(); // Lee lo que recibimos
INPUTS [contador_array] = incoming; // envia el dato del incoming a un array
contador_array = contador_array+1; //suma 1 al array para el nuevo dato
Serial.print("Recibido: ");
Serial.println(incoming); // envio los datos para poder visualizar
BT.println(contador_array); // envio los datos para poder visualizar
}
ese es el código, y no he avanzado mas ya que eso de la suma de 3 en 3 no me parece fiable.
Pasa que es mas fácil enviar un char utf8 desde android por BT, como son pocas variables es mejor recibir ese char como entero ya q me es mas comodo trabajar con enteros.
No, no es "más fácil" enviar un char, es lo único que puedes enviar, cualquier otro tipo de dato hay que convertirlo en varios bytes para poder enviarlos y recomponerlos al tipo adecuado en el receptor.
Seguire tu consejo y me pasare a BYTE para ocupar menos espacio, ya descubrí porque avance 3 cuentas, esto es porque en cada envio me llegan desde el terminal dos datos extras que son el Retorno de carro y avance de linea, por lo que el problema es en el terminal no en el programa del receptor, osea mas que problema es configuración probablemente.
Una opción es cambiar la configuración de la terminal para que no envíe CR y/o LF.
Otra opción (me inclino más por ésta) es ignorar los caracteres CR y LF
if (incoming != 0x0D && incoming != 0x0A) {
// hacer el procesamiento del caracter entrante
}
Gracias por tu recomendación, efectivamente me salte esos caracteres de otra forma, ya que lo probé antes de responder, pero cualquier solución que no los lea o los salte debería servir, probare esta solución especifica mas tarde, aunque me queda la duda de porque usaste && en lugar de ||