Arduino と抵抗(1kΩ茶黒赤金, 1kΩから10kΩ(茶黒橙金)ぐらいならよい)とスイッチを用意します。図のスイッチはタクトスイッチです。回路図のように Arduinoの2番ピンとスイッチの片方の足、抵抗の片方の足の3つをつなぎます。 スイッチの反対の足はグラウンド(GND)へ、抵抗の反対の足は5Vへつなぎます。 スイッチの向きを90度間違えると動作しないので注意してください。
このプログラムを実行している間にスイッチを押すとArduinoボード上のLEDが
スイッチを押すと2番ピンがLOWになり、一つ目のif文の中身が実行されます。
if(digitalRead(2)==LOW) { s=s+1; if(s>2) s=0; delay(20); while(digitalRead(2)==LOW) {} }まずsに1を足し、sが2を超えているなら(3以上)sを0にします。これでsが0→1→2→0→1→2→0→…と変わります。その次の行で20ミリ秒(20/1000秒)待っています。これはスイッチを押してすぐはオンとオフを高速に切り替わる現象(チャタリング)に反応しないためです。20ミリ秒ぐらい待つと安定します。それからwhile文でスイッチが押されている間、何もせずに待っています。スイッチから手を離すと{と}で囲まれた範囲は終わりです。
残りの部分ではsの値に応じて、0ならLEDを消灯、1ならLEDを点灯、2ならLEDを1回点滅しています。
先頭の
int s = 0;は変数sの宣言と0の代入を1行で済ませています。