app控制蓝牙连接的RGB

2016-08-151.3万
AI 快速预览详细 收起
本文讨论了蓝牙控制RGB灯时遇到的串口数据出错和接收不到数据的问题。通过分析代码和实际测试,发现问题是由于延迟时间和数据处理方式不当引起的。文章提供了详细的解决方案,包括调整代码中的延迟时间和数据处理方式。最终效果是解决了串口数据出错和接收不到数据的问题,使RGB灯能够正常工作。
    各位盆友你们好,最近做了个RGB的三色灯,调试的时候总是出点小差,故此,想拿上来和各位盆友讨论讨论:)
希望大家不要喷哦,虽然东西垃圾了点:P

讨论点:为什么串口上面的数据会出错(不出错的话应该是0-255)——>因为用的是pwm波调的...?
              为什么手机APP发送多组数据后,突然发送后串口上数据不变了(我估计是接收不到了)——>不知道蒙的对不对?

注:串口上面的数据详情看附件



附上一段代码吧--
char state[10];
int x, y , z ;
float q, w, e;
int led1 = 3;
int led2 = 5;
int led3 = 6;
int led4 = 9;

void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);

  analogWrite(led1, 15);
  analogWrite(led2, 15);
  analogWrite(led3, 15);
  analogWrite(led4, 15);
  Serial.begin(9600);
}
void loop()
{
  int j = 0;
  int i = 0;
  int mark = 0;

  while (Serial.available() > 0)       //串口获取可用数据
  {
    for (int i = 0; i < 10; i++)
    {
      state[i] = char(Serial.read());              //把串口收到的数据寄存到state
      delay(100);
    }
    delay(200);

    x = (state[1] - 0x30 ) * 100 + (state[2] - 0x30 ) * 10 + (state[3] - 0x30 ) * 1;
    y = (state[4] - 0x30 ) * 100 + (state[5] - 0x30 ) * 10 + (state[6] - 0x30 ) * 1;
    z = (state[7] - 0x30 ) * 100 + (state[8] - 0x30 ) * 10 + (state[9] - 0x30 ) * 1;

    q = x * 2.55;

    w = y * 2.55;

    e = z * 2.55;


    analogWrite(led1, q);
    analogWrite(led2, w);
    analogWrite(led3, e);
    analogWrite(led4, 100);
     Serial.print("     ");
     Serial.print(q);
     Serial.print("     ");
     Serial.print(w);
     Serial.print("     ");
     Serial.println(e);

    x = 0;
    y = 0;
    z = 0;
  }
}



IMG_20160815_132117.jpg (66.33 KB, 下载次数: 4195)

实际效果图

蓝牙控制RGB灯调试问题解决 > 串口数据错误排查_image_3.webp

IMG_20160815_132128.jpg (72.86 KB, 下载次数: 4115)

实际效果图

蓝牙控制RGB灯调试问题解决 > 串口数据错误排查_image_6.webp

IMG_20160815_132139.jpg (73.41 KB, 下载次数: 4126)

实际效果图

蓝牙控制RGB灯调试问题解决 > 串口数据错误排查_image_9.webp

)9)GBBA5(S@8%IZ5U6$)YHV.png (18.91 KB, 下载次数: 4032)

arduino串口图

蓝牙控制RGB灯调试问题解决 > 串口数据错误排查_image_12.webp

ALD$`IXO3$E(9O_MW}HY375.png (23.53 KB, 下载次数: 4133)

arduino串口图

蓝牙控制RGB灯调试问题解决 > 串口数据错误排查_image_15.webp

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(3)
凌风清羽
凌风清羽
开始学习啦,哈哈~~~~~~
dsweiliang
dsweiliang
学习学习
luna
luna
围观一下,这是你自己写的代码吗?
colibytwo
colibytwo
作者
回复luna
。。。恩啊。。。。
- 没有更多了 -