ArduinoでLEDを光らせる
ArduinoでLEDを光らせてみた。プログラミングでいうところの「Hello World!」だ。
LEDを光らせるために、いろいろとお買い物もした。送料込みで2,050円也。
- ブレッドボード
- ジャンプワイヤーキット
- LED 赤
- カーボン抵抗 1/4W 150ohm
高い・・。日本橋に買いに行った方が良いかも、と思った。
内蔵LEDを光らせる
内蔵のLEDもあるので、まずは内蔵LEDで挑戦。サンプルのコードは13番ピンを指定しているが、Arduino Ethernetは9番ピンを指定する。
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 9;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(500); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(2000); // wait for a second
}
手前の小さなLED(緑)が光っている。左のLEDが9番ピンでの制御になっていて、点滅している。
LEDを光らせる
次は、Arduinoから電力供給して、LEDを光らせる。プログラミングは不要だが、配線を行う必要がある。久しぶり(9年ぶり)の配線で、かなり緊張した。
どうだっ! [5V電源] – [抵抗(150ohm)] – [LED] – [GND]と繋いでいる。
LEDを光らせて制御する
最後は、LEDをプログラムから制御する。さっきは電源から繋いでいたが、今度は6番ピンと9番ピンから繋ぐ。6番ピンと9番ピンは、パルス幅変調(PWM)に対応しているので、明るさを制御することが出来る。
int led1 = 6;
int led2 = 9;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
for (int i=0; i<256; i++) {
analogWrite(led1, i);
analogWrite(led2, 255-i);
delay(10);
}
delay(1000);
for (int i=0; i<256; i++) {
analogWrite(led1, 255-i);
analogWrite(led2, i);
delay(10);
}
delay(1000);
}
明るさを制御するには、analogWrite関数を使用する。第1引数がピン番号で、第2引数が出力(min 0 〜 max 255)だ。このプログラムを動かすと、6番ピンのLEDが明るくなっていき、9番ピンのLEDが暗くなっていく。その後、1秒停止して、6番ピンは暗く、9番ピンは明るくなる。
両方のLEDの明るさが徐々に変化していくのが確認できた。
投稿日 2012年07月21日