// LED_onoff_2 // ボタンの状態を監視し、LOWからHIGHに変化した場合だけ、LEDの状態を変更する // int swPrev; // 1つ前のボタンの状態を保持する変数 boolean ledOn = false; // LEDをオンにするかオフにするかを表す変数 int LED = 7; int BUTTON = 2; void setup() { pinMode(LED, OUTPUT); pinMode(BUTTON, INPUT); swPrev = digitalRead(BUTTON); // プログラム開始時のボタンの状態をswPrevに記録する } void loop () { int sw = digitalRead(BUTTON); //ボタンの状態を変数swに格納する // sw がHIGHで、前のsw(swPrev)がLOWの場合のみ、LEDの状態を変更する if ((sw == HIGH) && (swPrev == LOW)) { ledOn = !ledOn; } // swPrev に sw の値を記録する swPrev = sw; // ledOnの値に応じて、LEDを点灯、または消灯する if (ledOn) { digitalWrite(LED, HIGH); } else { digitalWrite(LED, LOW); } }