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;
}
0 件のコメント:
コメントを投稿