Arduinoと戯れてみる!

Arduino 入門 番外編 03 デジタル出力 とは デジタル入力 とは

arduino-extra-edition-03Arduino番外編
スポンサーリンク

「Arduino 入門 番外編 03 デジタル出力 とは デジタル入力 とは」

こんにちはomoroyaです。

今回は、Arduino 入門 番外編 03 デジタル出力 とは デジタル入力 とはです。

arduino 入門 番外編はarduinoの基本的なことを書いていく方向性にしたいと考えています。

本日は、arduinoのデジタル出力とデジタル入力についてです。

その前に、arduinoの外観とピン配置を知っていたほうが良いので番外編 02も併せてお読みください。

arduino自身のことを少しづつ理解して行きましょう。

 

いやいや、arduinoを早速始めたいんだ!というかたは下記の入門編からお読みください。

 

Lessonの解説で使用しているのはArduinoの互換品です。

互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段で豊富な部品が多数ついています。

 

スポンサーリンク

Arduino デジタル出力 デジタル入力 ピン

番外編02のおさらいです。

Arduino UNO R3の外観図を下記に示します。

外観図右下のデジタル0~デジタル13がデジタル出力、デジタル入力のピンになります。

arduino_uno_R3-appearance

デジタルというのは、通常「1」と「0」の2値のことを言います。

Arduinoでは「1」に相当するものが、電圧の高い「5V」であり、「High」と表現します。

また、「0」に相当するものが、電圧の低い「0V」であり、「Low」と表現します。

 

モードの設定

デジタル出力とデジタル入力が同じピンに割り当てられています。

同じピンなのに、出力、入力の区別はどうするの?と思いますよね。

そこで登場するのが次のコマンド。

pinMode(ピン番号,モード)
ピン番号:使用するピン番号を指定
モード:OUTPUTを指定すれば出力、INPUTと指定すれば入力

例 デジタル13(ピン番号13)を出力ピンとして指定する。

pinMode( 13, OUTPUT );

 

デジタル出力

デジタル出力は、外観図のデジタル0~13までの端子が対応しています。

指定したピンからは「5V」、「0V」を出力することができます。

各端子に動作させたい部品を接続することで、「5V」、「0V」を与えて制御することになります。

例えば、LEDを点灯、消灯、モータの回転、停止などの制御が可能です。

使用する制御コマンドは以下です。

digitalWrite(ピン番号,値)
ピン番号:使用するピン番号を指定
値:HIGHまたはLOWを指定。
※HIGHは5V、LOWは0Vを出力を意味する。

例 デジタル13(ピン番号13)に5Vを出力する。

digitalWrite( 13, HIGH );

 

入門のLesson編にてdigitalWrite()を使ったダイオードの点滅を制御する実践の解説をしています。

 

デジタル入力

デジタル入力もデジタル出力と同様には、外観図のデジタル0~13までの端子が対応しています。

指定したピン番号にかかった電圧の状態が「5V」なのか「0V」なのかを判断します。

それによって、「HIGH」、「LOW」を戻り値として返します。

※実際には5Vよりも低い電圧、0Vよりも高い電圧でも「HIGH」、「LOW」の判断はします。

なぜなら、判定するためのレベルをArduino自身が持っており、それより高ければ「HIGH」、低ければ「LOW」と判断するためです。

一般的に、「閾値(しきいち)」や「スレッショルド」などど呼ばれるものです。

Arduinoの場合は、HIGHを判定する閾値は約2.7V、LOWを判断する閾値は約2.1Vに設定されています。

そのため、2.7Vより高ければ、「HGIH」、2.1Vよりも低ければ「LOW」となります。

2.7Vと2.1Vの間は何?っていうことになりますが、閾値を設定する場合は不安定な動作を避けるためにヒステリシスを持たせておきます。

ヒステリシスについては、また別の機会に説明します。

想定の使用例としては、スイッチがオン、オフのどちらの状態にあるのかを知るために利用したりします。

ようは外部の機器の状態を知りたい!

なおかつその判定は高いか低いかの2値で十分!

というときに取利用するということです。

使用する制御コマンドは以下です。

digitalRead(ピン番号)
ピン番号:値を読みたいピン番号を指定
戻り値:HIGHまたはLOW

例 デジタル13(ピン番号13)に5Vを出力する。
※読みだすコマンドのため、読みだした値を格納する変数が必要です。
ここではvalとしています。
intは整数型を定義していて、使用できる値の範囲は-32768から32767です。

int val;
val = digitalRead(13);

記事を書いていて気づきましたが、入門 Lesson編にてdigitalReadを利用した実践解説がまだでした。

いずれアップしますので、少々お待ちください・・・。

アップしましたら更新いたします。

digitalReadを利用した実践解説をアップいたしましたのでお知らせします。

 

次回の番外編 04はアナログ出力の解説を予定しています。

 

コメント

タイトルとURLをコピーしました