Angel.Nearly 发表于 2013-7-15 09:49:22

新人求助,多次测试无解。希望论坛的各位大神指点

我在做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不被点亮,而且没有信息返回。
希望各位能抽些时间给小弟看看。先谢了

Angel.Nearly 发表于 2013-7-15 11:39:48

求助,求助啊

林定祥 发表于 2013-7-15 13:18:31

只有arduino的发射程序,没有看见接收程序.

Angel.Nearly 发表于 2013-7-15 13:26:34

林定祥 发表于 2013-7-15 13:18 static/image/common/back.gif
只有arduino的发射程序,没有看见接收程序.

你指的是那个arduino板上的代码?

Angel.Nearly 发表于 2013-7-15 17:02:48

求助求助...

拾瑞 发表于 2013-7-15 17:03:04

本帖最后由 拾瑞 于 2013-7-15 17:23 编辑

LOOP里面加点DELAY试试!

9600的速度,相对于LOOP里面的代码速度太慢了,或者说对不上拍吧;

另外,你得用Serial.available() 做判断,串口是否有信息到来啊........

while(Serial.available())
    {
   rcvByte += char(Serial.read());
   delay(2);
   
    }

Angel.Nearly 发表于 2013-7-15 17:53:18

拾瑞 发表于 2013-7-15 17:03 static/image/common/back.gif
LOOP里面加点DELAY试试!

9600的速度,相对于LOOP里面的代码速度太慢了,或者说对不上拍吧;


这个会是代码的问题吗?网上也有人用同样的代码成功试验啊。我现在都觉得是蓝牙模块这边的问题。它上面还有KEY和NC这两个针脚,不知道有没有联系

Angel.Nearly 发表于 2013-7-15 20:54:04


求助求助...

Angel.Nearly 发表于 2013-7-15 23:10:22

唉,好悲催啊...

Angel.Nearly 发表于 2013-7-16 09:21:56

继续求求助....

wisology 发表于 2013-7-16 19:34:34

是不是手机上的串口软件发送的字符格式不对,用arduino打印一下接收到的东西看看。

Angel.Nearly 发表于 2013-7-16 20:51:03

wisology 发表于 2013-7-16 19:34 static/image/common/back.gif
是不是手机上的串口软件发送的字符格式不对,用arduino打印一下接收到的东西看看。

在电脑上可以打印到他的值吗?

wisology 发表于 2013-7-17 21:13:52

Angel.Nearly 发表于 2013-7-16 20:51 static/image/common/back.gif
在电脑上可以打印到他的值吗?

可以,你都可以打印“LED ON”这些。

Angel.Nearly 发表于 2013-7-18 09:06:28

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");
}
}这样写没问题吧

但是这样在蓝牙无论有没有连接上都是这样

拾瑞 发表于 2013-7-18 15:40:22

你用的UNO吧?是不是只有一个串口?兰牙模块是不是接在这唯一的串口上了?

页: [1] 2
查看完整版本: 新人求助,多次测试无解。希望论坛的各位大神指点