HC-05 подключение к Arduino

Я просматривал StackExchange и искал в Интернете и не могу найти ответ на свою проблему.

Настройка: Arduino Nano 168 ВЕРСИЯ HC-05:3.0-20170601

Я пытаюсь подключить свой телефон Android к моему Nano для управления выходом. Я нашел тонны различных примеров, но все они в основном сводятся к MIT App Inventor для создания приложения для подключения через BT и отправки данных в Nano для управления.

После многих попыток безрезультатных, я попытался сделать следующее:

#include <SoftwareSerial.h>

int light=8;
int Received=0;
int light_state =0;

SoftwareSerial BTSerial(10, 11); // RX | TX

void setup(){

  Serial.begin(38400);
  pinMode(light,OUTPUT);
  BTSerial.begin(38400);

}

void loop(){
  // Keep reading from HC-05 and send to Arduino Serial Monitor
  if (BTSerial.available()) {
    Serial.write(BTSerial.read());
 }

 if(BTSerial.available()>0) { 
    Received = BTSerial.read();       
 }

if (light_state == 0 && Received == '1') {
    digitalWrite(light,HIGH);
    light_state=1;
    Received=0;  
  }
if (light_state ==1 && Received == '1') {
    digitalWrite(light,LOW);
    light_state=0;
    Received=0;
  }
}

Итак, когда я запускаю приложение MIT на своем телефоне для подключения к HC-05, индикатор состояния на HC-05 меняется. Перед подключением индикатор состояния быстро мигает. После подключения он медленно мигает.

У меня есть последовательный монитор, открытый на ноутбуке, контролирующем Nano. HC-05 соединяется через контакты 10 и 11. Когда телефон подключается к HC-05, данные, напечатанные на последовательном мониторе, являются мусором.

⸮х⸮х⸮⸮х⸮х⸮х⸮⸮хххххх⸮х⸮⸮ХХ⸮⸮ХХХ⸮⸮

Вот что я получаю.

Приложение настроено на передачу "1" через BT к Nano. Когда я нажимаю кнопку, чтобы отправить 1, никаких данных не поступает. Но каждый раз, когда я выбираю HC-05 и говорю приложению подключиться к устройству, я получаю ту же строку данных выше.

Заранее спасибо за помощь.

, 👍1

Обсуждение

Кажется, что у вас несовпадающая скорость передачи данных. Действительно ли HC-05 установлен на 38400 бод? Вы можете попробовать другие бодраты для проверки, @chrisl

Я забыл упомянуть, могу ли я получить доступ к HC-05 и запустить AT-команды для считывания настроек с HC-05., @Chris Wren

@chrisl Я проверил скорость передачи данных на HC-05 с помощью AT-команд, но сегодня вечером я еще раз проверю ее. На последовательном мониторе я проверил каждую скорость передачи данных, но это было только между Nano и ноутбуком., @Chris Wren

@chrisl, я проверил настройки. Я использовал AT+UART? и он вернул 9600, 0, 0. Я сбросил его до 34800, 1, 0. Я посмотрел настройки по умолчанию для Arduino Nano, и он сказал, что по умолчанию это 8-битное слово, 1 стоп-бит и 0 битов четности. Поэтому я позаботился о том, чтобы соответствовать этой установке. Вскоре я проведу еще одно испытание., @Chris Wren

После получения скорости и битов правильно, я получаю данные через порт. Однако все, что я получаю, это: +ДИСК:УСПЕХ, @Chris Wren

где ты это взял?, @chrisl

@chrisl, я получил эти устройства с ebay. Однако я обнаружил, что мой аппаратный и Нано-код верен (я настроил программный последовательный порт и использовал программу терминала BT на своем телефоне для отправки данных с телефона на HC-05 на программном порту nano, а затем nano сбрасывает данные на аппаратный последовательный порт моего последовательного монитора на моем ноутбуке). Моя проблема заключается где-то в коде моего приложения Inventor. Именно над этим я сейчас и работаю., @Chris Wren

Вы должны добавить правильный ответ и закрыть этот вопрос.А затем задайте еще один вопрос, касающийся вашего приложения., @Sigma


1 ответ


1

Эта проблема была решена. Возникла проблема с четностью и стоп-битами.

При настройке коммуникаторов arduino помните, скорость передачи данных, 1 стоп-бит, 0 битов четности.

,