int i; //阵列资料索引值
int num; //键值
int led[]={3,4,5}; //数位接脚 3~5 连接三色LED三个引脚
int status[]={0,0,0}; //LED 状态
int markpin = 12; //LED 状态
void setup()
{
Serial.begin(9600);
Serial.println("Press a~c toggle LED status");
pinMode(markpin,OUTPUT);
digitalWrite(markpin, LOW);
for(i=0;i<3;i++)
pinMode(led[i],OUTPUT);
for(i=0;i<3;i++)
digitalWrite(led[i],LOW); //设定 LED 初始状态为暗
}
void loop()
{
if(Serial.available()>0) //有无输入
{
num=Serial.read(); //读取按键值
num=num-'a'; //按键值转成数值
if(num>=0 && num<=2) //按键 a~c?
{
status[num]=!status[num]; //改变 LED 状态
Serial.print("LED Status : ");
for(i=0;i<3;i++) //显示 LED 状态
{
if(status[i]==1)
Serial.print("1");
else
Serial.print("0");
}
Serial.println();
}
}
displayLED(); //LED 显示副程序
}
void displayLED()
{
for(i=0;i<3;i++) //点亮状态为 1 的 LED
{
if(status[i]==1) {
digitalWrite(led[i],HIGH);
digitalWrite(markpin,HIGH);
delay(1000); // 1000ms后关闭
digitalWrite(led[i],LOW);
digitalWrite(markpin,LOW);
status[i]=0;
} else {
digitalWrite(led[i],LOW);
}
}
delay(100); //延迟 100ms
}