ホーム < 電子工作やってみた


Arduino編

その2 ArduinoでLEDピカー!


 さて、箱を開けるだけで1章使ってしまった前章(^-^;。本章ではさっそく回路を組んでみます。ArduinoはUSBに接続した段階で電源として使えるようなので、作ってみる編その1同様にLEDをピカーっと光らせてみます。



@ Arduino UNO R3のスペック

 さて…Arduinoの使い方をどこで手に入れるかですが、本家のHPのArduino UNO R3の製品情報に頼りになる情報がありました。まずはスペックです:

マイクロコントローラ ATmega328
操作電圧 5V
入力電圧(要求値) 7-12V
入力電圧(限界幅) 6-20V
デジタルI/Oピン数 14 (内6つはPWM出力)
アナログ入力ピン数 6
I/Oピン毎の直流電流 40 mA
3.3V用ピンの直流電流 50 mA
フラッシュメモリ 32 KB(ATmega328)内0.5KBはボードが占有
SRAM 2 KB (ATmega328)
EEPROM 1 KB(ATmega328)
クロック速度 16 MHz

本家HPにあるスペックを訳した物です。これを見ると電圧は5Vで提供され、デジタルピンが14本、アナログピンが6本あるようです:

電源に3.3Vもあるようです。基板にUSBを繋ぎ、Powerにある3.3VとGNDの間の電圧をテスターで調べると確かに3.3Vありました。もちろん5V側もちゃんと5V(^-^)。

 ロゴの上側にはデジタル入出力用のピンがずらっと14個並んでいます。左端はGND。一方下側には6個のアナログ入出力用のピンがあります。これらのピンからの情報をまとめているのが真ん中下のゲジゲジ(ATmega328)。

 このATmega328のスペックとしてフラッシュメモリ32KBとあります。フラッシュメモリはその名の通りフラッシュ(揮発)できるメモリです。電源を落としてもデータを保持できます。データのやりとりに良く使われるUSBメモリスティックなどはフラッシュメモリの典型です。作成したプログラムはここに書き込まれます。それをフラッシュするとまた別のプログラムを書き込めるという事です。32KBは正直昨今のPCスペックからするとスズメの涙程に小さく感じるかもしれませんが、一つのプログラムだけと考えるとわりと使えるサイズです。どこまでできるか楽しみです。

 SRAM(Static Random Access Memory)は「揮発性メモリ」という奴で、読み書きができるメモリなのですが、電源が切れると消えてしまいます。つまりこのメモリはプログラムが動いている時に一時的に使われる値を保持するのに使用される訳です。これは2KB用意されています。

 EEPROM(Electrically Erasable Programmable Read-Only Memory)はフラッシュメモリと同様に電源を落としてもデータを残せる「不揮発性メモリ」なのですが、フラッシュメモリが一度に消して一度に書き込みするのに対して、EEPROMはバイト単位で上書きができます。読み書きの回数に制限があるため、プログラム内で使われる固定的なデータなどを格納するのに使われます。

 この辺りはプログラムを作る段階で見えてくるかもしれません。

 クロック速度はプログラムの動作速度です。昨今のPCが3GHzくらいで動くのに対して16MHzですから相当に「遅い」ので、そういう前提のプログラムを組む必要がありそうです。



A LEDを光らせて見よう

 さて、ではArduinoが提供してくれる電力を使ってLEDを光らせて見る事にします。キットに入っていたLEDは多分2Vくらいの電圧が定格かなと思います。Arduinoの電圧の3.3V側を使うとすると電圧がオーバーしてます。つまり「抵抗」を挟む必要があります。

 3.3V用ピンの直流電流は50mAとありました。ここまでの状況をまとめるとこうなります:

 抵抗の間の電圧は1.3Vになるはずで、ここに50mAの電流が流れるには、オームの法則から26Ωの抵抗値があれば良いはずです。…のですが、スターターキットの中の抵抗は一番低い物でも270Ωでした。そして今手元にある他の抵抗は、作ってみる編その1で購入した47Ωの抵抗のみ…。んー、どうしよう。

 仮にその47オームの抵抗を入れたとすると、その間には47×0.05=2.35Vの電圧がかかるはず。という事はLED側には約1Vの電圧がかかる計算になります。…まぁ、とりあえずそれでテストしてみよう(^-^;

 こういう「テストしてみよう」という時に超便利なのが「ブレッドボード」。プスプス電子部品を挿すだけというパズルを組み立てるような気軽さで回路を作れます。さっそく上の回路図にあるスイッチ、抵抗、LEDをブレッドボード上に直列に並べてみます:

 ブレッドボードは以下の緑色の線で示したラインがすでに通導しています:

実際は上の写真のようにもっと横方向に穴が並びます。これをうまく利用して部品をプスプス挿していくわけです。写真ではタクトスイッチがOFFになっているので光りません。スイッチを押し込むと〜:

ピカー!(^-^)/。凄く簡単に回路が組めてしまいました。意外としっかり光りましたねぇ。LED間の電圧を計ってみるとほぼジャスト2Vでした。ん?何故だろう…。電源電圧は3.3Vだし、抵抗は間違いなく47Ωだったし…。試しに抵抗を外して通電してみたら…あ!LED壊れた(^-^;;;

 ま、まぁ、LEDが1個お亡くなりになりましたが、とりあえず光ったと。ユニバーサル基板を使って乾電池から電気を取った作ってみる編その1よりはるかに楽に回路の実験ができました。ブレッドボード最高。

 とはいえ、ここまではArduinoが単なる電源でしか機能していません。次章では、いよいよプログラムを組んでこのLEDを指定の時間間隔で点滅させてみる実験です。