3.RGB-LEDの光らせ方

2020年5月18日

RGB-LEDの接続と関数

RGB-LEDはR/G/Bそれぞれの端子とCPUのI/Oが、LEDのGNDが基板のGNDに接続されていますので、下記の仕様で点灯・消灯をプログラムからコントロールすることができます。

Arduinoとしてのポート LEDの色
A0
A1
A2

 

関数 状態
digitalWrite(ポート,HIGH) 点灯
digitalWrite(ポート,LOW) 消灯

コントロールプログラム

赤を光らせる

赤を消灯させる

1秒ごとに赤を点滅させる

全色を順番に1秒ずつ点滅させる

ソースコード

#define LED_R A0 // A0をLED_Rに 
#define LED_B A1 // A1をLED_Bに 
#define LED_G A2 // A2をLED_Gに 
/*----------------------------------------------- 
各ピンを出力モードに設定する 
------------------------------------------------*/ 
void setup()
{
  pinMode(LED_R,OUTPUT) ; 
  pinMode(LED_G,OUTPUT) ; 
  pinMode(LED_B,OUTPUT) ; 
} 
/*----------------------------------------------- 
点滅プログラム 
------------------------------------------------*/ 
void loop() 
{ 
  digitalWrite(LED_R,HIGH) ; //赤点灯 
  delay(1000);//1秒まつ 
  digitalWrite(LED_R,LOW) ;//赤消灯 
  delay(1000);//1秒まつ 
  digitalWrite(LED_G,HIGH) ;//緑点灯 
  delay(1000); //1秒まつ 
  digitalWrite(LED_G,LOW) ; //緑消灯 
  delay(1000); //1秒まつ 
  digitalWrite(LED_B,HIGH) ; //青点灯 
  delay(1000); //1秒まつ 
  digitalWrite(LED_B,LOW) ;//青消灯 
  delay(1000);//1秒まつ
}

赤と青を混ぜて光らせる

LEDとは

極性

LEDには電池と同じようにプラスマイナスの極性を持っていて、プラス「アノード」、マイナス「カソード」と呼びます。
このアノード側はp型という半導体、カソード側はn型という2つの半導体でできています。
アノードに電源のプラス、カソードに電源のマイナスを正しく接続し電圧・電流をかけると、p型半導体の内部では「正孔」と呼ばれる正の電荷をn型半導体との結合部分に運びます。
逆にn型半導体内部では「電子」と呼ばれる負の電荷をp型半導体との結合部分に運びます。
そしてこの「正孔」と「電子」が合わさり「再結合」することで、そこで生じたエネルギー光となります
プラスとマイナスの共生を正しく接続しない場合、各電荷は両端に集まることで「再結合」が起こらずエネルギーが発生しないために光らないという現象となります。

電気にはご存じのように電圧・電流の二つがあり、豆電球などはこの2つの組み合わせで明るさを決定できます。
なので、電池で光る豆電球のライトなどは、電池の残量が少なくなるとだんだん暗くなっていきます。

LEDの場合は、豆電球のように電圧・電流に残量によって明るさが変わるわけではありません。
決められた既定の電圧がかからないと光ることができません。
正しい電圧がかかって光る前提のもと、抵抗の量で流す電流を変化することで明るさが変わってきます。

LEDをよく見ると下記のように2つの離れた金属板でできています。
この広い方がカソード(n型半導体)狭い方がアノード(p型半導体)で間に空いている隙間部分で再結合が起き光に変わります。

※足は基板に取り付けるサイズによって切って今うので、実際に基板についている状態ではわかりませんが、購入したばかりの時は、カソード側がアノード側がく作られています。

回路図では

LEDは正式には Light Emitting Diode (ライト・エミッティング・ダイオード=光・発する・ダイオード)で日本語では発光ダイオードと呼びます。

そのため、電子回路ではダイオードのシンボルが光っている状態で書き、ほとんどの回路に電流を制御する抵抗がつけられています。

2つの接続方法とプログラム

ArduinoのプログラムによってLEDを光らせる場合、2つの接続方法があります。

アクティブLOW

左の図はLEDのアノードを+5Vに接続し、カソード側をArduinoの7番ピンに接続しました。
つまり常にLEDのアノードには5Vの電圧がかかっています。
プログラムで光らせようとした場合、7番ピンをマイナス(GND)にします。
つまりプログラムでは、digitalWriteLOWを出力すれば、LEDが光ることになります。
LOWで動作する接続ですからこれをアクティブLOWと呼びます。

アクティブHIGH

右の図はLEDのアノードを7番ピンに接続し、カソード側をGNDに接続しました。
つまり常にLEDのには何も電圧がかかっていません。
プログラムで光らせようとした場合、7番ピンをプラス(+5V)にします。
つまりプログラムでは、digitalWriteHIGHを出力すれば、LEDが光ることになります。
HIGHで動作する接続ですからこれをアクティブHIGHと呼びます