Deprecated: Assigning the return value of new by reference is deprecated in /virtual/kilo/public_html/www.ez0.net/wp-settings.php on line 512

Deprecated: Assigning the return value of new by reference is deprecated in /virtual/kilo/public_html/www.ez0.net/wp-settings.php on line 527

Deprecated: Assigning the return value of new by reference is deprecated in /virtual/kilo/public_html/www.ez0.net/wp-settings.php on line 534

Deprecated: Assigning the return value of new by reference is deprecated in /virtual/kilo/public_html/www.ez0.net/wp-settings.php on line 570
SecondWave » LED

Archive

Posts Tagged ‘LED’

ArduinoでLEDを光らせる

11 月 21st, 2010

前回(Arduinoを始めよう)はArduinoを始めるための準備として、開発環境のインストールと、Arduinoにスケッチを書きこむための設定を行い、サンプルスケッチを動作させてみました。今回は、ArduinoのI/OポートにLEDを接続してペカペカと光らせてみます。

HelloWorld!

電子工作でも、プログラミングでもHelloWorldは大切です(と思っている)。1個のLED(発光ダイオード)を点滅させるところからやってみます。

blink_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スリープします。

imgp2451

つまり、1秒ごとにLEDの点灯と消灯を繰り返すという動作をします。

LEDを増やしてみる

次はLEDを2つに増やして、交互に点灯するようにしてみます。

Arduinoの基板に直接2つのLEDを指すのは大変なので、ブレッドボードを使います。

two_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
}

imgp2452

13番ポートと12番ポートを出力ポートとして設定して、loop()内で、片方のLEDが光っているときは、もう片方のLEDは消灯するようにします。写真では、シャッター速度の関係で両方同時に点灯しているように見えますが…。

さっくりできましたね。次回は、さらにLEDを増やしてみたいと思います。

kilo@WebMaster Arduino , ,