ArduinoでLEDを光らせる
11 月 21st, 2010
前回(Arduinoを始めよう)はArduinoを始めるための準備として、開発環境のインストールと、Arduinoにスケッチを書きこむための設定を行い、サンプルスケッチを動作させてみました。今回は、ArduinoのI/OポートにLEDを接続してペカペカと光らせてみます。
HelloWorld!
電子工作でも、プログラミングでもHelloWorldは大切です(と思っている)。1個のLED(発光ダイオード)を点滅させるところからやってみます。
上の図のように、13番とGNDに赤色LEDを接続します。LEDには極性があるので注意ですね。
スケッチは、前回使用したものと同じです。
1 2 3 4 5 6 7 8 9 10 11 12 | void setup() { // initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(13, LOW); // set the LED off delay(1000); // wait for a second } |
最初に呼ばれる setup() で13番ピンを出力ピンとして設定しています。loop() は毎フレーム呼ばれる関数です。digitalWrite(13, HIGH); で13番ピンをHIGH状態にして、LEDを点灯させます。delay(1000); で 1000ms の間スリープします。digitalWrite(13, LOW); で13番ポートをLOWにしてLEDを消灯して、delay(1000); で1000msスリープします。
つまり、1秒ごとにLEDの点灯と消灯を繰り返すという動作をします。
LEDを増やしてみる
次はLEDを2つに増やして、交互に点灯するようにしてみます。
Arduinoの基板に直接2つのLEDを指すのは大変なので、ブレッドボードを使います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | void setup() { // initialize the digital pin as an output. // Pin 13 has an LED connected on most Arduino boards: pinMode(13, OUTPUT); pinMode(12, OUTPUT); } void loop() { digitalWrite(13, HIGH); // set the LED on digitalWrite(12, LOW); delay(100); // wait for a second digitalWrite(13, LOW); // set the LED off digitalWrite(12, HIGH); delay(100); // wait for a second } |
13番ポートと12番ポートを出力ポートとして設定して、loop()内で、片方のLEDが光っているときは、もう片方のLEDは消灯するようにします。写真では、シャッター速度の関係で両方同時に点灯しているように見えますが…。
さっくりできましたね。次回は、さらにLEDを増やしてみたいと思います。






最近のコメント