2014-02-18 3 views
1

Я хочу отправить некоторые команды моему модулю Bluetooth RN41, подключающемуся к Arduino Leonardo через последовательный порт с использованием последовательного монитора, как показывает учебник. Но он не отвечает. Я могу подключиться к модулю bluetooth, и светодиод состояния мигает вправо. Я попытался отправить $$$ для переключения в командный режим, и скорость мигания изменилась на 10/сек, но модуль ничего не ответил. И когда я посылаю «---», скорость мигания возвращается к норме. Я думаю, это означает, что соединение успешно, но я ничего не вижу на серийном мониторе.Bluetooth RN41 не отвечает

Я установил бонус монитора на 9600, как показывает учебник. (https://learn.sparkfun.com/tutorials/using-the-bluesmirf/example-code-using-command-mode)

Вы, ребята, знаете, что может быть неправильным? код прилагается:

/* 
    Example Bluetooth Serial Passthrough Sketch 
by: Jim Lindblom 
SparkFun Electronics 
date: February 26, 2013 
license: Public domain 

This example sketch converts an RN-42 bluetooth module to 
communicate at 9600 bps (from 115200), and passes any serial 
data between Serial Monitor and bluetooth module. 
*/ 
#include <SoftwareSerial.h> 

int bluetoothTx = 2; // TX-O pin of bluetooth mate, Arduino D2 
int bluetoothRx = 3; // RX-I pin of bluetooth mate, Arduino D3 

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx); 

void setup() 
{ 
    Serial.begin(9600); // Begin the serial monitor at 9600bps 

    bluetooth.begin(115200); // The Bluetooth Mate defaults to 115200bps 
    bluetooth.print("$"); // Print three times individually 
    bluetooth.print("$"); 
    bluetooth.print("$"); // Enter command mode 
    delay(100); // Short delay, wait for the Mate to send back CMD 
    bluetooth.println("U,9600,N"); // Temporarily Change the baudrate to 9600, no parity 
    // 115200 can be too fast at times for NewSoftSerial to relay the data reliably 
    bluetooth.begin(9600); // Start bluetooth serial at 9600 
} 

void loop() 
{ 
    if(bluetooth.available()) // If the bluetooth sent any characters 
    { 
    // Send any characters the bluetooth prints to the serial monitor 
    Serial.print((char)bluetooth.read()); 
    } 
    if(Serial.available()) // If stuff was typed in the serial monitor 
    { 
    // Send any characters the Serial monitor prints to the bluetooth 
    bluetooth.print((char)Serial.read()); 
    } 
    // and loop forever and ever! 
} 

ответ

0

Да, отправить только 3 символа, «$$$». Я тоже застрял. Я также обнаружил, что чтение ответа Mate «CMD» необходимо, что не показано в опубликованном эскизе.

+3

Не могли бы вы уточнить? Я не уверен, что это полный ответ. –

1

я застрял на очень простой случай: Для входа в командный режим, вы должны отправить $$$ без любой CR/LF. после того, как вы вошли в командный режим, вам нужно отправить команды, и каждая команда должна следовать от CR LF. если нет - модуль не будет отвечать. Надеюсь, что помогает.