Arduinoで組み込みソフトを体験しよう 〜スイッチ2~

  • このエントリーをはてなブックマークに追加
  • LINEで送る

前回はスイッチを利用して電気の流れについて確認しました。

今回はスイッチからの入力をArduinoを通じて判定します。テキストArduinoをはじめようはP036を参照してください。

スイッチでLEDを制御

今回の回路図はこのようになります。
スイッチ02
スイッチは5V電源を介してArduino11ピンに接続しています。スイッチを押す(ON)と11ピンに5Vが供給されます。一方LEDは5V電源から抵抗を介し10ピンに接続されています。10ピンがHIGH(5V)の時は電位差が0になるので電流が流れずに消灯します。10ピンがLOW(0V)の時は電位差が5Vとなり、電流が流れて点灯します。

実際の接続はこのようにしました。
wpid-dsc_0264.jpg

スイッチOFFではLEDが点灯し、
wpid-dsc_0265.jpg

スイッチONではLEDが消灯します。
wpid-dsc_0266.jpg

動画でも確認しましょう。

スイッチでLEDを制御するスケッチ

本件のスケッチはArduinoのスケッチの例(02.Digital−Button)を元にしました。

アレ?と思われた方がいらっしゃるかもしれません。オリジナル(スケッチの例)では

となっており、HIGHを出力したときにLED点灯、LOWを出力したときにLEDが消灯しています。私のスケッチとは逆ですよね。
これはLEDの接続が異なるからです。

スイッチ03

上図の左側:アノード(A)を制御すると電源遮断(0V:LOW)でLEDが消灯し、電源供給(5V:HIGH)でLEDが点灯します。反対に図の右側:カソード(K)を制御すると電源遮断(0V:LOW)でLEDが点灯し、電源供給(5V:HIGH)でLEDが消灯します。

制御に向くのはどちらか?

どちらの制御がいいか?の回答の前にテキストP033をご参照ください。ポンプの絵があると思います。
アノード(A)側を制御するということは水の「供給量」を制御するということになります。水を流す時はポンプを一生懸命漕ぎ、水を止めるときはポンプを止めます。
カソード(K)側を制御するということは水の「排出量」を制御するということになります。水を流すときは水路(ホース口など)を開き、水を止めるときは水路を閉じます。
どちらが楽でしょうか?より楽な方がいいのは人だって機械だって電気だって一緒です。以上の理由で私は後者(出口制御)を推奨します。

ちょっとひとこと
マイコンのピン、電源、なんでもそうですが供給できる量は決まっています。マイコンのピンが出力できる電流は仕様書に必ず記載されています。電源は○○A(アンペア)もしくは△△W(ワット)と記載がありますよね。大量の電流を消費する素子がつながった場合、マイコンのピンでは供給量を満たせないケースがありので注意が必要です。
また、供給すると言うことは仕事をすることに他ならないので、マイコンのピンから電流を供給した場合、マイコン側にも熱が発生します。
楽をするということは、必要最低限の仕事量で求められる結果を出す(今回はLEDの点灯/消灯)ということなので、決して悪いことではありません。

SNSでもご購読できます。

スポンサー リンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください