【求助】示例中的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:20 编辑
结束符的设置 直接输出看看输入的是啥呗 程序第二行,初始化字符串,双引号中要有空格
页:
[1]