1.スイッチSW1とLED1の接続関係
LED D1~D4は、Arduinoボードの13ピンから10ピンに接続されています。ピン10~13にLOWが出力されるとLED D4~D1がオンする接続になっています。
またスイッチS1~S3はArduinoボードのA1ピンからA3ピンに接続されています。スイッチをオンするとLOW(アナログ値:0)を読み、オフのするとHIGH(アナログ値:1023)を読みます。デジタルまたはアナログのどちらでも読み取ることができますが、今回はデジタルで読むことにします。
2.スイッチを押すとLEDがオンし離すとオフするプログラム
スイッチS1を押している時だけLED D1がオンし、スイッチを離すとLEDはオフします。その様子が下記のビデオです。
下記がその制御プログラムです。
#define S1 A1 // スイッチS1 A1ピン :モード切替SW #define S2 A2 // スイッチS2 A2ピン :ラップタイマーリセット #define S3 A3 // スイッチS3 A3ピン #define D1 13 // LED D1 1: off, 0: On #define D2 12 // LED D2 #define D3 11 // LED D3 #define D4 10 // LED D4 #define ON 0 // LED is on #define OFF 1 // LED is off void setup () { pinMode(D1, OUTPUT); //LED D1の初期化 digitalWrite(D1, OFF); pinMode(S1, INPUT); } /* Main program */ void loop() { if (digitalRead(S1) == 0) digitalWrite(D1, ON); else digitalWrite(D1, OFF); }
3. 一度スイッチを押すとLEDがオンし、もう一度押すとオフするプログラム
スイッチS2を押すとLED D2がオンします。スイッチを離してもLEDはオフしません。もう一度スイッチを押すとLEDはオフします。その様子が下記のビデオです。
下記がその制御プログラムです。
#define S1 A1 // スイッチS1 A1ピン #define S2 A2 // スイッチS2 A2ピン #define S3 A3 // スイッチS3 A3ピン #define D1 13 // LED D1 1: off, 0: On #define D2 12 // LED D2 #define D3 11 // LED D3 #define D4 10 // LED D4 #define ON 0 // LED is on #define OFF 1 // LED is off byte S2Latch = 0; // boolean D2On = false; void setup () { pinMode(D2, OUTPUT); //LED D2の初期化 digitalWrite(D2, OFF); pinMode(S2, INPUT); } void loop() { if ( digitalRead(S2) == 0) { if (S2Latch == 0) { S2Latch = 1; digitalWrite(D2, D2On); D2On = !D2On; } } else S2Latch = 0; }