Tabla de contenido:
- Paso 1: lo que necesitará
- Paso 2: la solución
- Paso 3: Detrás de escena …
- Paso 4: Posibilidades de lectura / mejora adicionales
Video: Recuperar el módulo Bluetooth HC-06 mal configurado: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
Por puro maximalismo, configuré mi módulo HC-06 Bluetooth (esclavo) a una velocidad en baudios de 1, 382, 400 baudios con el comando AT + BAUDC. Desde que Arduino se conectó a él, no pudo usar el módulo con la biblioteca SoftwareSerial. Intenté restaurar la velocidad en baudios con la serie de hardware de Arduino (pines 0 y 1) sin suerte.
También intenté buscar en Google el tema sin encontrar una solución aceptable. Tal vez usar el puerto serie integrado de una computadora podría haber sido una solución (con cambio de nivel lógico de 12V a 3V3), pero mi computadora no tiene este puerto obsoleto, así que tuve que encontrar otra solución.
Paso 1: lo que necesitará
- Placa Arudino / Genuino con el MCU Atmel ATMEGA328P-PU predeterminado (@ 16MHz).
- Un módulo Bluetooth HC-06 escuchando a 1, 382, 400 baudios
- IDE básico de arduino de
Paso 2: la solución
Tenga en cuenta que este Instructable y la solución está hecha para un escenario de 1, 382, 400 baudios (AT + BAUDC). La solución no funcionará para otras velocidades en baudios. Para manejar otros casos, consulte los pasos a partir del Paso 3.
La solución es realmente sencilla.
- Conecte el pin VCC del HC-06 al pin 5V de Arduino.
- Conecte el pin GND del HC-06 al pin GND de Arduino.
- Conecte el pin RXD del HC-06 al pin 2 de Arduino.
- Deje el pin TXD del HC-06 desconectado (o conéctelo al pin 8).
- Sube el boceto de hc06reset.ino.
- El programa establecerá el HC-06 en modo 115, 200 baudios (AT + BAUD8).
- Utilice su módulo HC-06 recuperado como antes.
Paso 3: Detrás de escena …
La biblioteca SoftwareSerial que viene con Arduino IDE es capaz de transmitir como máximo 115, 200 bits / segundo, por lo que no es lo suficientemente rápido para comunicarse en la velocidad deseada de 1, 382, 400 baudios. Dado que una placa Arduino predeterminada se ejecuta en 16MHz, la tasa de bits máxima teórica sin comprimir es de 16, 000, 000 bits / seg. ¡Estamos bien hasta ahora!
Según mi comprensión de SoftwareSerial.cpp, la comunicación seial se realiza configurando un pin de salida Alto (= 1) o Bajo (= 0) con respecto a un retraso (que proviene de la velocidad en baudios) entre los cambios.
- El pin de salida es alto por defecto (significa que no hay datos), luego
- se transmite un bit de inicio (que baja el pin), luego
- 8 bits de datos transmitidos de LSB a MSB, (+ 5V cuando el bit 1 y 0 en caso contrario) luego
- se transmite un bit de parada (que tira del pin hacia arriba)
De esta forma se transmite 1 byte utilizando 10 bits.
El mensaje que tenemos que enviar es AT + BAUD8 (sin / n, / r al final). Este comando configura el HC-06 de nuevo a 115, 200 baudios que pueden ser manejados por bibliotecas regulares.
Para enviar bits con una velocidad de 1, 382, 400 bits / seg, para cada bit tenemos 1/1, 382, 400 segundos de tiempo (eso es aproximadamente 723.38 ns) para cada bit. Arduino funciona a 16, 000, 000 Mhz, por lo que cada ciclo dura 1/16, 000, 000 segundos, es decir, 62,5 ns por ciclo.
Usando el código ensamblador AVR podemos usar el comando OUT para establecer el pin de salida alto o bajo y NOP para esperar exactamente un ciclo de CPU. Ambos comandos consumen exactamente 1 ciclo de CPU. De esta manera, el tiempo de bits de 723,38 ns puede cubrirse con 11 a 12 instrucciones arduino por bit transmitido. Una cosa a considerar: el comando OUT establece un byte completo a la vez, por lo que tenemos que seleccionar un PORTx donde esto no sea un problema. El uso de ATMEGA328P-PU, por ejemplo, PORTD (pines arduino 0-7) es perfecto para esta condición. Después de configurar el bit, solo debe transcurrir el tiempo adecuado, que se realiza entre 10 y 11 NOP y eso es todo.
Puede encontrar detalles de cálculo en el archivo de Excel a continuación. Este archivo generó las instrucciones de montaje necesarias para el programa. Solo se tuvieron que hacer algunos reemplazos después de pegar el código generado.
Paso 4: Posibilidades de lectura / mejora adicionales
- Quizás se pueda crear una biblioteca SoftwareSerial más rápida utilizando la técnica descrita en el paso anterior.
- FedericoK2 creó una gran herramienta que genera el código de recuperación HC-06 para cada tasa de bits posible. Accede al sitio aquí: https://tools.krum.com.ar/save_your_hc-06/ Gracias FedericoK2
Recomendado:
Cómo recuperar tu música de tu Ipod ¡GRATIS !: 7 pasos
Cómo recuperar tu música de tu Ipod … ¡GRATIS !: Básicamente, los Ipods no te permiten importar la música, solo te permiten borrarla. Por ejemplo, si dónde poner tus canciones favoritas en su Ipod, pero luego, accidentalmente, elimínelos todos de su computadora. Así que te quedaste ahí con mal humor
Soldar un golpeador de guitarra configurado con SSS: 3 pasos
Soldar un golpeador de guitarra configurado con SSS: En el instructivo, pasaré por el proceso de cableado de su propio golpeador de guitarra SSS. En primer lugar, si está haciendo este proyecto, debe intentar tener una comprensión decente de las partes que forman parte del proceso. El formato SSS es básicamente tres
Máquina de fax: Explicación de las piezas y lo que vale la pena recuperar: 9 pasos
Máquina de fax: Explicación de las piezas y lo que vale la pena recuperar: Recientemente encontré esta máquina de fax. Lo limpié y lo conecté con el cable de alimentación y la línea telefónica, y estaba funcionando correctamente, pero no necesito una máquina de fax y pensé que sería bueno desarmarlo y hacer otro instructivo al respecto. I
Módulo RF 433MHZ - Haga el receptor y el transmisor desde el módulo RF de 433 MHZ sin ningún microcontrolador: 5 pasos
Módulo RF 433MHZ | Haga el receptor y el transmisor desde el módulo RF de 433 MHZ sin ningún microcontrolador: ¿Le gustaría enviar datos inalámbricos? fácilmente y sin necesidad de microcontrolador? ¡Aquí vamos, en este instructivo le mostraré mi transmisor y receptor de rf básico listo para ser usado! En este instructivo usted puede enviar y recibir datos usando muy ver
Tutorial del módulo E32-433T LoRa - Tablero de bricolaje para módulo E32: 6 pasos
Tutorial del módulo E32-433T LoRa | Tablero de bricolaje para módulo E32: ¡Hola, chicos! Aquí Akarsh de CETech. Este proyecto mío es más una curva de aprendizaje para comprender el funcionamiento del módulo E32 LoRa de eByte, que es un módulo transceptor de 1 vatio de alta potencia. Una vez que entendemos el funcionamiento, tengo el diseño