2011年12月31日土曜日

スイッチを押すとLEDが点灯、もう1回押すと消灯する



配置図


CODE
/* toggle switch
  スイッチを押すとLEDが点灯、もう1回押すと消灯する
 */


int buttonPin = 2;         // 押しボタン
int ledPin = 13;       // 内蔵のLED


int state = HIGH;      // 内蔵のLEDの状態
int reading;           // 押しボタンの読取
int previous = LOW;    // 前回の押しボタンの状態


// 起動されてからの時間なのでlong
long time = 0;         // 前回押された時間
long debounce = 200;   // バウンス時間


void setup()
{
  pinMode(buttonPin, INPUT);
  pinMode(ledPin, OUTPUT);
}


void loop()
{
  reading = digitalRead(buttonPin);


  /*  入力がLOWからHIGHに変わってからノイズなどを無視出来るようになってから出力ピンをOn、Offを切り替え、時間を記録する
 */


  if (reading == HIGH && previous == LOW && millis() - time > debounce) {
    if (state == HIGH)
      state = LOW;
    else
      state = HIGH;


    time = millis();    
  }


  digitalWrite(ledPin, state);


  previous = reading;
}

0 件のコメント:

コメントを投稿