お手軽モノづくり体験――「あったらいいな」をArduinoでカタチにしてみよう!アイデア・ハック!! Arduinoで遊ぼう(1)(3/3 ページ)

» 2013年07月22日 09時30分 公開
[三月兎MONOist]
前のページへ 1|2|3       

なぜエルチカができたの?

 「あれ? まだ何もしていないのに、なぜエルチカができたの?」と、思われることでしょう。実はArduinoは、出荷時に13番ピンからHIGHとLOWの電圧を1秒単位で出力するプログラムが書き込まれています。だから、13番ピンにLEDの回路(ペーパーシールド)を接続するだけでLEDが点滅するのです。

 それでは、そのサンプルプログラム ――いえ、ここからはArduinoの流儀に従ってスケッチと呼びましょう―― そのサンプルのスケッチがどのように書かれているのか見ていきます。

 Arduino IDEのメニューから[ファイル]―[スケッチの例]―[01.Basics]―[Blink]を選択します(画像10)。


サンプルスケッチ 画像10 サンプルスケッチから、LED点滅「Blink」を開く。スケッチの例には電子工作によく使われるスケッチ(プログラム)が、サンプルとしてあらかじめ用意されている

int led = 13;
void setup() {
	pinMode(led, OUTPUT);
}
void loop() {
	digitalWrite(led, HIGH);
	delay(1000);
	digitalWrite(led, LOW);
	delay(1000);
}
スケッチ1 サンプルの「Blink」からコメントを削除したもの。わずか10行のスケッチです(※実際のスケッチには行番号が入っていません)。

 「/*」から「*/」までと、「//」から行末までがコメントです。実際のスケッチは、実質10行しかありません。先ほど、電圧をHIGHとLOWに1秒ずつ切り替えているといいました。それが、6〜9行目の部分です。

 6行目のdigitalWriteで“led, HIGH”と指定すると、指定されたポート(この場合、1行目に記述されている“led = 13”です)からHIGHの信号が出力されます。次のdelayでその状態を“1000”ms(ミリ秒)間保った後、8行目のdigitalWriteではLOWの信号を出力し、1000ms間LEDを消しています。

 点滅スピードを変えたかったら、delayに与える数値を変えればOKです。書き換えたスケッチをArduinoに書き込むには、USBケーブルでArduinoとPCを接続して、ツールボックスの右矢印アイコン「マイコンボード書き込み」をクリックするだけです。いろいろなパターンで、LEDを点滅させてみてください。外装を付けるとちょっとしたインテリアにもなります(動画3)。

動画3 点滅のスピードを変更しました。LEDに光ファイバーの外装を付けるとちょっとしたインテリアになります

 ちなみに、Arduinoの基板上には、小さなLEDが搭載されていて、これが13番に接続されています。動画3を見てみると、ペーパーシールドのLEDと基板上のLEDが同時にチカチカ点滅しているのが分かるでしょう。

 この基板上のLEDは、スケッチをマイコンに書き込む際にも点滅し、「ただいま、書き込み中」を知らせてくれます。



 いかがでしたでしょうか。「電子工作って難しそうだなー」と敬遠していた方に、「おっ! これなら自分でもできるかも!?」と思っていただけたら幸いです。次回から、Arduinoを使って、いろいろなアイデアを簡単な回路でプロトタイピングしていきます。お楽しみに! (次回へ続く

⇒連載バックナンバーはこちら

前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.