SWを押すと点灯したLEDが増える

プログラム例)
D8番に接続されたタクトスイッチS1を押すとLEDの点灯数が1個ずつ増えていくプログラム。全点灯時にS1を押すと全部消灯させる。タクトスイッチS1は押した時にLOWとなるように接続し、10kΩの抵抗器でプルアップしておく。

//SW1(D8番)が押されるとLEDの点灯数が増えるプログラム
//5回目が押されると全部消灯させる

int a = 0 ;
int i ;

void setup() {
  pinMode(8, INPUT);      // 入力に設定
  pinMode(10, OUTPUT);    // 出力に設定
  pinMode(11, OUTPUT);    // 出力に設定
  pinMode(12, OUTPUT);    // 出力に設定
  pinMode(13, OUTPUT);    // 出力に設定
}

void loop() {
  if(digitalRead(8)==LOW){a++;}       //押されたときにaに1を加える
  while(digitalRead(8)==LOW){         //離すのを待つ
    if(digitalRead(8)==HIGH){break;}  //上りエッジで進む
  }
  if(a==1){digitalWrite(10,HIGH);}  //aが1の時は10番点灯
  if(a==2){digitalWrite(11,HIGH);}  //aが2の時は11番点灯
  if(a==3){digitalWrite(12,HIGH);}  //aが3の時は12番点灯
  if(a==4){digitalWrite(13,HIGH);}  //aが4の時は13番点灯
  if(a==5){                         //aが5になった時の処理
    a = 0;                          //aをゼロにする
    for(i=10;i<=13;i++){            //繰り返し処理で全消灯
      digitalWrite(i,LOW);
    }
  }
  delay(100);                       //待機
}
//ここまで

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

*