LEDを点滅させる
Blink with Nefry BTこのページではNefry BTでLEDを制御する方法を紹介します。
Nefry BTに組み込まれている内蔵LEDを利用したLチカは「内蔵LEDを光らせる」を参照して試してみましょう。
Nefry BT(無印)に関するピン情報
D0・D1ピンはディスプレイの制御(I2C通信)に使用されているため、正常に動作しないことがあります(Nefry BT R2/R3では修正されています)。 参照:リビジョンを確認アナログLED
電子工作でよく利用されるLEDです。画像のように直刺しする場合は抵抗内蔵LEDを、通常のLEDの場合はブレッドボードと抵抗を利用して配線してください。(参照:LED)
配線
■抵抗内蔵LEDの場合
Nefry BTのA1ピンソケットにアノード(+側、脚の長い方)ピンを、隣のGNDピンソケットにカソード(-側、脚の短い方)を接続します。
■通常のLEDの場合
Nefry BTのA1ピンソケットにアノード(+側、脚の長い方)ピンを、隣のGNDピンソケットには抵抗を挟みカソード(-側、脚の短い方)を接続します。(参照:ブレッドボード)
プログラム
以下のコードをArduino IDEでNefry BTに書き込みます。(参照:開発環境(Arduino IDE))
#define LED_PIN A1
#define DELAY_TIME 1000
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(DELAY_TIME);
digitalWrite(LED_PIN, LOW);
delay(DELAY_TIME);
}
解説
■変数の定義
変数という「名前のついた箱」に値を代入します。
#define LED_PIN A1
#define DELAY_TIME 1000
LED_PIN
という箱にA1
という値、DELAY_TIME
という箱に1000
という値を代入しています(名前、値は任意です)。
変数に代入しておくことで、あとで値を変えたい時に上記1箇所の変更だけで済みます。
■起動時の処理
void setup(){}
内では、起動時に一度だけ処理する内容を記述します。
void setup() {
pinMode(LED_PIN, OUTPUT);
}
今回使うA1ピン(LED_PIN)をOUTPUTモードにして出力する準備をしています。
センサなどの入力に使用するときは、pinMode(ピン番号, INPUT)
とします。
■繰り返す処理
void loop(){}
内では、起動時に繰り返し実行する内容を記述します。
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(DELAY_TIME);
digitalWrite(LED_PIN, LOW);
delay(DELAY_TIME);
}
点滅は、「光らせる」→「N秒待つ」→「消す」→「N秒待つ」を繰り返すことで表現します。
Arduinoのプログラムでは時間はミリ秒で表現します。今回はDELAY_TIME
に1000
を指定しているので、1秒ごとにオンオフを繰り返す動作になります。
※あまりに短い時間で処理をさせると、クラッシュする原因になります。点滅の場合は最短500ミリ秒くらいがオススメです。