Arduino控制LED灯闪亮顺序(个人感觉代码很渣)

Posted by 橙叶 on Sat, May 5, 2018

想要实现的功能:

 

能够控制一个三色LED灯颜色亮起来的顺序
好像很简单,巧了,我也这么觉得。

然而,搞了半天发现自己的水平真的不行,勉勉强强把功能实现了:

int pinbtn[3]={26,30,34};
int pinled[3]={53,51,49};
int recbtn=22;
int data[3]={};
int rec[3]={};
void setup() {
  // put your setup code here, to run once:
  //pinMode(pin1,INPUT);
  //pinMode(pin2,INPUT);
  //pinMode(pin3,INPUT);
  for (int i=0;i<=2;i++){
    pinMode(pinbtn[i],INPUT);
    pinMode(pinled[i],OUTPUT);
  }
  Serial.begin(9600);
  pinMode(recbtn,INPUT);
  pinMode(13,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  if(digitalRead(recbtn)){
   digitalWrite(13,HIGH);
   for(int i=0;i<=2;i++){
    Serial.print("The ");
    Serial.print(i+1);
    Serial.println(" LED: ");
    digitalWrite(13,LOW);
    delay(50);
    digitalWrite(13,HIGH);
    delay(1000);
    for(int j=0;j<=2;j++){
      if(digitalRead(pinbtn[j])){
        rec[i]=j+1;
      }
     }
   }
  Serial.println(".");
  delay(500);
  digitalWrite(13,LOW);
  Serial.println("Time to see the MAGIC!!!!");
  delay(2000);
  }
  for(int i=0;i<=2;i++){
    Serial.print(rec[i]);

  }
  Serial.println(",");
  for(int i = 0;i<=2;i++){
    digitalWrite(pinled[rec[i]-1],HIGH);
    delay(200);
    digitalWrite(pinled[rec[i]-1],LOW);
    delay(200);
  }
 
}

使用方法:

1.通电后,三色LED灯处于长灭状态,

2.按下recbtn对应的开关,此时13号针脚旁边的板载LED灯亮起,

3.立即按下pinbtn中的一个按钮,等待13号LED灯闪烁,

4.#13LED闪烁一次,立即按下pinbtn中的另一个按钮,等待#13LED闪烁,

5.#13LED再闪烁一次,立即按下pinbtn中的另一个按钮,直到#13LED熄灭,

6.三色LED灯会按照你按键的顺序闪烁不同的颜色。

 

我承认很烂……不过我暂时也没别的办法了。



comments powered by Disqus