Модуль Bluetooth ZS-040 (HC-05) Arduino Mega
Я следовал этому руководству http://www.martyncurrey.com/using-an-arduino-mega-with-a-hc-05-zs-040-at-mode/ и, похоже, режим AT включен. (светодиод мигает, как и положено)
Я подключил свои контакты вот так:
BT VCC на выход Arduino 5 В. Отключите перед запуском скетча
BT GND к Arduino GND
BT RX (через делитель напряжения) к Arduino TX1 (контакт 18)
BT TX на Arduino RX1 (делитель напряжения не нужен) (контакт 19)
Вот код, который я запускаю: (из руководства)
// Базовый тестовый скетч Bluetooth 5a для Arduino Mega.
// Режим AT с использованием кнопочного переключателя
// HC-05 с EN-штифтом и кнопочным переключателем
//
// Использует последовательный порт с хост-компьютером и последовательный порт 1 для связи с модулем Bluetooth
//
// Контакты
// BT VCC на выход Arduino 5 В. Отключите перед запуском скетча
// BT GND к Arduino GND
// BT RX (через делитель напряжения) к Arduino TX1 (контакт 18)
// BT TX к Arduino RX1 (делитель напряжения не нужен) (контакт 19)
//
// Когда команда вводится в последовательный монитор на компьютере
// Arduino передаст его на модуль Bluetooth и отобразит результат.
//
char serialByte = '0';
const byte LEDPIN = 13;
void setup()
{
pinMode(LEDPIN, OUTPUT);
// связь с главным компьютером
Serial.begin(9600);
Serial.println("Do not power the BT module");
Serial.println(" ");
Serial.println("On the BT module, press the button switch (keep pressed, and at the same time power the BT module");
Serial.println("The LED on the BT module should now flash on/off every 2 seconds");
Serial.println("Can now release the button switch on the BT module");
Serial.println(" ");
Serial.println("After entering AT mode, type 1 and hit send");
Serial.println(" ");
// ждем, пока пользователь введет «1» в последовательном мониторе
while (serialByte !='1')
{
if ( Serial1.available() ) { serialByte = Serial1.read(); }
}
// связь с модулем BT на serial1
Serial1.begin(38400);
// Светодиод, показывающий, что мы запустили последовательные каналы
digitalWrite(LEDPIN, HIGH);
Serial.println(" ");
Serial.println("AT mode.");
Serial.println("Remember to to set Both NL & CR in the serial monitor.");
Serial.println("The HC-05 accepts commands in both upper case and lower case");
Serial.println(" ");
}
void loop()
{
// прослушиваем связь от модуля BT и затем записываем ее в последовательный монитор
if ( Serial1.available() ) { Serial.write( Serial1.read() ); }
// прослушивать пользовательский ввод и отправлять его в HC-05
if ( Serial.available() ) { Serial1.write( Serial.read() ); }
}
Я хочу отметить, что скорость передачи данных установлена на 9600, а также установлены NL и CR.
Проблема в том, что когда я вставляю 1
в Serial Monitor, ничего не происходит. Как решить эту проблему?
@grrigore, 👍1
1 ответ
Лучший ответ:
Решение
Подключение:
- От Bluetooth RXD к контакту 11 Arduino Mega
- Переход Bluetooth TXD к контакту 10 Arduino Mega
- Bluetooth VCC для Arduino Mega 5V
- Bluetooth GND к Arduino Mega GND
Я использовал этот код:
#include <SoftwareSerial.h>
#define RxD 10
#define TxD 11
SoftwareSerial BTSerial(RxD, TxD);
void setup(){
// замените BAUDRATE, как предложено
BTSerial.begin(BAUDRATE);
Serial.begin(9600);
BTSerial.print("AT\r\n");
}
void loop(){
if (BTSerial.available())
Serial.write(BTSerial.read());
if (Serial.available())
BTSerial.write(Serial.read());
}
после настройки режима AT, как описано в руководстве выше.
Я попробовал запустить код со скоростью BAUDRATE
от 9600 до 460800:
- Bluetooth-модуль HC-05 не принимает AT-команды
- Я могу отправлять на software serial, но не прочитать?
- Bluetooth-модуль HC-05
- Преобразовать код Arduino MEGA в код Arduino DUE?
- Связь Arduino по Bluetooth замедляется из-за цикла for!
- Бесщеточный двигатель "дергается" сам по себе при подключении к батарее
- Sketch взаимодействует с Android через BLE на Serial2, но время ожидания истекает через 5 секунд, когда последовательный кабель отключен или отсутствует.
- использование нескольких hc-05 с одним arduino mega