Índice:
- Etapa 1: O que você precisa
- Etapa 2: a solução
- Etapa 3: nos bastidores …
- Etapa 4: Leitura Adicional / Possibilidades de Melhoria
Vídeo: Recuperar Módulo de Bluetooth HC-06 configurado incorretamente: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
Por puro maximalismo, configurei meu módulo HC-06 Bluetooth (escravo) para uma taxa de bauds de 1, 382, 400 bauds com o comando AT + BAUDC. Desde que o Arduino conectado a ele não foi capaz de usar o módulo com a biblioteca SoftwareSerial. Tentei restaurar a taxa de transmissão com o serial do hardware do Arduino (pinos 0 e 1) sem sorte.
Também tentei pesquisar o tópico no Google sem encontrar uma solução aceitável. Talvez usar uma porta serial embutida no computador pudesse ter sido uma solução (com mudança de nível lógico de 12V para 3V3), mas meu computador não tem essa porta obsoleta, então eu tive que pensar em outra solução.
Etapa 1: O que você precisa
- Placa Arudino / Genuino com o Atmel ATMEGA328P-PU MCU padrão (@ 16 MHz).
- Um módulo Bluetooth HC-06 ouvindo em 1, 382, 400 baud
- IDE arduino básico de
Etapa 2: a solução
Observe que este Instructable e a solução são feitos para 1, 382, 400 baud (AT + BAUDC) cenário. A solução não funcionará para nenhuma outra taxa de transmissão. Para lidar com outros casos, consulte as etapas a partir da Etapa 3.
A solução é muito simples.
- Conecte o pino VCC do HC-06 ao pino 5V do Arduino.
- Conecte o pino GND do HC-06 ao pino GND do Arduino.
- Conecte o pino RXD do HC-06 ao pino 2 do Arduino.
- Deixe o pino TXD do HC-06 desconectado (ou conecte ao pino 8).
- Faça upload do esboço hc06reset.ino.
- O programa definirá o HC-06 no modo 115, 200 baud (AT + BAUD8).
- Use seu módulo HC-06 recuperado como antes.
Etapa 3: nos bastidores …
A biblioteca SoftwareSerial que vem com o Arduino IDE é capaz de transmitir no máximo 115, 200 bits / segundo, portanto, não é rápida o suficiente para se comunicar na taxa de baud desejada de 1, 382, 400. Dado que uma placa Arduino padrão funciona em 16 MHz, a taxa de bits máxima não compactada teórica é de 16.000.000 bits / s. Estamos bem até agora!
Com base no meu entendimento de SoftwareSerial.cpp, a comunicação seial é feita configurando um pino de saída Alto (= 1) ou Baixo (= 0) em relação a um atraso (que vem da taxa de transmissão) entre as alterações.
- O pino de saída é alto por padrão (significa sem dados), então
- um bit de início é transmitido (o que puxa o pino para baixo), então
- 8 bits de dados transmitidos de LSB para MSB, (+ 5V quando o bit 1 e 0 de outra forma), então
- um bit de parada é transmitido (o que puxa o pino para cima)
Desta forma, 1 byte é transmitido usando 10 bits.
A mensagem que devemos enviar é AT + BAUD8 (sem / n, / r no final). Este comando define o HC-06 de volta para a taxa de 115, 200 baud que pode ser controlada por bibliotecas regulares.
Para enviar bits com 1, 382, 400 bits / s de velocidade, para cada bit temos 1/1, 382, 400 segundos de tempo (ou seja, cerca de 723,38 ns) para cada bit. O Arduino é executado em 16.000.000 Mhz, portanto, cada ciclo dura 1/16.000.000 segundos - ou seja, 62,5 ns por ciclo.
Usando o código assembly do AVR, podemos usar o comando OUT para definir o pino de saída alto ou baixo e o NOP para esperar exatamente um ciclo da CPU. Ambos os comandos consomem exatamente 1 ciclo de CPU. Dessa forma, o tempo de bit de 723,38 ns pode ser coberto por 11 a 12 instruções Arduino por bit transmitido. Uma coisa a se considerar: o comando OUT define um byte inteiro de uma vez, então temos que selecionar um PORTx onde isso não seja um problema. Usar ATMEGA328P-PU por exemplo PORTD (pinos 0-7 do arduino) é perfeito para essa condição. Depois de definir o bit, apenas o tempo adequado tem que passar, o que é feito por 10 a 11 NOPs e é isso.
Você pode encontrar os detalhes do cálculo no arquivo Excel abaixo. Este arquivo gerou as instruções de montagem necessárias para o programa. Apenas algumas substituições tiveram que ser feitas depois de colar o código gerado.
Etapa 4: Leitura Adicional / Possibilidades de Melhoria
- Talvez uma biblioteca SoftwareSerial mais rápida possa ser feita usando a técnica descrita na Etapa anterior.
- FedericoK2 criou uma ótima ferramenta que gera o código de recuperação HC-06 para cada taxa de bits possível. Acesse o site aqui: https://tools.krum.com.ar/save_your_hc-06/ Obrigado FedericoK2
Recomendado:
Soldando um Pickguard de guitarra configurado com SSS: 3 etapas
Soldando um pickguard de guitarra configurado com SSS: No instrutível, irei passar pelo processo de cabeamento de seu próprio pickguard de guitarra SSS. Em primeiro lugar, se você está fazendo este projeto, deve tentar ter um entendimento decente das partes que entram no processo. O formato SSS é basicamente três
Máquina de fax: explicando as peças e o que vale a pena recuperar: 9 etapas
Máquina de fax: explicando as peças e o que vale a pena recuperar: Recentemente, encontrei esta máquina de fax. Limpei e conectei com cabo de força e linha telefônica e estava funcionando bem, mas não preciso de aparelho de fax e achei que seria bom desmontá-lo e fazer outro instrutível sobre o assunto. EU
Como recuperar seus dados perdidos gratuitamente: 4 etapas
Como recuperar seus dados perdidos de graça: Todos nós sabemos que perder dados é uma das piores coisas do mundo e quase todos nós já passamos por esse problema. E aqui está a solução que você estava esperando, encontrei este software que me permite recuperar meus arquivos perdidos com muita facilidade
DVD Player: explicando as peças e o que vale a pena recuperar: 9 etapas
DVD Player: explicando as peças e o que vale a pena resgatar: Hoje daremos uma olhada neste antigo DVD player. Não estava funcionando direito, então decidi abri-lo e ver o que havia dentro. O problema era que ele estava sempre abrindo e fechando e não queria ler o disco. Vou explicar o básico
Módulo RF 433MHZ - Faça receptor e transmissor de módulo RF 433MHZ sem qualquer microcontrolador: 5 etapas
Módulo RF 433MHZ | Faça receptor e transmissor de módulo RF 433MHZ sem qualquer microcontrolador: gostaria de enviar dados sem fio? facilmente e sem a necessidade de microcontrolador? Vamos lá, neste instrutível vou mostrar meu transmissor e receptor rf básico pronto para ser usado! Neste instrutível você pode enviar e receber dados usando muito ver