Arduinoと戯れてみる!

Arduino 入門 番外編 04 【アナログ出力 とは】

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

Arduino 入門
番外編 04
【アナログ出力 とは】

こんにちはomoroyaです。

今回は、Arduino 入門 番外編 04 アナログ出力 とはです。

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

本日は、arduinoのアナログ出力についてです。

 

その前に、arduinoの外観とピン配置を確認することをおすすめします。

デジタル出力、入力に関してはこちらを確認ください。

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

 

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

 

 

Arduino入門編の解説にて使用しているArduinoは互換品です。

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

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

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

 

正規品の本体単品がほしい方はこちらとなります。

 

 

スポンサーリンク

Arduino アナログ出力ピン

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

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

外観図右下のデジタル3,5,6,9,10,11がアナログ出力ピンになります。

arduino_uno_R3-appearance

アナログ出力ピンといっても、アナログチックに好きな電圧を出力できる!

というわけではありません・・・。

なぜなら、UNOの出力ピンはアナログ出力には対応していないからです。

あくまでも疑似的にアナログ出力をさせることになります。

その方法がPWM(パルス変調)です。
※PWM:Pulse Width Modulation

 

PWM(パルス変調)

PWMは、0Vと5V(0Vと3.3V)を周期的に切り替えながら、疑似的に0V~5V(0V~3.3V)の間の電圧を作り出す方式です。

例えばLEDの明るさを変えたいというときに使用します。

周期的に繰り返される波形があったとします。

5Vになっている期間が長ければ、LEDは明るく点灯。

0Vになっている期間が長ければ、LEDは暗く点灯します。

実際は、LEDに通電している時間を変えているだけで、電圧を変えているわけではありません。

しかし、人間の目には明るさが変わって見えるのです。

波形例を下記に示します。

1/500秒はPWM周波数490Hzを時間換算したものです。
※実際には1/490秒、約2m秒(1/500)

arduino-extra-edition-04-01

例えば上の真ん中の波形は、ON時間50%、OFF時間50%となっています。

この電圧を平均化すると下記に示すように50%の電圧を得ることができます。

5V×0.5+0V×0.5=2.5V

このようにして、ON時間、OFF時間の比率を変えることによって疑似的にアナログ出力を出しているわけです。

なお、このON,OFFの時間の比率をデューティー(Duty) といいます。

 

モードの設定

アナログ出力を使用する場合は、まずpinMode()で出力指定をする必要があります。

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

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

pinMode( 3, OUTPUT );

 

analogWrite()を使用する場合、pinMode()の設定は省略することもできます。

 

アナログ出力

アナログ出力は、外観図のデジタル3,5,6,9,10,11の端子が対応しています。

指定したピンからは使用する「電源電圧」、「0V」のPWM信号を出力することができます。
※電源電圧は5V、3.3V

 

また、PWMの周波数はピンによって下記となります。

ピン番号(デジタル)PWM周波数[Hz]
3,9,10,11490(約0.002秒 ⇒ 約2m秒)
5,6980(約0.001秒 ⇒ 約1m秒)

 

各端子に動作させたい部品を接続することで、PWMの信号を与えて制御することになります。

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

analogWrite(ピン番号,値)
ピン番号:使用するピン番号を指定
値:デユーティ比(0~255※整数)

残念なことに、値の部分が%ではなく、0~255となっています。

対応は下記となります。

%表示値(デユーティ比)
00
50128
100255

計算で求める場合は以下で計算できます。※5Vの場合

出力したい電圧から引数の値を求めたい場合
255 ÷ 5V × 出力したい電圧[V]
※計算した値は整数に丸め込む
出力したい割合[%]から引数の値を求めたい場合
255 × 出力したい割合[%] × 100
※計算した値は整数に丸め込む

 

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

引数の計算:255 ÷ 5V × 2V = 102

analogWrite( 3, 102 );

 

簡単なサンプルコードがこちら。

//sample code
int OutPutPWM_pin =3;
int i = 0;
float V_Out = 2;

void setup(){
pinMode( OutPutPWM_pin, OUTPUT );
i = 255/5*(int)V_Out;
}

void loop(){
analogWrite( OutPutPWM_pin, i );
}

 

Arduino 入門のLesson編にてanalogWrite()を使った実践を解説しています。

ダイオードの輝度を制御する実践です。

ぜひ、実際に試して遊んでみてください。

綺麗な色の変化を確認することができます。

 

次回の番外編 05は【アナログ入力】の解説を予定しています。

Arduino 入門 番外編 05 【アナログ入力 とは】
今回は、「Arduino 入門 番外編 05 アナログ入力 とは」です。arduino 入門 番外編はarduinoの基本的なことを書いていく方向性にする予定です。今回は、arduinoのアナログ入力について解説していきます。…

 

最後に

疑問点、質問などありましたら気軽にコメントください。

この電子部品の解説をしてほしい!などなどなんでもOKです。

リンク切れ、間違いなどあればコメントいただけると助かります。

 

Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。

 

Arduino入門編で使用しているUNOはAmazonにて購入可能です。

互換品とは言え、Arduinoはオープンソース。

複製して販売するのもライセンス的に問題なし。

 

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

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

 

学習用、遊び用、お試し用には安価な互換品がおすすめです。

 

 

上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。

 

Amazonでお得に買う方法

Amazonでお得に購入するなら、Amazonギフト券がおすすめです。

現金でチャージするたびに、チャージ額に応じたポイントが付与されます。

最大2.5%!!!(Amazonプライム会員ならさらにお得)

チャージ額(一回分)一般プライム会員
5,000円~19,999円0.5%1.0%
2,0000円~39,999円1.0%1.5%
40,000円~89,999円1.5%2.0%
90,000円~2.0%2.5%

さらに、初回チャージで1000ポイントもらえるキャンペーンも実施中!

\Amazonギフト券 1000ポイントキャンペーン/
Amazonチャージ 初回購入で1000ポイントキャンペーン

 

補足情報
コンビニ・ATM・ネットバンクが対象
購入は1円単位で可能

コメント

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