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 кОм, как мне их подключить, если это решение?
@Janar, 👍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"); }
Возможно, у вас установлен другой порт на HC 06 вместо 9600, как у меня. Если это так, попробуйте этот код со всеми возможными номерами портов и меняйте что-то вроде пароля, и каждый раз, когда вы запускаете код, проверяйте, сработало ли это, таким образом вы найдете, в каком номере порта у вас есть ваш модуль.
удачи
- Motor Shield и Bluetooth-модуль HC-06 соревнуются за контакты
- Bluetooth: время синхронизации с NTP-сервера через интернет-соединение, совместно используемое с телефоном Android.
- Подключение HC-06 и LM35
- Arduino Uno R3 HID с модулем HC-06 BT
- Неверные данные, полученные в Arduino по bluetooth
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
вы не сказали, что произойдет, если вы наберете последовательный монитор после отправки данных с телефона на последовательный монитор, @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