Bluetooth Arduino和x2B上的HC-05蓝牙模块;调试
我被困在这里了。我有一个HC-05蓝牙模块-来自易趣-我正在测试它,以确保它的工作。我已将以下草图上传至芯片:Bluetooth Arduino和x2B上的HC-05蓝牙模块;调试,bluetooth,serial-port,arduino,Bluetooth,Serial Port,Arduino,我被困在这里了。我有一个HC-05蓝牙模块-来自易趣-我正在测试它,以确保它的工作。我已将以下草图上传至芯片: ////////////////////////////////////////////////////////////////////////////////// // REMIXED BY: TECHBITAR (HAZIM BITAR) // LICENSE: PUBLIC DOMAIN // DATE: MAY 2, 2012 // CONTACT: techbitar at
//////////////////////////////////////////////////////////////////////////////////
// REMIXED BY: TECHBITAR (HAZIM BITAR)
// LICENSE: PUBLIC DOMAIN
// DATE: MAY 2, 2012
// CONTACT: techbitar at gmail dot com
char INBYTE;
int LED = 13; // LED on pin 13
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop() {
Serial.println("Press 1 to turn Arduino pin 13 LED ON or 0 to turn it OFF:");
while (!Serial.available()); // stay here so long as COM port is empty
INBYTE = Serial.read(); // read next available byte
if( INBYTE == '0' ) digitalWrite(LED, LOW); // if it's a 0 (zero) tun LED off
if( INBYTE == '1' ) digitalWrite(LED, HIGH); // if it's a 1 (one) turn LED on
delay(50);
}
我在android上使用了三种不同的蓝牙终端,在WIN7上使用了TeraTerm终端来测试blutooth模块是否成功通信。无论出于何种原因,所有4个接收到线路按1打开Arduino引脚13 LED,或按0关闭:
但当我在终端中输入1并将其发送到模块时,LED不会打开
注:
LED的工作原理
我肯定我已经把所有的东西都接好了
我的RX和TX串行线必须工作,否则我将无法上传草图
HC-05是否可能不工作且无法接收信息?否则我可以做什么来测试
非常感谢 我对Arduino一点也不熟悉。但可以建议您在HC05引脚配置环回连接,并仅测试Android(或PC)终端和HC05之间的通信。这将确定HC05是否正常工作。感谢@SunGa的回环想法。它工作正常,因此我可以确认蓝牙模块处于良好状态。阅读其他论坛,试图了解为什么
引脚0
无法接收蓝牙模块发送的串行信号,我发现这是一个常见问题。事实证明,由于RX和TX硬连接到板上的USB到TTL转换器芯片,因此,引脚0
和引脚1
的状态有时会“卡住”,无法正确使用(这是不幸的!而且是糟糕的工程设计)
通过使用SoftwareSerial
库,我能够成功地发送和接收数据
并将插脚10和11重新映射到RX和TX
也就是说,如果AtMega芯片用作独立微控制器(如DIYduino),则引脚0和1可用于与蓝牙模块通信
希望这能帮助其他面临同样问题的人我遇到了同样的问题,并找到了一个很棒的解决方案。该解决方案以名为SoftwareSerial.h.的库的形式存在。该库确实创造了奇迹,因为它在最重要的方面有助于“调试”您正在使用的应用程序,可能是android应用程序或ios应用程序
我使用了以下设置/装置:
阿德鲁诺模块
LightBlue浏览器应用程序(ios 10)
HC-05蓝牙模块(BLE)
请注意:将您的蓝牙rx引脚连接至adriuno引脚9,将蓝牙tx引脚连接至adriuno引脚10
通过这种方式,您可以使用see adruino板串行接口进行调试
#包括
int state=0;
软件串行蓝牙(10,9);
int数据;
无效设置(){
//将安装代码放在此处,以便运行一次:
pinMode(4,输出);
Serial.begin(9600);
蓝牙开始(9600);
}
void循环(){
如果(Bluetooth.available()>0)
{
data=Bluetooth.read();
如果(数据='1')
{
数字写入(4,高);
Serial.println(“LED开启”);
}
否则{
数字写入(4,低);
Serial.println(“LED关闭”);
}
Serial.println(数据);
}
延迟(1000);
}
好的。所以你建议我将蓝牙模块上的TX引脚直接连接到它的RX引脚,而不是Arduino,这样我就可以在终端中看到我从终端发送的信件了?我想这是有道理的。谢谢你的建议!