平凡サラリーマンの日々ブログ

サラリーマン奮闘記

⑤Arduinoで楽しもう!

■本記事の内容 (この記事は15分程度で読めます)

目次

11.Arduinoボードについて

Arduino の基板には 大きく
『入出力コネクタ』、『マイコン』、『電源コネクタ』が搭載されています
※細かい部位はここでは省略します

『入出力コネクタ』
Digital – In/Out 『14』 、 Analog – In 『6』 、 Analog – Out 『6』
がUNOにはあり、これらを理解した上でスケッチを記述するようにします

マイコン
ここではさらっとですが
フラッシュメモリはプログラムを書き込んで保存するメモリのこと。
PCでいうと、ハードディスク容量に相当と思ってOKです。
PCと比べると、桁違いに小さいですが、実用上 これで十分です。
PCは 動画のようなグラフィカルな表示データや、音声データなど
大容量が必要となりますが、Arduinoにはないので。

※初代パソコンもこれらと同じ程度のメモリしかなかったようです。

 

f:id:Pandapi:20210718235538p:plain

Arduino UNO 概要

画像2

『電源コネクタ』
Arduino基板へ電源供給します。

①USB端子からの電源供給(5V)
→ プログラムの書き込みが同時に行えるUSB端子
②DCプラグからの電力供給 (7~12V)
→  DCジャックからも電力の供給を行うことができ便利
   ※外形5.5mm/内径2.1mmのセンタープラスタイプのものが使えます。
③外部電源ポートの利用(7~12V)
→  アナログピン横にある【Vin】と書かれているポート

12.デジタル・アナログ の入出力


デジタルは、『離散的』連続的なデータを扱うのがアナログ
アナログは、『連続的』段階的なデータを扱うのがデジタル

「デジタルに比べるとアナログの方が情報量が多い」といわれるのはこのためです。まずこのイメージをもっておくと理解しやすいです。

■デジタル入力
デジタルとアナログそれぞれで入力と出力を行うことができます。イメージは  onかoffかです
digitalRead()を用いて、ピンの状態(ピンに接続している外部機器の状態)が0(LOW)か1(HIGH)

<スケッチの表現>
pinMode(**, INPUT); //**はピン番号
digitalRead(**, HIGH);//**はピン番号

■デジタル出力
ピンに接続した機器にデジタル値を書き出します
digitalWrite()を用いてピンを0(LOW)か1(HIGH)に設定することができます。デフォルトでは、デジタルピンは入力用に設定されているため、出力に用いる際には、pinMode()を利用して設定を変更しておく必要があります

<スケッチの表現>
pinMode(**, OUTPUT); //**はピン番号
digitalWrite(**, HIGH); //**はピン番号

■アナログ入力
ピンに接続した機器が出力するアナログ値(電圧)を読み取ります
analogRead()を用いて、アナログピンにかかっている電圧を知ることができます、
0から参照電圧の1024分の1023倍までの電圧で、この関数は0から1023の数値を返却します。0が0Vに、1024が参照電圧に相当します(が、返却されるのは1023までです)。

<スケッチ表現では>
pinMode(**, INPUT); //**はピン番号
analogRead(**, HIGH);//**はピン番号

「音量」・「温度」・「距離」・「時間」・「重さ」・「速度」・「角度」 などのアナログ入力は、各種センサー(人間の5感に相当)を通して、“電圧”に変換し、その『電圧』を読み取ることで把握できる。

センサーは、信号を電圧に変換し、その電圧をマイコンが読み取ります
アナログ端子からは、アナログ値(電圧)を「0~1023」の合計 1024段階の情報として入力できます

読み出した値×(5V/1024)です。5Vはそのピンの電圧によります。
3.3Vなら、5Vのところが3.3Vになります。

■アナログ出力(PWM出力)
ピンに接続した機器にアナログ値(PWM)を書き出します。電圧の波形が階段のように連続的になるイメージです
Arduino Unoでは、デジタルピンの3番と5番、6番、9番、10番、11番の6本では、アナログPWM出力を行うこともできます。PWMとは、Pulse Width Modulationの省略で、HIGHとLOWとを交互に出力することにより、平均的な電圧を制御するための仕組みです
ArduinoでPWM出力を行うにはanalogWrite()を使います。analogWrite()で指定するデューティー比は、0から255までの整数で、0%が0、100%が255に対応します
※ 3番と5番、6番、9番、10番、11番にはボードに 『~』マークや『PWM』の表記あります。
さきほどのアナログ入力に対して、何ができるってことですがLEDでいえば、好みの明るさに調光させることができたり、モータなどは回転速度を細かく可変できます。

<スケッチ表現では>
pinMode(**, OUTPUT); //**はピン番号
analogWrite(**, HIGH); //**はピン番号

まとめると
スケッチでのデジタルとアナログの違いは 、
・Read が入力
・Writeが出力
・デジタル入力  digitalRead()
・デジタル出力  digitalWrite()
・アナログ入力  analogRead()
・アナログ出力 analogWrite()
です。

 

 


 スケッチのデジタル・アナログのI/O具体例は、今後の記事で後述

次回は、上記アナログ出力の説明でありました、PWMの制御などについて投稿予定です。

ここまで読んでくださり、ありがとうございました。