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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3530|回复: 5

[作者已回复] 【求助】示例中的RGB LED调光为什么所有灯只能调一次

[复制链接]
发表于 2019-8-5 14:09 | 显示全部楼层 |阅读模式
P115页是实验RGB LED调光,实际测试时候每种颜色的灯都只能切换一次是什么情况?
意思就是我发送一次A之后再发送B以后再发送A就不能换成A的颜色了,同理ABC每种颜色实测都只能调一次
代码:
[pre]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;
    }
}[/pre]
发表于 2019-8-5 14:13 | 显示全部楼层
估计是结束符没选对
 楼主| 发表于 2019-8-5 14:16 | 显示全部楼层
coloz 发表于 2019-8-5 14:13
估计是结束符没选对

结束符我选的是换行啊 换别的连一次都设置不了
 楼主| 发表于 2019-8-5 14:19 | 显示全部楼层
本帖最后由 iqianmo 于 2019-8-5 14:20 编辑

结束符的设置
ONZS(J)SUXAS6@]X$U8%~$6.png
发表于 2019-8-5 20:24 | 显示全部楼层
直接输出看看输入的是啥呗
发表于 2019-8-6 08:54 | 显示全部楼层
程序第二行,初始化字符串,双引号中要有空格
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 09:35 , Processed in 0.082404 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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