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