プッシュボタンでArduinoへデジタル入力。LEDを点灯・消灯します。
目次:
今回の目的
ELEGOOのチュートリアルのスケッチそのままです。
プッシュボタン操作によるArduinoへデジタル入力によって、LEDを点灯・消灯させます。
※チュートリアルの文章(PDF日本語版含む)もスケッチもELEGOOのサイトから無料でダウンロードできました。
「プッシュスイッチ」
ELEGOOのキット付属品です。言葉で表すなら「単極単投」、「a接点」、「NO(Normally Open)」になると思いますが、回路で見るのが一番わかりますね。
端子が4つあるのでどこが接点になっているのか要注意です。
器材接続
チュートリアルに図があるので省略しますが、Arduinoの(デジタル)入力端子2つがそれぞれのプッシュスイッチを介してGNDに接続します。
(通常状態で両入力はOPEN。プッシュスイッチ押された側の入力端子はGNDにつながる)。
Arduinoの出力端子から220Ω抵抗を介して、赤LEDのアノード(+)に接続。カソードはGNDに接続しております。
スケッチ
片方のボタンスイッチを押したらLEDが点灯して、もう片方のボタンスイッチを押したらLEDが消灯します。
入力の識別は「digitalRead」関数で実現できます。
digitalRead(pin)
pin:入力ピンの番号
戻り値:HIGH または LOW
出力は「digitalWrite」関数で実現できます。
digitalWrite(pin,value)
pin:出力ピンの番号
value:HIGH または LOW
それではスケッチです。
ELEGOOからダウンロードしたスケッチをそのまま書き込みます。
流れを言葉で書くと次のようになります。
両入力のプルアップに設定(High入力になる)
→ボタンスイッチを押す
→押した方のボタンスイッチがGNDにつながる
→押した方の入力がプルアップを打ち消してGND(Low)電位に下がる
→入力Low時に設定した出力(HighなりLowなり)をLEDのアノードへ出力維持する
→LEDが点灯なり消灯なりの状態を維持する
<略>
boid loop() //以下を延々と繰り返す
{
if(digitalRead(Apin)==LOW) //入力"Apin"側プッシュスイッチ押されたら
{
digitalWrite(LEDpin,HIGH); //出力"LEDpin"にHIGH出力する
}
if(digitalRead(Bpin)==LOW) //入力"Bpin"側プッシュスイッチ押されたら
{
digitalWrite(LEDpin,LOW); //出力"LEDpin"にLOW出力する
}
}
余談
こうしてLEDを動かして数日後、この短いスケッチを思い返せない自分に気づきました。
0 件のコメント:
コメントを投稿