ELEGOO (Arduino)で始めるマイコン入門 4:LED点灯
さっそく動かしましょう。マイコン初学者はみな、LEDを点滅させるという儀式を経て学習を始めていきます。LEDをチカチカさせるので、Lチカ、と呼ばれています。
どうやってLEDを光らせるのか
LEDを光らせる前に、マイコンの基本的な考え方を確認します。マイコンができることはただ一つしかありません。それは電流を外部に流すことです。電流を流し、電圧を変えることで素子へ入力を行うのです。LEDを光らせるのも、特定の場所に電流を流し、電圧を変化させることで実現します。
Arduino megaには、53個のデジタルポート(ピンとも呼びます)があります(電流を流せる出力端子です)。このうち、13番目のピンがボード内臓のLEDに繋がっています。つまり、13番ピンの出力を変えることによって、LEDを点滅させることができるのです。
Lチカのプログラム
Lチカを行うプログラムを書きましょう。その前に、Arduinoのプログラムがどのように実行されるかを確認します。Arduinoは、下の画像のように、setup関数とloop関数によって構成されます。
setup関数で、どのピンを使うかなどのボードの設定を行い、loop関数でプログラム本体の実行を行います。
Lチカのプログラム本体
void setup() {
// put your setup code here, to run once:
// 最初にこの関数が実行されます。
pinMode(13, OUTPUT); // 13番ピンを出力に設定
digitalWrite(13, LOW); // 初期値はLOW(LEDは消灯)出力
}
void loop() {
// put your main code here, to ruSn repeatedly:
// setupが実行されると、この関数が無限回、実行されます。
int count;
for (count = 0;; count++){
delay(1000); // 1000ms(1秒)待つ
digitalWrite(13, HIGH); // 13番ピンをHigh出力 (LEDは点灯)
delay(1000);
digitalWrite(13, LOW);
}
}
解説
Arduino IDEはC++をベースにしたプログラミング言語を使用します。プログラミングの基本については他のサイトに譲るとして、Arduino特有の関数の説明を行います。
まず、setup関数内のpinModeです。pinMode(ピン番号, mode)となっており、modeには、INPUT、OUTPUT、INPUT_PULLUP(入力がないときに、Highを入力されているとみなすモード)があります。Arduinoでは、13番ピンが内臓LEDに接続されているため、今回は13番ピンを出力に設定します。
次に、digitalWrite関数です。digitalWrite(ピン番号, Value)となっており、ValueにはLOWとHIGHの2種類が選べます。LOWは0V、HIGHは5Vが出力されます。
最後にdelay関数です。delay(value)はvalueミリ秒待機します。よって、1000を入れると1000ミリ秒、つまり1秒待機します。
このプログラムを実行すると、1秒ごとにLEDが点滅します。
次はブレッドボードと3色LEDを使ったプログラムを行います。