用arduino和HC06模块手机远程控制LED小灯固定三档亮度-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2906|回复: 9

[未解决] 用arduino和HC06模块手机远程控制LED小灯固定三档亮度

[复制链接]
发表于 2021-5-13 19:10 | 显示全部楼层 |阅读模式
写程序的时候想着先能控制一个固定亮度,然后成功了,但是另外两档亮度加上去后就不行了
这是可以控制一档固定亮度的代码:
int brightness;  //LED亮度变量
int serialData;  //串口数据变量

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(11, OUTPUT);
}

void loop(){analogWrite(11,brightness);
  if( Serial.available()>0 ){           
    serialData =  Serial.parseInt();   
    Serial.print("serialData = "); Serial.println(serialData);  
    if (serialData >=0 && serialData <= 255) {  
      if (serialData = 1){     
        for (brightness; brightness <= 255; brightness=85){
          analogWrite(11, brightness);
          Serial.print("serialData = "); Serial.println(brightness);  
          delay(5);
        }      
      }
    }     
  }   
}
然后把另外两档加上去就不行了:
int brightness;  //LED亮度变量
int serialData;  //串口数据变量

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(11, OUTPUT);
}

void loop(){analogWrite(11,brightness);
  if( Serial.available()>0 ){           
    serialData =  Serial.parseInt();   
    Serial.print("serialData = "); Serial.println(serialData);  
    if (serialData >=0 && serialData <= 255) {  
      if (serialData = 1){     
        for (brightness; brightness <= 255; brightness=85){
          analogWrite(11, brightness);
           if (serialData = 2){     
        for (brightness; brightness <= 255; brightness=175)  if (serialData = 3){     
        for (brightness; brightness <= 255; brightness=255) Serial.print("serialData = "); Serial.println(brightness);  
          delay(5);
        }      
      }
    }     
  }   
}}}
求大神指点!
发表于 2021-5-14 10:20 | 显示全部楼层
int brightness;  //LED亮度变量
int serialData;  //串口数据变量

void setup()
{
  Serial.begin(9600);   
  pinMode(LED_BUILTIN, OUTPUT);   
  pinMode(11, OUTPUT);
}

void loop()
{     
  if( Serial.available()>0 )
  {
    serialData =  Serial.parseInt();
    Serial.print("serialData = ");
    Serial.println(serialData);
    if (serialData >=0 && serialData <= 255)
    {
      switch (serialData)
        {
          case 1:
            brightness=85;
            analogWrite(11, brightness);
            break;
          case 2:
            brightness=175;
            analogWrite(11,brightness);
            break;
          case 3:
            brightness=255;
            analogWrite(11,brightness);
            break;
        }
    }
  }
}

或者这个
发表于 2021-5-14 10:16 | 显示全部楼层
int brightness;  //LED亮度变量
int serialData;  //串口数据变量

void setup()
{
  Serial.begin(9600);   
  pinMode(LED_BUILTIN, OUTPUT);   
  pinMode(11, OUTPUT);
}

void loop()
{     
  if( Serial.available()>0 )
  {
    serialData =  Serial.parseInt();
    Serial.print("serialData = ");
    Serial.println(serialData);
    if (serialData >=0 && serialData <= 255)
    {
      if (serialData == 1)
      {
        brightness=85;
        analogWrite(11, brightness);
      }
      if (serialData == 2)
      {
        brightness=175;
        analogWrite(11,brightness);
      }
      if (serialData == 3)
      {
          brightness=255;
          analogWrite(11,brightness);
      }
    }
  }
}
昨天在手机上发的,这次再试试
发表于 2021-5-13 22:35 来自手机 | 显示全部楼层
for (brightness; brightness <= 255; brightness=85)这句有问题
发表于 2021-5-13 22:40 来自手机 | 显示全部楼层
if (serialData >=0 && serialData <= 255) {         if (serialData = 1){           analogWrite(11, 85);}}
发表于 2021-5-13 22:58 来自手机 | 显示全部楼层
int brightness;  //LED亮度变量 int serialData;  //串口数据变量  void setup() {   Serial.begin(9600);   pinMode(LED_BUILTIN, OUTPUT);   pinMode(11, OUTPUT); }  void loop(){analogWrite(11,brightness);   if( Serial.available()>0 ){                serialData =  Serial.parseInt();         Serial.print("serialData = ");                     Serial.println(serialData);         if (serialData >=0 && serialData <= 255) {                if (serialData = 1){                       brightness=85;                  analogWrite(11, brightness);               }              if (serialData = 2){                       brightness=175;                  analogWrite(11,brightness);              }             if (serialData = 3){                      brightness=255);                 analogWrite(11,brightness);              }           delay(5);         }             }    } 试试这个,语句里也可以用case来判断
 楼主| 发表于 2021-5-14 09:45 | 显示全部楼层
myself1820 发表于 2021-5-13 22:58
int brightness;  //LED亮度变量 int serialData;  //串口数据变量  void setup() {   Serial.begin(9600) ...

大哥,还是不行,我在后面delay(5)又加了个 Serial.print("brightness = "); Serial.println(brightness); ,然后用手机发送123,还是只有一个亮度是最高亮度255
 楼主| 发表于 2021-5-14 15:19 | 显示全部楼层
myself1820 发表于 2021-5-14 10:16
int brightness;  //LED亮度变量
int serialData;  //串口数据变量

谢谢大哥,这次可以了
 楼主| 发表于 2021-5-14 15:22 | 显示全部楼层
myself1820 发表于 2021-5-14 10:16
int brightness;  //LED亮度变量
int serialData;  //串口数据变量

大哥能加个好友吗
发表于 2021-5-14 15:49 来自手机 | 显示全部楼层
Q24906604,我也是新手,相互学习
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 06:26 , Processed in 0.075223 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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