【求助】示例中的RGB LED调光为什么所有灯只能调一次-Arduino中文社区 - Powered by Discuz! Archiver

iqianmo 发表于 2019-8-5 14:09

【求助】示例中的RGB LED调光为什么所有灯只能调一次

P115页是实验RGB LED调光,实际测试时候每种颜色的灯都只能切换一次是什么情况?
意思就是我发送一次A之后再发送B以后再发送A就不能换成A的颜色了,同理ABC每种颜色实测都只能调一次
代码:
int i;                        //保存PWM需要输出的值
String inString = "";         // 输入的字符串
char LED = ' ';               // 用于判断指定LED颜色对应的引脚
boolean stringComplete = false; // 用于判断数据是否读取完成

void setup()
{
    //初始化串口
    Serial.begin(9600);
}
void loop()
{
    if (stringComplete)
    {
      if (LED == 'A')
      {
            analogWrite(9, i);
      }
      else if (LED == 'B')
      {
            analogWrite(10, i);
      }
      else if (LED == 'C')
      {
            analogWrite(11, i);
      }
      // 清空数据,为下一次读取做准备
      stringComplete = false;
      inString = "";
      LED = ' ';
    }
}

//使用串口事件
// 读取并分离字母和数字
void serialEvent()
{
    while (Serial.available())
    {
      // 读取新的字符
      char inChar = Serial.read();
      //根据输入数据分类
      // 如果是数字,则存储到变量inString中
      // 如果是英文字符,则存储到变量LED中
      // 如果是结束符“\n”,则结束读取,并将inString转换为int
      if (isDigit(inChar))
      {
            inString += inChar;
      }
      else if (inChar == '\n')
      {
            stringComplete = true;
            i = inString.toInt();
      }
      else
            LED = inChar;
    }
}

coloz 发表于 2019-8-5 14:13

估计是结束符没选对

iqianmo 发表于 2019-8-5 14:16

coloz 发表于 2019-8-5 14:13
估计是结束符没选对

结束符我选的是换行啊 换别的连一次都设置不了

iqianmo 发表于 2019-8-5 14:19

本帖最后由 iqianmo 于 2019-8-5 14:20 编辑

结束符的设置

coloz 发表于 2019-8-5 20:24

直接输出看看输入的是啥呗

lincolnty 发表于 2019-8-6 08:54

程序第二行,初始化字符串,双引号中要有空格
页: [1]
查看完整版本: 【求助】示例中的RGB LED调光为什么所有灯只能调一次