我有点被困在这里。我有一个HC-05蓝牙模块 - 来自ebay-我正在测试它以确保它有效。我已将以下草图上传到芯片:
//////////////////////////////////////////////////////////////////////////////////
// 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接收线路Press 1 to turn Arduino pin 13 LED ON or 0 to turn it OFF:
但是当我在终端中输入1并将其发送到模块时,LED不会亮起。
注意: LED工作 我是肯定的,我已经适当地连接了所有东西 我的RX和TX串行线必须工作,否则我将无法上传草图。
HC-05是否可能无法正常工作且无法接收信息?我该怎么做才能测试呢?
非常感谢!
答案 0 :(得分:2)
感谢@SunGa的循环理念。它工作,所以我可以确认蓝牙模块是否健康。通过其他论坛阅读试图理解为什么pin 0
无法接收蓝牙模块发送的串行信号,我发现这是一个常见问题。事实证明,由于RX和TX硬接线到板上的USB到TTL转换器芯片,有时Pin 0
和Pin 1
的状态会“卡住”并且它们无法正确使用(这是不幸的!而且工程设计很糟糕。)
我能够通过使用SoftwareSerial
库成功发送和接收数据
并将Pins 10 and 11
重新映射到RX和TX。
那就是说,如果AtMega芯片被用作独立的微控制器(例如DIYduino),则可以使用Pins 0 and 1
与蓝牙模块进行通信!
希望这可以帮助那些面临同样问题的人
答案 1 :(得分:0)
我对Arduino一点也不熟悉。但是可以建议您在HC05引脚配置环回连接,并仅测试Android(或PC)终端与HC05之间的通信。这将弄清楚HC05是否有效。
答案 2 :(得分:0)
我遇到了同样的问题,找到了一个很棒的解决方案。该解决方案以名为SoftwareSerial.h的库的形式存在。该库的确为我们带来了奇迹,因为它在最重要的事情上帮助“调试”您正在使用的应用,可能是android应用还是ios应用。
我使用了以下设置/设备:
请注意:将ur蓝牙rx引脚连接到adriuno引脚9,将蓝牙tx引脚连接到adruino引脚10。
通过这种方式,您可以使用adruino板的串行接口进行调试。
#include <SoftwareSerial.h>
int state = 0;
SoftwareSerial Bluetooth(10,9);
int data;
void setup() {
// put your setup code here, to run once:
pinMode(4,OUTPUT);
Serial.begin(9600);
Bluetooth.begin(9600);
}
void loop() {
if(Bluetooth.available() > 0)
{
data = Bluetooth.read();
if(data == '1')
{
digitalWrite(4,HIGH);
Serial.println("LED Turned ON");
}
else{
digitalWrite(4,LOW);
Serial.println("LED Turned OFF");
}
Serial.println(data);
}
delay(1000);
}
有关更多信息,请参阅Bluetooth Module Debugging