Arduino夏休み<架空>ワークショップ 3回で読み切りの最終回「Lチカ」

 Arduino UNOとLED(秋月電子通商で購入した)が用意できました。Arduinoの電源はPCと通信するUSBケーブル経由で行います。Arduino UNOで使われているATMega328は3.3Vでも動きますが、USBケーブル経由の5Vで動作させます。プログラムが出来上がったら、USBケーブルでモバイル・バッテリをつないで動かす方法と、DCジャックに7~12Vの電源をつなぐ二通りの方法があります。

開発はArduino IDEだが

 プログラムの開発は、Web Editorを使う方法と、Arduino IDE(執筆時は1.8.5をPCにインストールする2通りがあります。Web Editorを使いましょう。こちらに詳しいインストール方法が書いてあります。

 図のようにUSBケーブルでPCとArduino UNOをつなぎます。

 Web Editorの画面左から、Exapmles - 01.BASICS(6) - Blinkを選択します。定番のLチカです。

 Blinkのスケッチが読み込まれます。画面の上部のボード名の▼をクリックすると、接続時のCOMポートも表示されます。

 では実際にプログラムをボードに書き込みます。Arduinoではプログラムのことをスケッチと呼びます。スケッチの記述言語はC言語とほぼ同じです。コンパイルして、必要なライブラリをリンクし、実行形式のファイルをUSB経由でATMega328に書き込む作業は、右矢印のアイコンをクリックすると一気に実行されます。

 Arduino UNOボード上のTX/RXのLEDが点滅を繰り返し、実行形式のプログラムをPCから受け取ります。ATMega328への書き込みが終了するとリセット(再起動)がかかり、書き込まれたプログラムが実行されます。TXの上にあるLというLEDが1秒ごとに点滅を繰り返します。このBlinkは購入時にも書き込まれていますから、新品のArduinoであれば、書き込みに失敗してもLEDが点滅します。

 ほんとうにコンパイルして、プログラムが書き込まれたかどうかを確認するには、通常はデバッガを使いますが、ありません。なので、delay(1000);の1000を適当に変更します。単位はmsです。100にすれば0.1秒、5000にすれば5秒です。修正して「→」をクリックし、書き込みが終了して、LEDの点滅のタイミングが変わったでしょうか。

 

LEDを配線する

 抵抗内蔵のLEDのリード線を12番とGNDに挿し込みます。

 スケッチを修正します。3か所あるLED_BUILTINはArduino UNOでは13番なので、12に書き換えます。

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(12, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}

  13番につながっているLEDは点灯したままです。

 12番につないだLEDは光りましたか、光らなかったら、一度抜き、逆に挿し込みます。ほんとうは、この作業はUSBケーブルを抜いて行います。

 今度は光りましたか。光らなかったのは、LEDの足の短いほうカソードが12番に挿さっていたからです。足の長いほうがアノードで、こちらに高い電圧(ここでは5V)が加えられ、カソードがGNDにつながっていると点灯します。ATmega328は最大20mAの電流を流れ出したり吸い込めます(電源電圧や温度によって異なる)。

 ちょっとArduino UNOを探検してみませんか。

は16MHzの発振素子です。マイコンATMega328は16MHzのクロックで動いています。PCはきっと2GHz以上で動いていますね。16MHzを百倍すると1.6GHzですから、PCのほうが約100倍も速く動いているわけです。

は整流用ダイオードです。LEDと同じくアノードがプラス(カソードに比べて高い電位)にならないと電流は流れません。外部電源をつなぐDCジャックのコネクタはセンタがプラスなのですが、世の中、イレギュラな製品は存在します。なので、センタからマイナスの電圧が入力されたとき、ボードにマイナスの電圧がかかって壊れないようにするために入っています。機能から逆接続防止用ダイオードと呼びます。このダイオードは順方向電圧Vfが高く1.1Vです。このダイオードを電源ラインに入れることで1.1Vの電圧が下がってしまいます。わずかな電圧低下が望ましいときはショットキー・ダイオード(約0.3V)を使います。

 回路図というのは英語でSchematicです。Arduino UNO R3 schematicで検索すると、回路図が見つかります。

前へ

Arduino夏休み<架空>ワークショップ 3回で読み切りの2回目「ショッピング」

次へ

Arduino夏休み<架空>ワークショップ 3回で読み切りの番外編「たくさんのLED」