arduino——串口控制RGB LED(笔记)

2020-03-01  本文已影响0人  猛犸象和剑齿虎

实验目标

串口调光的全彩LED灯,通过串口数据使LED显示各种不同的颜色。

材料

UNO板,面包板,1个共阳极的RGB LED,3个220欧电阻。

线路图

image.png

方法解析

使用9,10,11三个带有PWM输出功能的引脚分别调节RGB三种颜色发光。
arduino接收到的只是一个字符串,需要做的工作是将该字符串的英文部分和数字部分分离开,用英文部分选择控制PWM调光引脚,用数字部分来指定PWM的数值。

代码


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();
    //如果是英文则存到变量LED中,如果是中文则存到inString中
    if(isDigit(inChar))
    {
      inString+=inChar;
      }
    else if(inChar == '\n')
    {
      stringComplete = true;
      i= inString.toInt();
      }
     else LED=inChar;
    }
  }

实物图

由于在串口输入数据,录制有点晃
上一篇下一篇

猜你喜欢

热点阅读