HC06 правильная скорость передачи данных, но отсутствуют символы / нет AT-команд
У меня проблема со связью между моим последовательным монитором и моим модулем BT HC06. Я могу отправлять символы ascii со своего телефона с подключением BT на свой локальный последовательный монитор. Когда я отправляю символы с моего локального последовательного монитора на свой модуль BT, я получаю что-то вроде этого: AT -> U или 3 -> 3
У меня возникла эта проблема, так как я изменил скорость передачи данных с 9600,0,0 на 9600,0,1
Код:
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // Прием | Передача
void setup()
{
pinMode(9, OUTPUT); // этот контакт потянет контакт 34 HC-05 (ключевой контакт) на ВЫСОКИЙ уровень, чтобы переключить модуль в режим AT
digitalWrite(9, HIGH);
Serial.begin(9600);
Serial.println("Enter AT commands:");
BTSerial.begin(9600); // HC-05 скорость по умолчанию в AT-команде подробнее
}
void loop()
{
// Продолжаем читать с HC-05 и отправляем в Arduino Serial Monitor
if (BTSerial.available())
Serial.write(BTSerial.read());
// Продолжаем читать с последовательного монитора Arduino и отправляем на HC-05
if (Serial.available())
BTSerial.write(Serial.read());
}
@aazaaa, 👍0
2 ответа
Если я правильно вас понял: вы изменили настройки UART на модуле HC05 и теперь не можете подключиться к HC-06.
Вы используете SoftwareSerial для подключения, так как на UNO у вас есть только один порт HardwareSerial. SoftwareSerial позволяет настроить только скорость передачи данных. Есть обходные пути https://forum.arduino.cc/index.php?topic=251764 , но вы также можете написать небольшой скетч, который переконфигурирует ваш UART HC06 на 9600,0,0, используя HardwareSerial, который можно настроить на новые настройки четности для подключения к HC-06.
Что-то вроде этого
void setup()
{
//Serial.begin(9600, SERIAL_8O1);
Serial.begin( 9600, SERIAL_8E1 );
// я настраиваю не на 9600,0,0, а на 9600,1,0
// Потому что Arduino использует стоповый бит, установленный по умолчанию.
Serial.println( "AT+UART=9600,1,0" );
}
void loop() {}
Я не могу попробовать эту программу, так что это только пример того, как перезагрузить ваш HC-05.
По причине; перед загрузкой скетча необходимо подключить HC-05 к аппаратным последовательным контактам (0,1).
Извините, мой вопрос не был простым для понимания. Ваше решение не сработало для меня. Я нашел еще одну библиотеку, где можно добавить бит четности: https://github.com/ledongthuc/CustomSoftwareSerial
Мне это подходит.
Спасибо за помощь :)
- Плохо отформатированные символы с использованием Bluetooth-модуля JDY-30
- Отправка целого числа> 1 байта с Android на Arduino через последовательный порт
- ESP8266-01 неправильные настройки управления потоком
- Serial печатается дважды?
- ПК не может получить доступ к порту HC-06 Bluetooth COM
- Как интерпретировать последовательные данные, полученные модулем Bluetooth
- Два сериала не могут работать на одной скорости
- Возможно ли использование двух модулей с последовательным интерфейсом на одном Arduino Uno?