重い腰を上げて8周遅れのArduino 3(サンプル:DigitalReadSerial )
前回に引き続き、いまだに重い腰を上げてArduinoのスケッチ例を試してArduinoの使い方を学んでみる。今回はDigitalReadSerial を動かしてみる。毎日少しずつの進捗なのは容赦してほしい。
スケッチ例:DigitalReadSerial
スケッチを起動する
前回と同様に、ファイル➡スケッチ例➡01.Basic➡DigitalReadSerial をクリック
場所がわからない場合は前回記事を参照
DigitalReadSerialを起動したら下の画面が起動する。
スイッチを接続するピンはデフォルトでは2番に設定されているが、変更したい場合は下図に示した箇所で数値を2から変更すればよい。
このスケッチ例はデジタル入力(0,1)をシリアル出力するもので、Pin2にスイッチを繋げてON,OFFの状態をシリアルモニタで確認することができる。今回は内部プルアップ機能を使わないので、外部でプルアップ(もしくはプルダウン)してスイッチを繋げる必要がある。また、setup関数で "pinmode(2,INPUT)" と記述することでPIN2をINPUTと設定でき、PIN2のデジタル入力の値は "digitalRead(2)"の戻り値として読み出すことができることがわかる。
回路図
ブレッドボードで製作する回路は下の図の左右どちらかとなる。2通りの回路図がある理由はスイッチを押したときにPin2の電圧を5Vとするか0Vとするかの2通りの選択肢があるからだ。今回のDigitalReadSerialでは、どちらでも問題ない。他の回路ではスイッチの故障等が考えて安全側で設計する必要がある。
プルアップ・プルダウン
左図のR1を「プルアップ抵抗」と呼び、スイッチが解放状態のとき(押してないとき)にPIN2の電圧を5Vで安定させるために5Vとデジタル入力ピンの間に接続する。5Vや3.3Vのような+電源側とデジタル入力ピンの間に接続することを「プルアップする」と言う。反対に右図のようにGNDとデジタル入力ピンの間に抵抗を接続して、スイッチを+5Vとデジタル入力ピンの間に接続することを「プルダウンする」と呼び、その抵抗を「プルダウン抵抗」と呼ぶ。
配線後写真
スイッチを押したらPIN2の電圧が5Vとなるようにプルダウンした回路をブレッドボードで配線した写真を下に示す。
実行結果
配線後にDigitalReadSerialを実行した結果の動画を下に示す。プログラムを実行後シリアルモニタを起動したら、0もしくは1が出力され続ける。この0と1がPIN2の電圧レベルを示している。スイッチを押したら画面の数値が1となり、スイッチを離したら0となることがわかる。
8周遅れのArduino - DigitalReadSerial
まとめ
今回は前回のアナログ入力とは異なり、デジタル入力を試してみた。デジタル入力はマイコンプログラムを構築するために必須なのでどのマイコンでも簡単に設定できるが、Arduinoではピンごとの設定で少しめんどくさい。ピンごとの設定のみでポートごとの設定はないのか今後調べる必要がある。(そもそもArduinoにポートという概念がない気もするし、ピンの数も少ないのであまり問題ないが...)