极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

123
返回列表 发新帖

蓝牙控制LED灯的亮度问题

[复制链接]
 楼主| 发表于 2014-2-7 10:17:43 | 显示全部楼层
非常感谢邵兄帮忙!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-7 10:19:58 | 显示全部楼层
我发现收到超范围的数据是因为上位机在极短的时间里连续发送的结果. 估计修改一下上位机程序就可以了.
回复 支持 反对

使用道具 举报

发表于 2014-10-24 20:54:55 | 显示全部楼层
楼主我爱死你了!要是你弄个控制6路led的出来我就更爱你了
回复 支持 反对

使用道具 举报

发表于 2014-10-24 20:55:50 | 显示全部楼层
对了,顺便帮我看一下这个为什么没作用:
int ledCount = 6; //LED的总数量.
int ledOut[] = { 11, 10, 9, 6, 5, 3};//6个PWM输出,LED从11脚开始到3脚.
int b1;    //1灯亮度.
int b2;    //2灯亮度.
int b3;    //3灯亮度.
int b4;    //4灯亮度.
int b5;    //5灯亮度.
int b6;    //6灯亮度.
byte brigh [] = { b1, b2, b3, b4, b5, b6};  //将6个亮度合成一个数组,方便调用.
int i = 0 ;               //设定一个变量.
void setup() {
  Serial.begin(115200);   //设置串口波特率,使用蓝牙模块时,注意收发引脚交叉(T-R,R-T).
}
void loop() {
  char ch;
  if (Serial.available() > 0) //如果串口数据>0.
  {
    ch = Serial.read();   //读取串口数据到ch中.
    switch (ch ) {
      case '1':           //根据发送的字符'1'-'6',赋值i '0'-'5'.
        i = 0;
        break;
      case '2':
        i = 1;
        break;
      case '3':
        i = 2;
        break;
      case '4':
        i = 3;
        break;
      case '5':
        i = 4;
        break;
      case '6':
        i = 5;
        break;
    }
  }
if (ch = 'z' || ch = "Z")
{
  if (i >= 0 && i <= 6)
  {
    if (ch == 'z' && brigh [i] < 248)   //小写字母'z'用于增加亮度,每次加8
    {
      brigh [i] = brigh [i] + 8;
    }
    if (ch == 'Z' && brigh [i] > 0 )   //大写字母'Z'用于减小亮度,每次减8
    {
      brigh [i] = brigh [i] - 8;
    }
  }
  analogWrite(ledOut[i], brigh [i]);   //
}
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-15 16:15 , Processed in 0.040103 second(s), 16 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表