大好きArduino

Arduino総合情報サイト

Arduino概要

8.Arduinoの動作構成

Arduinoのボード内部の接続

Ardunoのボードの内部の接続イメージは下記のような図になります。
左下の黒いムカデ(LSI)がマイコンチップでArduinoUNOではATMega328PというCPUが使われていて、このCPUを中心に配線されています。
※下記の接続図はイメージです。実際の接続とは異なります。

Arduinoボード内部接続図

Arduinoボードを動かす電源

ボードを動作させるためには電源が必要です。
Arduinoではこの電源を3種類の方法で供給することができます。

1.USBポートから
PCでプログラムを組みダウンロードするためのUSBケーブルを通しPCから+5Vとマイナス(グランド)を接続しています。
ケーブルが接続されている間ずっと電源は供給され続けるため正常に動作します。

2.DCジャック ACアダプタから
ArduinoプログラムはPCからUSBを通してダウンロードした後は、組んだプログラムはCPU内に焼きこまれます。
そのため、その後はUSBケーブルを抜いてボード単独で動作させることが可能です。
その時にボードを動作させる電源だけをACアダプタから供給します。
ACアダプタは+6V~12Vのアダプタを利用します。

3.ポートに直接5V
左側のポートの上から8番目、VINという端子に+5Vを入力することでも動作が可能です。
その場合当然ですが、+5Vを供給した電源のマイナス側はこのボードのGNDというポートに接続します。

Arduinoからもらえる5Vと3.3V

左側のポートの上から4番目・5番目に3.3Vと5Vと表記されています。
これは上図で示したように、このボードから外の何かへ与える電源を取ることができます。
外部との接続は当然この電源とボード上にあるGND(マイナス)が必要になりますから気を付けましょう。

なぜ5Vと3.3Vがあるのか?

Arduinoなど小さなマイコンのほとんどは+5Vか+3.3Vで動作します。
そのため、マイコンに接続するセンサーや様々な部品も+5V用があったり+3.3V用があったりします。
それらを自由に選んで使用できるようにArduinoには親切に2つの電源が出されています。

右側のデジタルポート(D0-D13)

ここはデジタルポートと呼び、ここには+5Vまたは+3.3Vか0V(GND)の出力と入力を行います。
つまりデジタルの世界でいう、1か0か、HIGHかLOWかです。
簡単に言うとON/OFF信号の出力です。

デジタルポートは実はただのスイッチなのです。

Arduinoには digitalWriteという命令があり、D0-D13までの好きなポートに1か0か...つまり+5V/3.3Vか0Vかを簡単に出力することができます。
記述は digitalWrite(0,HIGH)...D0に5Vを出力  digitalWrite(0,LOW)...D0に0Vを出力とします。
しかし、実際には単純に中でスイッチの切り替えだけを行っているのです。
下記にその図を示します。(アニメーションで示します)

board_connect_moveこの図の真ん中灰色のBOXがマイコンです。
そして、このマイコンはUSBから+5Vとマイナス(GND)で電源をもらっています。

この図で、USBからの+5Vは常に内部の青いポートスイッチまでは達しています。
そしてマイナス側(GND)も内部の青いポートスイッチまで達しています。

そしてマイコンにdigitaklWriteという命令で、緑色の接点が+5V側と接続するか、マイナス側(GND)と接続するかが決まり、電気が流れたりとまったりすることでLEDへの電源コントロールをしています。

上側D1のスイッチの場合、digitalWriteでHIGHを出力した場合D1では5VがLEDの-側の足に接続します。もう一方のLEDの足には常に5Vが供給されていますので、LEDの両足に5Vが加わり、-が存在しないためLEDは点灯できません。
反対に、digitalWriteでLOWを指定すると、緑のスイッチ接点はマイナス側(GND)に接続されるため、LEDの-がちゃんとマイナス側とつながり、電気がLEDに正しく供給されて光ることになります。

下のD0の場合はその逆の論理をしめします。

ですから、ちょっとやり方はイリーガルですが、D1にLEDの片方、D0にLEDのもう片方を接続し、LEDの+側足のポートにHIGHを出力し、LEDの-側足のポートにLOWを出力してやれば、当然LEDは光ります。

デジタルポートは出力だけではなく、入力としても使用できます。

左側A0-A5までのアナログポート

アナログポートは1か0かだけの判断では済まないもを制御するためのポートです。
例えば、温度センサーなどの値は0か1かでは温度をつかむことができません。
その場合、温度センサーから出力される値を細かくキャッチできなくてはなりません。
そのために必要なのがこのアナログポートなのです。

アナログポートでは、ここに接続されたセンサーからの出力をなんらしかの方法でキャッチし、0-1023までの数値(1024段階)で受け取ります。

なんらしかの方法というのが実はミソで、実際には0~5Vもしくは0~3.3Vまでの電圧を受けます。5Vか3.3Vかはそのボードが何Vで動作しているのかですが、Arduinoのほとんどは5Vです。

例えば、後に出てくるCdsセンサー(光センサ)は光の強さによって抵抗値を出力してきます。
明るいと抵抗値は低く、暗いと高い抵抗値を出力します。

そのため、この抵抗値を利用して電圧を変化させる仕組みにしてやると、光の量によって例えば0~5Vまでの電圧が出力されることにし、これを0-1023までの変換された数字でキャッチすることができるようになります。

回路図のイメージ

以上がArduinoボードの基礎的な概要です。
また、回路図では見慣れない表記でかなり戸惑うと思います。
特に文系の方では、電源はプラスとマイナスであり、GNDなんて表現ははじめてだと思われます。
すこしなれに時間がかかりますが、下記のような図を思い出しながら考えてみてください。
少しはわかりやすくなるかもしれません

micon

-Arduino概要