戻る

21 スイッチでLEDを点滅させる

回路かいろ

Arduino と抵抗(1kΩ茶黒赤金, 1kΩから10kΩ(茶黒橙金)ぐらいならよい)とスイッチを用意します。図のスイッチはタクトスイッチです。回路図のように Arduinoの2番ピンとスイッチの片方の足、抵抗の片方の足の3つをつなぎます。 スイッチの反対の足はグラウンド(GND)へ、抵抗の反対の足は5Vへつなぎます。 スイッチの向きを90度間違えると動作しないので注意してください。

プログラム

動作どうさ

このプログラムを実行している間にスイッチを押すとArduinoボード上のLEDが点灯し、スイッチから手を離すとLEDが消灯します。 プログラムを止めるにはCtrl+Cを使います。

解説かいせつ

ここで使っている回路ではスイッチを押していないと2番ピンの電圧が5Vに、 スイッチを押すと0Vになります。 これをプログラムで判断するにはdigitalReadを使います。 digitalReadはピンを指定すると入力の状態を確認します。 それをif文で判定しています。

  if (digitalRead(2) == LOW) {
    digitalWrite(13, HIGH);
  } else {
    digitalWrite(13, LOW);
  }
if文は括弧内の式が成り立つなら、一つ目の{と}で囲まれた範囲を実行し、成り立っていないなら、2つ目の{と}で囲まれた範囲を実行します。 ここでは == を使っているので、左のdigitalRead(2)の値(2番ピンの値)と右のLOWと等しいなら1つ目の
    digitalWrite(13, HIGH);
を実行するのでスイッチを押したときにLEDが点灯し、等しくないなら
    digitalWrite(13, LOW);
を実行するのでスイッチから手を離すとLEDが消灯します。

if 文は、今のdigitalReadの値を確かめたら、すぐに終わってしまうので、for文で全体をずっと繰り返します。

ためしてみよう


戻る
(c) 2014-2015 N. Mitsunaga
サンプルプログラムの著作権は放棄します。fritzingで作成した図は、そちらのライセンスに従って再配布して構いません。