一般的に照明というとその発光原理や目的等によって様々な種類が存在します.このページではLEDを対象として解説します. まずLEDを利用して照明をつくる際,DCかACかを検討する必要があります.AC電源を利用することで比較的大きな電力を手軽 に利用できます.しかし細かな制御には不向きです.DC電源を利用することで細かな制御は可能ですが,大きな電力を利用 する際,電源周りの設計がすこし面倒になります.それぞれ良し悪しがありますが,以下,それぞれの電源環境下において Arudinoを利用して照明を制作する際の手順と注意点をまとめます.
注意!!
本ページで紹介するLEDについてはAC,DCともに比較的大きな電力を使用するだけでなく,ショート(電源とグランドを直接結線してしまうこと)させてしまうとUSBポート不良や電源ブレーカが落ちる,さらには部品が燃える場合があります.実際に本ページの手順を辿る場合は,細心の注意を払うようおねがいいたします.
実際にやってみたい人はなるべく事前に馬場に相談してください.
Arduinoに以下のプログラムを書き込んでおきます.
// 11: LED点灯 // 10: LED消灯 void setup() { Serial.begin(9600); pinMode(3, OUTPUT); } void loop() { int x; if( Serial.available() > 0 ){ x = Serial.read(); if( x == 11 ){ digitalWrite(3, HIGH); } else if( x == 10 ){ digitalWrite(3, LOW); } } }
Processingのプログラムは以下のとおりです
// クリックしている間だけLEDを点灯させる import processing.serial.*; Serial myPort; int val; void setup() { size(200, 200); String portName = Serial.list()[0]; myPort = new Serial(this, portName, 9600); } void draw() { background(255); } void mousePressed() { myPort.write(11); } void mouseReleased() { myPort.write(10); }
まずは以下のものを揃えます.
電球は2.9Wですが,ホームセンターでは20W相当の明るさとされています.電球をソケットに取り付け,確認します.
作成したLED電球をArduinoを利用して動的に制御するために,ACリレースイッチを利用します.電球はAC電源にて動作している ため,Arduino(DC電源)から直接駆動ができません.ACリレースイッチには様々な種類がありますが,今回は秋月電子にて販売 しているソリッド・ステート・リレーを利用しました.また,ACコンセントをひとつ準備します.それぞれの商品例は次のとおり.
手元に揃えたら,まずはソリッドステートリレーを組み立てます.組立はハンダゴテとはんだがあれば,あとは説明書通りに組み立てればOKです.特にリレーとACコンセント,コンセントケーブルの接続に ついてはソリッド・ステート・リレーの説明書をよく読み,確認した上でつなげてください.下記画像のようになりました.
ソリッド・ステート・リレーはそのままではAC電源のリレーがOFF状態になっています.リレーをON状態にするにはArduino側からON/OFFの 制御をします.ArduinoのDigital3番ピンをソリッド・ステート・リレーのDC in(+), ArduinoのGNDをDC in(-)につなげます.以下のプログラムをArduinoに 書き込みます.
// ACリレーによるBlinkプログラム void setup() { pinMode(3, OUTPUT); } void loop() { digitalWrite(3, HIGH); delay(1000); digitalWrite(3, LOW); delay(1000); }
うまくいくと下記映像のようにLED電球の点滅を確認できます.
もっとも簡単な方法はLEDを直接Arduinoから駆動する方法です.しかしこれでは Arduinoから直接駆動できる電流量は50mA程度と限られているため, 左のAC電源で紹介したような明るさを得ることができません.ではどうするか,具体的にやってみましょう.今回は以下のLEDを使用します.
LEDの仕様書をみるとDC Forward Current:800mA(MAX)と表記されています.最大値では利用せず80%程度を現実的なMAXとすると,640mA程度で使用 することにします.すると実装にあたり以下のことが問題になります.
そこで,LED駆動にトランジスタを利用し,電源を外部AC/DCアダプタからの電源供給にし,LED及びトランジスタに放熱器を取り付けることで上記問題を解決します.ACアダプタとトランジスタに 関しては以下を利用します.
トランジスタは簡単に言ってしまうと,不純物半導体をNPNもしくはPNPの順に接合した電流の増幅器になります. この特性を利用することで,モータやLED,微小センサのスイッチ等,様々な用途に使用できます.実際に設計する場合, データシートを読み,どの程度増幅したいかを基に検討する必要があります.一方で手軽に実験するときには,次のことに 注意すると,比較的簡単にトランジスタの実験ができます.以下,上記ダーリントン・トランジスタを例にその実験をしてみます.
安定化電源を利用し,トランジスタのコレクタ側に制限用の抵抗,ベース側に可変抵抗を接続し,可変抵抗を操作することで駆動対象を 観察することで,適切な設計値を比較的手軽に探ることができます.
適切な値を設定できたら,ベースをArduinoのDigital3ピンに接続し,LEDを点灯してみましょう. analogWrite関数にてPWM出力を行なうと,その点灯強度も簡単に調整できます.
ここまでできたら,L2.で紹介したプログラムを用いて,Processing側のプログラムを実行して振る舞いを確かめてみましょう. また,応用として,電子楽器ワークショップを参照して,LEDが点灯すると任意の楽器音がなるプログラムを作成してみましょう