今回は、Arduinoの互換製品である「ELEGOO UNO R3」のチュートリアルを進めていく。チュートリアルは同梱されているディスクから入手することができる。

 

 なおLesson0はインストールについて、Lesson1はライブラリの追加方法についてなので、この記事では実際に手を動かすLesson2から取り掛かる。

 

  Lesson 2 「点滅」

ここではUNO R3には基板上についているLEDを制御してみる。そのLEDは下図の黄色で囲んである部分である。

 

 このLEDはPCと接続するだけでも点滅するが、点滅するスピードや点灯時間を制御する事ができる。なおここではプログラムのことをスケッチと呼ぶことがあるため注意してもらいたい。

 

 まずはIDEの画面から「ファイル」→「スケッチ例」→「01.Basics」→「Blink」の順に選択する。すると新しくウィンドウが開きロードが完了する。しかしこのままでは書き換えられないため「ファイル」→「名前を付けて保存」の順に選択し、好きな名前で保存する。

 

 さっそくこのスケッチ書き換えていくが、そのまえにvoid setup()とvoid loop()の文字が確認できる。このvoid setup()の後の{}内は「電源を入れた際やリセットされた際などに1回だけ実行」させたいことを記載する箇所で、void loop()の後の{}内は「繰り返し指示して実行」させたいことを記載する箇所となっている。それを踏まえた上で確認してみると、void loop()箇所に

----------------------------------------------------

 

digitalWrite(LED_BUILTIN, HIGH);  // LEDをON (5V出力)
delay(1000);            // 1秒待つ
digitalWrite(LED_BUILTIN, LOW);   // LEDをOFF(0V出力)
delay(1000);            // 1秒待つ

 

----------------------------------------------------

 

と書かれていることが分かる。読んで字のごとく説明書きのままだが、このような「1秒待つ」→「LEDをON」→「1秒待つ」→「LEDをOFF」の動作を繰り返している。つまりdelay()の数値を変更する事で点滅の間隔を変える事ができる。試しに数値を1000から100にしてみる。そしてPCとUNOを接続し下図の赤線部分のマイコンボードに書き込むボタンを押す。

 

 書き込みが終わると「ボードへの書き込みが完了しました。」と表示される。これでLEDを確認してみると実際に点滅スピードが早くなっていることがわかる。

 

 

  Lesson 3 「LED」

 本レッスンでは、ブレッドボードや抵抗を用いてLED(本体に付いている物ではない)の点灯及び輝度変更を行う。

 

 まずは「ブレッドボード」と「好きな色のLED」「220Ωの抵抗」「黒と赤の配線1ずつ」を用意する。これらをブレッドボードに接続する。ブレッドボードは赤線と青線の間は文字が正方向に向いている状態で縦方向に繋がっており、中央の部分は横方向に繋がっている。なお中央に溝があるがそれはそこで接続が切れているため注意する。そして接続する際はUNOは電源を切って行う。LEDは長い方が「+」で短い方が「-」となっており、間違えて接続すると点灯しない。抵抗には向きは無いため好きな方向で接続して問題ない。

 

以上の事を留意して、下図のように接続し、電源を入れる。

 

黒い線はGND、赤い線は5Vのポートに接続する。赤い線を接続している5Vのポートは、電源を確保するだけでそのポートから5Vを取り出すことができる。この状態でつけたLEDは非常に明るい。それは抵抗を220Ωにしており抵抗値が低いためである。一度電源を切り、抵抗を1kΩに変えるとより輝度が下がり暗くなることが確認できる。

 

 

  Lesson 4 「RGB LED」

 本レッスンでは、様々な色に光るRGB LEDを扱ってみる。内容物であるLEDがたくさん入った袋のなかに1つだけ4つのリード線があるLEDが確認できるが、それがRGB LEDである。それぞれのリード線は下図のように対応している。

 

それをこのように配線する。

 

 使用しているポートは「青→3」「緑→5」「赤→6」と「GND」である。そしてRGBに使用する抵抗は3つとも220Ωを使用している。配線はわかりやすく青緑赤の色に対応したものを使用した。

 

そしてPCと接続し、「RGB_LED.ino」のファイルを開きLesson2と同様の手順で、書き込むとRGB LEDが虹色のように色が次々に変化しているのが確認できる。スケッチを確認してみると

----------------------------------------------------

 

  redValue   = 255; //赤の初期値設定
  greenValue = 0;   //緑の初期値設定
  blueValue  = 0;   //青の初期値設定

  for (int i = 0; i < 255; i += 1) //0~255にインクリメント
  {
    redValue -= 1;                     //赤の変数を-1
    greenValue += 1;                //緑の変数を+1
    analogWrite(RED, redValue);     //赤の輝度変更
    analogWrite(GREEN, greenValue); //緑の輝度変更
    delay(delayTime);               //delayTimeの時間だけ待つ
  }

 

----------------------------------------------------

 

という風になっている箇所がある。その下の部分は対応する色が違うだけで同様の処理を行っている。redValue、greenValue、blueValueの数値を0~255の間で変更してみると、色の変わり方が変わるのがわかる。