おもちゃラボ

Unityで遊びを作っていきます

【Arduino】LEDを点滅させる

Javaなどのプログラムで一番始めに作るプログラムは、画面上に「Hello, Wolrd」と表示するプログラムが定番です。

Arduinoの場合は、このHello, Worldに相当するプログラムがLEDを点滅させるプログラムのようです。LEDをチカチカさせるから、通称Lチカといいます。

f:id:nn_hokuson:20170318161700j:plain

LEDを光らせる回路

LEDを光らせるためにはArduinoとLEDを接続するための回路が必要になります。
ただ、Arduinoにはデフォルトで13番ポートにLEDがつながっているので、これを使いましょう。

自分で回路を作る場合は、次の図のように13番ポートとLED、抵抗(330Ω程度)を接続して下さい。

f:id:nn_hokuson:20170312211621p:plain:w400

LEDには豆電球と違って極性があります。足の長い方をプラス側(今回の場合は13ピン側)に繋いで下さい。

f:id:nn_hokuson:20170318165506p:plain:w150

LEDを点滅させるプログラム

Arduinoで出来ることは基本的に次の2つだけです。

・ポートから指定した電圧を出力する
・ポートに入力されているの電圧を調べる

どんな複雑に見える回路も、基本的にはこの2つの組み合わせで作られています。こう書くと、なんか、簡単そうに感じてきますね〜!

今回はLEDを点滅させたいので、指定したポート(13番)から0Vと5Vを交互に出力します。次のプログラムを入力して下さい。

void setup()
{
        pinMode(13, OUTPUT);
}

void loop()
{
        digitalWrite(13, HIGH);
        delay(1000);
        digitalWrite(13, LOW);
        delay(1000);
}

setup関数はプログラム起動時に一度だけ実行されます。loop関数は何度も実行される関数です。

f:id:nn_hokuson:20170318164251p:plain:w150

pinMode関数で第一引数のポートを「出力」として使うか「入力」として使うかを指定しています。
ここではLEDがつながっている13番ポートを出力(OUTPUT)に指定しています。

loop関数では、「LEDを点灯」→「1秒停止」→「LEDを消灯」→「1秒停止」という処理を行っています。まずdigitalWrite関数を使って13番ポートの出力をHIGH(5V)にします。

続いてdelay関数を使って1秒間処理を止めています。delay関数の引数には処理を止める時間をms単位で指定します。

もう一度digitalWrite関数を使って13番ポートの出力をLOW(0V)にして1秒停止します。これを繰り返すことでLEDを点滅させています。

実行結果

上のプログラムを実行した結果がこちらになります。地味ですが自分の書いたプログラムでハードウエアを動かせると感動もひとしおですね〜

www.youtube.com

Arduinoをはじめよう 第3版 (Make:PROJECTS)

Arduinoをはじめよう 第3版 (Make:PROJECTS)