Buen día, soy un novato en módulos de Arduino y estoy tratando de probar un módulo ble hm-10 que conseguí recién. Conecté el módulo a un Android (Redmi Note 8) con la app "Serial Bluetooth Terminal". La idea es simple: lo que escriba en la terminal del móvil se imprime en la terminal del pc y viceversa.
El problema aquí es que puedo enviar datos sin problemas hacia el pc, arduino y los muestra en terminal pero, a la hora de escribir caracteres en el monitor serial del ide y enviarlos no los recibo en el celular. Ni siquiera recibo el mensaje inicial de "Conexion establecida". He leído que el módulo podría ser chino y hay que flashear un firmware original, pero no estoy muy seguro de que eso tenga algo que ver con la conexión.
(Ya revisé conexiones, probé cambiar el baud rate, cambiar println por write, ajustar delays, pero nada aún)
Espera!!!
Dices que recibe en un sentido pero no en el otro, entonces porque hablas de flashear algo? No tiene sentido.
Quita el delay(100);
Tambien haz similares los print, uno dice println o sea imprime y baja una linea y el otro no. Esto no modifica lo que ocurre pero hará lecturas similares.
Mira este tutorial a ver si te sirve pero luce idéntico al tuyo
Otro ejemplo envía y recibe
Pareciera que tu ejemplo fue extraído de este tutorial. Ya me dirás.
Primero que nada, muchas gracias por tomarte el tiempo amigo. Lo que pasa es que ya probé de todo . Lo de flashear lo mencioné porque de verdad ya me quedé sin opciones. También probé quitando el delay de 100ms y hacer iguales los print con diferentes tipos de impresión pero aún así no funciona. Sí estoy tratando de hacer la práctica del segundo video que adjuntaste, pero también he visto el de arriba (y varios más). Aún así, no me funciona tal como a ellos, mi problema prevalece.
Puedes enviar texto hacia la pc, entiendo que desde el celular via BT al Arduino y de esta a la PC.
El otro camino es el que no funciona. Que tal si el problema está en el programa que usas en el celular y no en el Arduino o el BT?
Usas el mismo programa Android del segundo video?
He intentado usar otras apps de terminal, pero ni siquiera son capaces de ubicar el dispositivo. Sólo la app del video lo conecta debidamente con la terminal y en efecto, esa es la que uso
mySerial.print(myChar);
// por
mySerial.write(myChar);
Dejo el link
En otro link llegaron a la conclusión que el modulo estaba roto en su linea TX y por eso no recibes nada en el celular.
Algo con lo que debes tener cuidado es que el módulo funciona con 3.3V y no es tolerante a 5V, asi que la linea TX del Arduino que llega a RX debe pasar por un divisor de tensión formado por una R de 1k en serie entre TX del arduino y RX del HM-10 y otra de 2K entre el RX del HM-10 y GND.
Revisa esta página que creo es la mejor que he visto hasta el momento
Creo que esto será de gran ayuda para determinar si el módulo HM-10 tiene algún problema
Reading the characteristics of the HM-10 using using BLE Scanner
Open the BLE Scanner app and find the HM-10. Tap the CONNECT button to get the app to connect to the HM-10 and start reading its properties.
Muchas gracias por la información, intenté todo eso pero sigue sin responder (olvidé mencionar que la conexión del divisor de voltaje ya la tenía hecha desde el principio). Traté con eso y la app ya la había utilizado, supongo que ya debería resignarme y relacionar el error con la circuitería del módulo en sí jaja
Estoy pensando que tu módulo tiene un problema cuando Transmite. Al igual que uno de los hilos que te puse para que consultes donde al OP le pasó lo mismo.
No te vuelvas loco, las cosas funcionan pero algunas vienen falladas.
Si tienes una buena lupa revisa las conexiones desde la salida TX hasta el integrado principal. Debería haber algo en el camino con una soldadura fria, o tal vez algo tan simple como el conector.