Arduino AT не работает (Arduino UNO и HC-06)

Недавно возникли проблемы с HC-06 И Arduino UNO. Оказалось, что последний модуль не работал, этот модуль продолжает мигать и появляется в списке Bluetooth. Я пытаюсь работать с некоторыми AT-командами, но по какой-то причине это не работает. Этот модуль совершенно новый (ZS-040).

#include <SoftwareSerial.h>

SoftwareSerial btSerial(2, 3); // прием, передача
/*
 * Подключите контакт 2 Arduino к контакту TX HC-06.
 * Подключите контакт 3 Arduino к контакту RX HC-06.
 */
void setup() {

Serial.begin(9600);

Serial.println("Enter AT commands:");

btSerial.begin(9600);

}

void loop()

{

if (btSerial.available())

Serial.write(btSerial.read());

if (Serial.available())

btSerial.write(Serial.read());

}

Я загрузил код, зашел в Serial Monitor. Когда я набираю команду, я не получаю ответа. Я открыл приложение «Arduino Bluetooth», подключился к своему телефону, и когда я что-то набираю в терминале на своем телефоне, я вижу текст на экране последовательного монитора моего ПК. Любые идеи, что мне делать дальше? Может ли это быть связано с выводом RX? Должен ли я использовать делитель напряжения? У меня есть резисторы на 1 кОм и 2 кОм, как мне их подключить, если это решение?

, 👍1

Обсуждение

вы не сказали, что произойдет, если вы наберете последовательный монитор после отправки данных с телефона на последовательный монитор, @jsotola

https://i.imgur.com/cGkbeFz.gifv Я могу отправить данные с телефона, но не на ПК. Я также получил этот ответ с другой платформы, но до сих пор не уверен, что мне делать дальше. Мне нужны инструкции, я новичок во всем этом. Спасибо., @Janar

другой ответ: https://i.imgur.com/KLACLDD.png, @Janar

Пробовал менять скорость передачи модулей bt, не помогло., @Janar

РЕШЕНО: прочитайте это руководство at-commands-texting-and-led-examples/), попытался изменить «Без окончания строки» на «И NL, и CR». Теперь, когда я набираю AT-команду, я получаю ответ «ОК», и когда я набираю на своем телефоне, я вижу текст в последовательном мониторе (ПК)., @Janar

Не уверен, почему, но, например, для смены имени мне пришлось набрать AT+NAME:Newnamehere (с ":"), для пароля AT+PSWD:"Newpswdhere"., @Janar


1 ответ


1
  1. Используйте такой макрос для отправки AT-команд:

     #include <SoftwareSerial.h>
    
     SoftwareSerial btSerial(2, 3); // RX, TX
     /*
      * Подключите контакт 2 Arduino к контакту TX HC-06.
      * Подключите контакт 3 Arduino к контакту RX HC-06.
      */
     void setup() {
    
     Serial.begin(9600);
    
     Serial.println("Enter AT commands:");
    
     btSerial.begin(9600);
    
     }
    
     void loop()
    
     {
    
     if (btSerial.available())
    
     Serial.write(btSerial.read());
    
     if (Serial.available())
    
     btSerial.write(Serial.read());
     delay(1000);
     //btSerial.print("AT+PIN4321");
     //btSerial.print("AT+NAMEAlibaba");
     //btSerial.print("AT+BAUD4");
    
    
     }
    
  2. Возможно, у вас установлен другой порт на HC 06 вместо 9600, как у меня. Если это так, попробуйте этот код со всеми возможными номерами портов и меняйте что-то вроде пароля, и каждый раз, когда вы запускаете код, проверяйте, сработало ли это, таким образом вы найдете, в каком номере порта у вас есть ваш модуль.

удачи

,