ArduinoでSTEM教育​ 基礎編:RGB-LED

ArduinoでSTEM教育​ 基礎編:RGB-LED

今回は、RGB-LEDを使用して、赤・緑・青の輝度をそれぞれ調節して、様々な光を作る方法を紹介します。​

目次

使用する部品一覧

使用する部品は図のとおりです。これらの部品は、すべて「ELEGOO Arduino用のMega2560スタータキット」に含まれています。​Arduinoは、もちろんunoやnanoでも問題ありません。

  • Arduino MEGA2560 R3 …1個​
  • 830穴 ブレッドボード …1個​
  • RGBLED …1個​
  • 220 ohm 抵抗 …3個​
  • ジャンパワイヤ(オス-オス) …4個​

RGB-LEDの特徴や取り扱い方法

RGB-LEDは、赤(Red)、緑(Green)、青(Blue)のLEDが一つのパッケージになっている部品です。光の3原色であるこれらのLEDの明るさを調整することで、様々な色の光を作ることができます。 RGB-LEDはリードが4本あります。3個のLEDで共通使用する カソード(負端子) は1本です。

PWM変調とは

LEDの輝度を変更するには、PWM変調という方法を用います。​PWMとは、Pulse Width Modulationの略で、High/Lowの幅を変化させることを意味しています。​

デジタルピンは、High(5V)もしくはLow(0V)のどちらかしか出力できませんが、これらを高速に切り替えることで平均電圧を制御することができます。5Vの期間を長くすると輝度が高くなり、0Vの期間を長くすると輝度が低くなります。​

PWM変調のHigh/Lowの比率は、一般的にDutyで表されます。​
Arduinoでは、このDutyを簡単に記述できるように、analogWite()関数が用意されています。値は0~255まで設定することができます。​

回路図

6番のPWMピンに赤色LEDの端子、5番のPWMピンに緑色LEDの端子、3番のPWMピンに青色LEDの端子を接続します。そして、各々のピンとLEDの間に、抵抗を接続します。もしこの抵抗を付けなかった場合は、LEDに大電流が流れてしまうため、LEDが故障してしまうので注意しましょう。最後に、LEDの共通カソード端子をGNDに接続します。​

配線図

ブレッドボードを使用した配線は図のとおりになります。

組立完成写真

実際に組み立てた写真です。同じようにできましたか?​

プログラム

プログラムでは、最初にピン番号の設定が必要です。​先程接続したピンと同じピン番号を設定してください。d​efine文を使用して、青を3番、緑を5番、赤を6番に設定します。​

次に、ピンの入出力設定をします。これはsetup()内で行います。​LEDピンは出力なので、pinModeで”OUTPUTに設定します。HIGHを設定することでLEDがONします。反対に、LOWを設定するとLEDがOFFします。​

ピンの設定が終わったので、メインループでPWM変調するための変数を宣言します。​0~255の値を扱うため、整数の変数であるintを使用します。​

ソース:Elegoo Mega 2560 The Most Complete Starter Kit (www.elegoo.com/download)

それでは、メインループでPWM変調をするためのプログラムを書いていきます。​最初に、先程宣言した変数に初期値をいれます。​赤色だけONさせたいので、redValueを255に設定し、他を0に設定します。​

いよいよPWM変調のプログラムの登場です。​輝度を0~255まで段階的に変化させるため、for文を使用します。​for文の{}内で、PWM変調出力のanalogWrite関数を使用し、引数に最初に宣言した変数を用います。​輝度を段階的に変化させるスピードを調整するために、delay()を使用します。​delay()は、指定した時間(ミリ秒単位)だけプログラムを一時停止します。​

ソース:Elegoo Mega 2560 The Most Complete Starter Kit (www.elegoo.com/download)

先程は、赤と緑の輝度変更をプログラムしました。​同様に、「緑と青」、「青と赤」の輝度変更プログラムを書きます。​

ソース:Elegoo Mega 2560 The Most Complete Starter Kit (www.elegoo.com/download)

動かしてみよう

プログラムを書き込んで、実際に動かしてみてください。

今回学んだポイント

  • 赤、緑、青の光を混ぜると、様々な色を作れる。​
  • LEDの輝度変更は、PWM変調でできる。​
  • PWM変調は、analogWrite()関数で簡単に記述できる。​
  • for文を使用すれば、繰り返し処理を簡単に記述できる。​

改造してみよう

もう少し理解を深めるために、自分で改造してみてください。​

  • delay()時間を変えると、どのように変化するか試してみよう。​
  • 3個のLEDをPWM変調して、オリジナルの光を作ろう。​

Arduino基礎編カテゴリの最新記事