我有种被困在这里。 我有一个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不工作,无法接收信息? 我能做些什么,否则测试?
非常感谢!
感谢@SunGa的环回的想法。 它的工作,所以我可以确认的蓝牙模块处于良好的健康状况。 通过其他论坛阅读,试图理解为什么pin 0
不能接收蓝牙模块,我发现这是一个常见的问题发送的串行信号。 它使原来,因为RX和TX是硬连接到USB转板上TTL转换芯片,有时状态Pin 0
和Pin 1
“被困”,他们不能恰当地使用(这是不幸的!和可怜的工程IMO)。
我是能够成功地发送和通过利用接收数据SoftwareSerial
库,并重新映射Pins 10 and 11
至RX和TX。
这就是说,如果一个ATMEGA芯片被用作一个独立的微控制器(如DIYduino)则Pins 0 and 1
可用于通信,蓝牙模块!
希望这可以帮助别人谁面临着同样的问题
我不与Arduino的大家耳熟能详。 但可以建议您在HC05引脚和测试仅适用于Android(或PC)终端和HC05之间的通信配置回环连接。 这将弄清楚HC05是否工作或没有。
我也遇到了同样的问题,发现一个真棒的解决方案。 该解决方案存在的所谓SoftwareSerial.h库”。这个库确实真有奇效,因为它有助于在最重要的事情,‘调试’,你正在使用的应用程序,可以说,它是Android应用或iOS应用。
我已经使用以下安装/设备:
- Adruino模块
- LightBlue资源管理器应用程序(IOS 10)
- HC-05蓝牙模块(BLE)
请注意:当前蓝牙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); }
欲了解更多信息,请参阅蓝牙模块调试