Последовательный монитор не отвечает на вход при попытке установить HC-05 (ZS-040) в режим AT - PullRequest
0 голосов
/ 09 мая 2018

Я не могу запустить AT-команды в Serial Monitor. (Оба NL & CR + 9600 бод установлены) Я следовал этому уроку здесь .

Оборудование:

  • Arduino MEGA 2560
  • Модуль Bluetooth HC-05 (ZS-040)
  • Ubuntu 16.04

Вот как я их связал:

Хочу отметить, что до этого я проводил их несколько раз без резисторов, но не более 3-4 минут.

Это код, который я использую:

// Basic Bluetooth test sketch 5a for the Arduino Mega. 
// AT mode using button switch
// HC-05 with EN pin and button switch
//
// Uses serial with the host computer and serial1 for communication with the Bluetooth module
//
//  Pins
//  BT VCC to Arduino 5V out. Disconnect before running the sketch
//  BT GND to Arduino GND
//  BT RX (through a voltage divider) to Arduino TX1 (pin 18)
//  BT TX  to Arduino RX1 (no need voltage divider)   (pin 19)
//
// When a command is entered in to the serial monitor on the computer 
// the Arduino will relay it to the Bluetooth module and display the result.
//

char serialByte = '0';
const byte  LEDPIN = 13; 

void setup() 
{
    pinMode(LEDPIN, OUTPUT);

    // communication with the host computer
    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(" ");


    // wait for the user to type "1" in the serial monitor
    while (serialByte !='1')
    {
        if ( Serial1.available() )   {  serialByte = Serial1.read();  }
    }  


    // communication with the BT module on serial1
    Serial1.begin(38400);

    // LED to show we have started the serial channels
    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() 
{
    // listen for communication from the BT module and then write it to the serial monitor
    if ( Serial1.available() )   {  Serial.write( Serial1.read() );  }

    // listen for user input and send it to the HC-05
   if ( Serial.available() )   {  Serial1.write( Serial.read() );  }
}

Вспышка на светодиоде должна включаться / выключаться каждые 2 секунды, 1 секунда на 1 секунду Это указывает на режим AT. Теперь вы можете выпустить кнопка включения.

Даже если светодиод мигает, как описано (цитата сверху) Я не получаю ответа от ввода 1 в Serial Monitor.

Вот так выглядит мой Serial Monitor после запуска всего, как и предполагалось:

1 Ответ

0 голосов
/ 10 мая 2018

Решение

Подключение:

  • Bluetooth RXD к Arduino Mega pin 11
  • Bluetooth TXD к Arduino Mega pin 10
  • 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(){
  // replace BAUDRATE as suggested
  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:

Для меня 9600 была правильной скоростью передачи моего HC-05.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...