電子工作

Arduino でRGB LED

🚀 0円で現役エンジニアから学べる【Techスクールオンライン】のお申込みをお勧めします。 このオンラインスクールでは、現役のエンジニアから直接学ぶことができ、プログラミングの基礎から高度なスキルまでを習得できます。しかも、今なら 0円 で受講できるチャンスです。 エンジニア転職を考えている方やプログラミングに興味がある方、新しいスキルを習得したい方に特におすすめです。

RGB LED を使ってアナログ出力を学ぼう

最近はやっている、装飾用のLEDの原理を知っていますか?

RGB LEDを使って、好きな色を作りだすことができます。これまで単色LEDを使ったことがある人は多いと思いますが、RGB LEDでは好きな色を作ることができます。Arduino を使って部屋の装飾などにも使える、LEDの使い方をここでは紹介します。また、ここでは、アナログ信号の入力の仕方から、RGB LEDの使い方までを紹介します。

 

1.光の3原色

光の3原色を知っていますか?

光は赤・緑・青の3つの色から構成されます。今回使用するRGB-LEDはこれら3色の個々の色の強さを制御することで、作りたい色を作りだすことができます。RGB-LEDはCATHODEと赤・緑・青の4つのリード線があります。これらに対して、Arduino のAnalog Write機能を用いて、好みの色を作り出してみましょう。

  

2.準備するもの

本内容を始めるため、下図の材料を準備してください。

材料はすべて、Amazonのキットで購入しましょう。

3.配線図とシミュレーション

本内容についても、Auto CAD社のTinker CADを用いてシミュレーションをしてみましょう。Tinker CADには、RGB-LEDのほかにも様々なセンサも含まれているため、試作トライをすることに非常に便利となっています。

https://www.tinkercad.com/

今回のシミュレーションでは、Arduinoからアナログ信号を出力し、様々な色に変化する回路を作成します。そのため、Arduino のアナログ出力可能な、ピン(-と記載されている)ピン3をBlueの端子、ピン5をGreenの端子、ピン6をRedの端子に接続しましょう。

配線通り接続し、できましたら、下記コードを記入してください。シミュレーションを開始を押し、図のように色が変化すれば成功です。





// Define Pins
define BLUE 3
define GREEN 5
define RED 6
void setup()
{
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
digitalWrite(RED, HIGH);
digitalWrite(GREEN, LOW);
digitalWrite(BLUE, LOW);
}
// define variables
int redValue;
int greenValue;
int blueValue;
// main loop
void loop()
{
define delayTime 1 // fading time between colors
redValue = 255; // choose a value between 1 and 255 to change the color.
greenValue = 0;
blueValue = 0;

for(int i = 0; i < 255; i += 1) // fades out red bring green full when i=255
{
redValue -= 1;
greenValue += 1;

analogWrite(RED, redValue);
analogWrite(GREEN, greenValue);
delay(delayTime);
}
redValue = 0;
greenValue = 255;
blueValue = 0;
for(int i = 0; i < 255; i += 1) // fades out green bring blue full when i=255
{
greenValue -= 1;
blueValue += 1;

analogWrite(GREEN, greenValue);
analogWrite(BLUE, blueValue);
delay(delayTime);
}
redValue = 0;
greenValue = 0;
blueValue = 255;
for(int i = 0; i < 255; i += 1) // fades out blue bring red full when i=255
{
// The following code has been rearranged to match the other two similar sections
blueValue -= 1;
redValue += 1;

analogWrite(BLUE, blueValue);
analogWrite(RED, redValue);
delay(delayTime);
}
}

シミュレーションが成功しましたら、実際にモノを作ってみましょう。

 

4.RGB-LED回路製作

実際に作った回路がこれになります。

上記プログラムのdelay Timeを短くすると、色が変わる速さが早くなり、長くすると、色がゆっくり変わるようなプログラムとなっています。自由にプログラムをいじって、試してみてください。

🚀 0円で現役エンジニアから学べる【Techスクールオンライン】のお申込みをお勧めします。 このオンラインスクールでは、現役のエンジニアから直接学ぶことができ、プログラミングの基礎から高度なスキルまでを習得できます。しかも、今なら 0円 で受講できるチャンス。
私がツナグバに登録してから、求人情報が豊富に届き、自分に合った仕事を見つけることができました。特に、第二新卒向けの求人情報が多いので、自分のスキルや経験を活かしながら新たなキャリアに挑戦することができました。転職活動は不安も多いですが、ツナグバのサポートがあれば、成功への道が明るく感じました。