新人求助,多次测试无解。希望论坛的各位大神指点
我在做arduino与蓝牙模块之间的通信连接试验,但是试了很久都不能成功。我做的是通过手机蓝牙与arduino连接,实现点亮LED的试验。以下是代码:
char val;
int ledpin=8;
void setup()
{
Serial.begin(9600);
pinMode(ledpin,OUTPUT);
}
void loop()
{
val=Serial.read();
if(val=='q')
{
digitalWrite(ledpin,HIGH);
Serial.println("LED ON!");
}else if(val=='w'){
digitalWrite(ledpin,LOW);
Serial.println("LED OFF!");
}
}
试验结果如下
手机的发送是正常的,但是arduino那边没有信息返回。
用串口工具直接给arduino发信息时,结果如下
手机端收到了arduino的信息,而且LED也被点亮。
但是直接用手机给arduino发信息,LED不被点亮,而且没有信息返回。
希望各位能抽些时间给小弟看看。先谢了
求助,求助啊 只有arduino的发射程序,没有看见接收程序. 林定祥 发表于 2013-7-15 13:18 static/image/common/back.gif
只有arduino的发射程序,没有看见接收程序.
你指的是那个arduino板上的代码? 求助求助... 本帖最后由 拾瑞 于 2013-7-15 17:23 编辑
LOOP里面加点DELAY试试!
9600的速度,相对于LOOP里面的代码速度太慢了,或者说对不上拍吧;
另外,你得用Serial.available() 做判断,串口是否有信息到来啊........
while(Serial.available())
{
rcvByte += char(Serial.read());
delay(2);
} 拾瑞 发表于 2013-7-15 17:03 static/image/common/back.gif
LOOP里面加点DELAY试试!
9600的速度,相对于LOOP里面的代码速度太慢了,或者说对不上拍吧;
这个会是代码的问题吗?网上也有人用同样的代码成功试验啊。我现在都觉得是蓝牙模块这边的问题。它上面还有KEY和NC这两个针脚,不知道有没有联系
求助求助... 唉,好悲催啊... 继续求求助.... 是不是手机上的串口软件发送的字符格式不对,用arduino打印一下接收到的东西看看。 wisology 发表于 2013-7-16 19:34 static/image/common/back.gif
是不是手机上的串口软件发送的字符格式不对,用arduino打印一下接收到的东西看看。
在电脑上可以打印到他的值吗? Angel.Nearly 发表于 2013-7-16 20:51 static/image/common/back.gif
在电脑上可以打印到他的值吗?
可以,你都可以打印“LED ON”这些。 wisology 发表于 2013-7-17 21:13 static/image/common/back.gif
可以,你都可以打印“LED ON”这些。
char val;
void setup(){
Serial.begin(9600);
}
void loop(){
val=Serial.read();
Serial.println(val);
if(val=='q'){
Serial.println("OK");
}
}这样写没问题吧
但是这样在蓝牙无论有没有连接上都是这样
你用的UNO吧?是不是只有一个串口?兰牙模块是不是接在这唯一的串口上了?
呵
页:
[1]
2