Проблемы с использованием модуля Bluetooth HC-06 с Arduino

Недавно я заказал модуль Bluetooth HC-06 для своего Arduino Uno, и после просмотра этого видео и многих других у меня все еще остались проблемы с тем, как заставить его работать, а также некоторые вопросы о том, как код получает и считывает последовательные данные с моего телефона.

  1. Я предполагаю, что эта проводка правильная, верно?

    • Прием > Передача
    • Передача > Прием
    • Земля > Земля
    • Vcc > 3,3 В
  2. Когда я отправляю команду через приложение Bluetooth-терминала, которое у меня есть, последовательный монитор отображает эту команду снова и снова. Я полагаю, что это тоже правильно?

  3. Как мне прочитать последовательный вход? Я использую

    if(Serial.available() > 0)
            phoneInput = (char) Serial.read();
    

    а затем отображаю значение phoneInput на последовательном мониторе, но по какой-то причине я не могу заставить его управлять чем-либо должным образом (в данном случае светодиодом)

  4. Какой тип данных возвращает Serial.read() моей переменной до того, как я приведу к ней тип char?

  5. Я получаю ошибки при загрузке кода на плату (avrdude: stk500_recv(): программатор не отвечает), пока я не отключу контакт, подключенный к Rx на Arduino. Есть ли более чистое решение для загрузки платы без отсоединения проводов?

, 👍0

Обсуждение

Я следовал этому руководству и проблема была решена: [Учебник по настройке модуля Bluetooth HC-06 с помощью AT-команды](https://youtu.be/VveS1MhYYMk), @Nguyen Van Quoc


1 ответ


Лучший ответ:

1

Я предполагаю, что эта проводка правильная, верно?

Rx > Tx
Tx > Rx
Gnd > Gnd
Vcc > 3.3V

Почти. TX Arduino следует понизить до 3,3 В с помощью делителя напряжения 10k/20k.

Как мне прочитать последовательный вход? Я использовал

if(Serial.available() > 0)
       phoneInput = (char) Serial.read();

Вы должны прочитать и усвоить это.

Какой тип данных возвращает Serial.read() моей переменной до того, как я приведу ее к типу char?

Целое число. Оно содержит либо 0-255, представляющее код ASCII для символа, либо -1, если в буфере нечего читать.

Я получаю ошибки при загрузке кода на плату (avrdude: stk500_recv(): программатор не отвечает), пока я не отключу контакт, подключенный к Rx на Arduino. Есть ли более чистое решение для загрузки платы без отсоединения проводов?

Это происходит потому, что вы используете контакты 0/1 для связи с Bluetooth, чего вы сделать не можете, поскольку они используются для связи с ПК.

,