活着就是幸福 发表于 2014-1-22 15:13:07

蓝牙控制LED灯的亮度问题

本帖最后由 活着就是幸福 于 2014-1-22 15:34 编辑

我用APPINVENTOR写了个android客户端,用一个slider滑动控制led灯的亮度,android端已经上传,以下是arduino端代码,有个问题,这样调节的结果灯闪一下就灭,除了通过增加delay时间,还有其它办法吗?

#include <SoftwareSerial.h>
SoftwareSerial mySerial(2,3);//Define RX,TX
int pinLED=11;
//int val=0;
void setup(){
   Serial.begin(9600); //define the bounds rate
   mySerial.begin(9600); //define bt bounds rate
   pinMode(pinLED,OUTPUT);
}

void loop(){
//read the signal from bt

   if(mySerial.available()>0){
      int val=mySerial.read();
      Serial.println(val);
      analogWrite(pinLED,val);
   delay(200);
   }
}

察看监视器得到的数据是slider数据后紧跟一个0,不知道怎么回事,是不是因为蓝牙通道没数据传来时默认0?但是程序里已经设定没蓝牙数据时不应该有赋值的呀?哪位能帮忙一下,谢谢先!

邵林寺 发表于 2014-1-22 15:39:57

准备回家过年了,嘿嘿,顺便给你点提示:1.看看上位机发出的信号,最后那个0或许是上位机发出的,这需要改上位机程序。
2,把你程序里的if改成while,loop里边加上analogWrite(pinLED,val);

活着就是幸福 发表于 2014-1-22 15:46:30

谢谢邵兄,用while测试过,结果一样。

活着就是幸福 发表于 2014-1-22 15:50:11

153
0
224
0
130
0
191
0
247
0
128
0
56
0
140
0
199
0
monitor窗口显示的反馈,这个0不知道怎么来的。

邵林寺 发表于 2014-1-22 15:56:39

//int val=0;两个//去掉试试
我觉得应该是发送端的问题

活着就是幸福 发表于 2014-1-22 16:05:21

这个验证过的,应该没有关系。放在前面申明和后面申明应该效果是一样的。是不是上位机的问题,我得再确认一下inventor。

邵林寺 发表于 2014-1-22 16:07:45

是不是发送端有数据就发一遍,没数据就发0.

活着就是幸福 发表于 2014-1-22 16:20:25

我也是这么猜测,有解决办法吗?

zoologist 发表于 2014-1-22 16:22:53

活着就是幸福 发表于 2014-1-22 16:20 static/image/common/back.gif
我也是这么猜测,有解决办法吗?

你先试试在代码中如果收到0就忽略之......

看看情况如何

隨風大俠 发表于 2014-1-22 16:27:10

活着就是幸福 发表于 2014-1-22 16:20 static/image/common/back.gif
我也是这么猜测,有解决办法吗?

if跟while不會有差別,錯誤是在Android程式裡喔。:D

隨風大俠 发表于 2014-1-22 16:29:51

活着就是幸福 发表于 2014-1-22 16:20 static/image/common/back.gif
我也是这么猜测,有解决办法吗?

有可能是您的Android程式會發送一次後就重置一次,導致傳出初始的0,要再檢查一下。

隨風大俠 发表于 2014-1-22 16:34:45

活着就是幸福 发表于 2014-1-22 16:20 static/image/common/back.gif
我也是这么猜测,有解决办法吗?

還有,int val=0; 也不會造成您現在的錯誤。

隨風大俠 发表于 2014-1-22 16:35:02

活着就是幸福 发表于 2014-1-22 16:20 static/image/common/back.gif
我也是这么猜测,有解决办法吗?

還有,int val=0; 也不會造成您現在的錯誤。

活着就是幸福 发表于 2014-1-22 16:37:59

C:\Users\jezhong\Desktop\1.jpg
C:\Users\jezhong\Desktop\2.jpg
C:\Users\jezhong\Desktop\3.jpg
C:\Users\jezhong\Desktop\4.jpg
C:\Users\jezhong\Desktop\5.jpg
按理说程序很简单, 有谁熟悉appinventor的,帮我也看看上位机的程序,哪里有错?
另外,这个0是个问题,还有我需要调节到一个值时,灯可以常亮,而不是亮一下就灭。

活着就是幸福 发表于 2014-1-22 16:38:31

怎么发图?
页: [1] 2 3
查看完整版本: 蓝牙控制LED灯的亮度问题