1

チュートリアルが示すように、シリアル モニターを使用して、シリアル ポート経由で Arduino Leonardo に接続している RN41 Bluetooth モジュールにいくつかのコマンドを送信したいと考えています。しかし、それは応答しません。Bluetooth モジュールに接続でき、ステータス LED が正しく点滅します。コマンド モードに変更するために $$$ を送信しようとしましたが、点滅速度は 10/秒に変わりますが、モジュールは何も応答しません。'---' を送信すると、まばたきの速度が通常に戻ります。接続は成功していると思いますが、シリアル モニターに何も表示されません。

チュートリアルが示すように、モニターのボーを 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!
}
4

3 に答える 3

1

コマンドモードに入るには、CR/LFなしで$$$ を送信する必要があります。コマンドモードに入った後、コマンドを送信する必要があり、すべてのコマンドの後に CR LFが続く必要があります。そうでない場合 - モジュールは応答しません。それが役立つことを願っています。

于 2014-02-20T16:05:53.653 に答える