Модуль 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, ничего не происходит. Как решить эту проблему?

, 👍1


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:

,