嗨,我想用BLE模块连接两个Arduino,但我不知道我可以使用哪个模块以及如何使用它。我知道蓝牙连接基于主从关系,但是当一个是主从关系时,如何搜索另一个BLE模块进行连接,然后如何连接这两个模块?
答案 0 :(得分:0)
我已经使用蓝牙进行了一些连接,以连接到Android,但没有连接BLE或连接2个Arduino。但是,我确实找到了一些文章,应该提供一些对我有意义的指导。
您的BLE模块的连接方式应与BT2模块相同。我怀疑BLE不久就会成为常态。
HC-05和HM-10的AT代码相同,后者应该是前者的直接替代品。鉴于此,Philipe Cantin在Arduino <> ARduino连接上的文章应适用于BLE。
您需要处于主模式的模块。当主模块默认处于从属模式时,它们都可以设置为主模块。我不知道任何仅从属的BLE模块。
http://phillipecantin.blogspot.com.au/2014/08/hc-05-bluetooth-link-with-zero-code.html
请注意,如果需要考虑功耗,则两个模块都必须为BLE。
https://forum.arduino.cc/index.php?topic=358570.0
在使用HC-05和HC-06通过蓝牙连接2个Arduino的“配对,绑定和链接”一文中,我解释了如何将HC-05连接到HC-06,以便在通电时自动将HC-05连接到HC-06。连接。在这里,我们着眼于使用该连接来使Arduino通过蓝牙进行通话。
大多数HC-05和HC-06具有3.3v TX和RX引脚。 5V Arduino将读取3.3v为HIGH,因此BT模块TX引脚可以直接连接到Arduino RX引脚。但是,在连接到BT模块的RX引脚之前,需要将Arduino TX引脚转换为3.3v。一种简单的方法是使用由2个电阻组成的分压器。我通常使用1 x 1K和1 x 2K。
Arduino RX(引脚8)至BT模块TX引脚
通过分压器将Arduino TX(引脚9)连接到BT模块RX引脚
两个Arduino与BT模块具有相同的连接。
* Sketch: Arduino2Arduino_MASTER_01
* By Martyn Currey
* 08.04.2016
* Written in Arduino IDE 1.6.3
*
* Send commands through a serial connection to turn a LED on and OFF on a remote Arduino
* There is no error checking and this sketch sends only
* Commands should be contained within the start and end markers < and >
*
* D8 - AltSoftSerial RX
* D9 - AltSoftSerial TX
*
*/
// AltSoftSerial uses D9 for TX and D8 for RX. While using AltSoftSerial D10 cannot be used for PWM.
// Remember to use a voltage divider on the Arduino TX pin / Bluetooth RX pin
// Download AltSoftSerial from https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html
#include <AltSoftSerial.h>
AltSoftSerial BTserial;
// Change DEBUG to true to output debug information to the serial monitor
boolean DEBUG = true;
void setup()
{
if (DEBUG)
{
// open serial communication for debugging and show
// the sketch filename and the date compiled
Serial.begin(9600);
Serial.println(__FILE__);
Serial.println(__DATE__);
Serial.println(" ");
}
// open software serial connection to the Bluetooth module.
BTserial.begin(9600);
if (DEBUG) { Serial.println("BTserial started at 9600"); }
} // void setup()
void loop()
{
BTserial.println("<LEDON>");
if (DEBUG) {Serial.println("LEDON command sent");}
delay (1000);
BTserial.println("<LEDOFF>");
if (DEBUG) {Serial.println("LEDOFF command sent");}
delay (1000);
}
http://www.martyncurrey.com/arduino-to-arduino-by-bluetooth/