TEG LOG

英語と工業系の知識を0→1にするブログです。

レッスン4 応用編 「RGB LED」LEDの色をプログラミングで変える方法!アールジービーエルイーディー

 

 

 

では、レッスン4の応用編を説明していきます

 

まだレッスン4をやっていない方はこちらへ→

レッスン4 「RGB LED」色が変わるLED 操作してみよう! - 基板がカッコよくて憧れる日記

 

 

 f:id:hellonewlifeandwatashi:20180508152549j:image

 

 

 

見ていくのは前回開いた「RGB_LED」のプログラムです。

 

 

 

 

今回は長いプログラムです。

 

 

分かりやすいように分解して、説明していきます。

 

 

では、いきます。

 


#define RED 6  //どのピンがどの色かを定義します。

void setup()   //毎回ある文ですよ。前回の指示をリセットします。
{
pinMode(RED, OUTPUT);
digitalWrite(RED, HIGH); //今回はset upの部分でLEDを出力として使うとも定義しなければなりません。
}

 

int redValue;  //使える種類を定義します。

 

void loop()  //ループの内容を指示します。毎回いります。
{

redValue = 255;   //0~255まで色の強さを指定できます。
}

 

 

 

なぜ255なのかというと電圧をまで5V出せるからです。

 

ちなみに、半分の128では約2.5Vが出力されます。

 

 

今回の指示で、ずっと赤が光ります。

 

 

文字のredの部分を、greenやblueに変えると色が変わります。

 

 

 

 

では先ほどの文に緑を足した指示を書きます。

 

 

#define GREEN 5
#define RED 6

 

void setup()
{
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
digitalWrite(RED, HIGH);
digitalWrite(GREEN, LOW);
}

int redValue;
int greenValue;

 

void loop()
{
#define delayTime 10


redValue = 255;
greenValue = 0;

for(int i = 0; i < 255; i += 1)  //前回なかった文です。これは、赤の次光る緑が255まで出力したら、赤は消してくださいという指示です。
{
redValue -= 1; //赤はマイナス
greenValue += 1;  //緑はプラス

analogWrite(RED, redValue);  //このanalogWriteというのは指示を電圧を0か1にする指示です。
analogWrite(GREEN, greenValue);
delay(delayTime);
}

redValue = 0;
greenValue = 255;

for(int i = 0; i < 255; i += 1)
{

greenValue -= 1;
redValue += 1;

analogWrite(GREEN, greenValue);
analogWrite(RED, redValue);
delay(delayTime);
}
}

 

 

これで、赤→緑→赤→緑とループするようになります。

 

 

 

何度か書き間違えて凹んでたので、できた時はキラキラ光るLEDに感動してしまいました。

 

 

前の文と、どこが違うのか分かりますか?

 

 

この違いを理解して、同じように青を足してみると、見本と同じ文を自分で作れるでしょう。

 

 

今回はこれで終わりです。

 

 

ぜひ、自分だけのパターンを作ってみて下さい。

 

 

次 レッスン5 「Digital Input」→ カミングスーン

 

レッスン6を先に書いています →

レッスン6 「Active Buzzer」音を鳴らしてみよう! - 基板がカッコよくて憧れる日記