Проблемы связи с HC-05 с помощью SoftSerial

Здравствуйте!
Сразу хочу сказать что в теме Ардуино я зеленый новичок, хотя навыки программирования и работы с электроникой имеются. Приобрел все это чудо незадолго до НГ
Попытался подключить модуль HC-05 к Ардуино УНО используя библиотеку Softwareserial
Вроде все пошло хорошо, модуль HC-05 в списке блютус устройств появился. Начал тестирование при помощи терминала Serial Bluetooch Terminal и получил полную ахинею. Такое чувство что кодировки не совпадают. В терминале 1 - в мониторе порта отображается . Отправляю 1 с монитора порта - в терминале отображается
Пробовал подать плюс на KEY и отправить АТ команды - все отработало правильно.
Подскажите, плиз, в какую сторону думать. Кодировку в терминале пробовал всякую, начиная с UTF-8. Версия IDE - 1.8.19
Схема подключения:
HC-05–>UNO (+5V → +5V; GND → GND; RX->D3 (через делитель); TX->D2->)
Код

#include <SoftwareSerial.h>
int gRxPin = 2;
int gTxPin = 3;
SoftwareSerial BTSerial(gRxPin, gTxPin);

void setup()
{
  pinMode(gRxPin, INPUT);
  pinMode(gTxPin, OUTPUT);
  BTSerial.begin(9600);  //Set the baud rate to your Bluetooth module.
  Serial.begin(9600);  //Set the baud rate to your Bluetooth module.
  Serial.println("<<< Start! >>>");
}

void loop()
{
  if (BTSerial.available())
    Serial.write(BTSerial.read());
  if (Serial.available())
    BTSerial.write(Serial.read());
}

В IDE Monitor печатайте символ через println(…, HEX).
Так будет понятней, что за жужелица с БТ прилетает.

Спасибо за совет!
Попробовал такой код.

#include <SoftwareSerial.h>
int gRxPin = 2;
int gTxPin = 3;
SoftwareSerial BTSerial(gRxPin, gTxPin);
char btCommand = 'S';

void setup()
{
  pinMode(gRxPin, INPUT);
  pinMode(gTxPin, OUTPUT);
  BTSerial.begin(9600);  //Set the baud rate to your Bluetooth module.
  Serial.begin(9600);  //Set the baud rate to your Bluetooth module.
  Serial.println("<<< Start! >>>");
}

void loop()
{
  if (BTSerial.available()>0)
   { 
    btCommand = BTSerial.read();
    Serial.print("char:");Serial.println(btCommand) ;
    Serial.print("hex:") ;Serial.println(btCommand,HEX) ;
   } 
}

Отправляю с терминала на смартфоне последовательно A, 1, 2
Получаю такой результат:
08:45:51.748 → char:⸮
08:45:51.748 → hex:FFFFFFC6
08:46:18.963 → char:⸮
08:46:18.963 → hex:FFFFFFC7
08:46:46.714 → char:⸮
08:46:46.714 → hex:FFFFFFC7
Совершенно не понимаю что происходит (((

Смотри настройки этой программы или попробуй другую (думаю их тьма-тьмущая).

А скорость порта HC05 точно 9600?

Добавка - вручную устанавливать режимы пинов RX TX не нужно, строки 8 9 в коде уберите

1 лайк

9 и 10 имел ввиду?

Первая ссылка в гугле говорит, что может отличаться и настраивается через АТ:

AT+UART=,, — установить модуль для последовательного порта.
Параметры:
— скорость обмена (9600,19200,38400,57600,115200);
— стоп-бит:
0 — нет;
1 — есть;
— бит паритета:
0 — нет;
1 — есть.
Ответ модуля: OK (или FAIL).

Но проще для начала просто попробовать поменять скорость в скетче, выбрав одну из этих:

9600 (видимо “мимо”)
19200
38400
57600
115200

Так вроде бы ещё подключиться надо, создать соединение…
здесь

Всем большое спасибо за ответы!!!
Получилось обменяться данными со смартфоном. Подошла скорость 38400.
Вот код

#include "SoftwareSerial.h"
SoftwareSerial BTSerial(2, 3);

void setup() {
  pinMode(2, INPUT);
  pinMode(3, OUTPUT);

  Serial.begin(9600);
  BTSerial.begin(38400);

  Serial.println("start");
}

void loop() {
  if (BTSerial.available()) {
    char c = BTSerial.read();
    Serial.print(c);
  }
  if (Serial.available()) {
    char c = Serial.read();
    BTSerial.write(c);
  }
}

Правда не удалось почему то зайти в АТ команды чтобы посмотреть как я там в самом начале настроил. И подавал постоянную 1 на КЕУ и кратковременно - не воспринимает команды с монитора. Хотя светодиод моргает как положено. Ну да бог с ним. Главное работает. Сейчас буду машинку собирать )) А там другой модуль куплю и более внимательно разберусь
Еще раз большое спасибо, Уважаемые!!
PS И убрал делитель. Будем надеяться что не сгорит от 5 вольт )) Такой совет попадался в одной из статей

А он вам мешал?

Там у резисторов из базового набора такие тонкие ноги что в итоге обломил у основания (
Надо заказать будет набор резисторов на 0.25 вт