今回は以前の続きになります。
以前は交流電源用のLED電球を
ON / OFF させる回路を作りました。
Arduino&リレーでLED電球をON/OFFする
https://wireless-network.net/arduino-relay-led/
今回はON / OFFではなく、
LED電球を調光させていきます。
直流のLEDを調光させるには、
LEDに印加する電圧を変えるだけなので、
簡単に作成することが出来ます。
交流(AC)で動くLED電球の調光は
そういうわけにはいきません。
なぜなら調光の仕組みが異なるからです。
ACなので+電圧とー電圧が
周期的に変化し続けます。
ではどのように調光を
実現するのでしょうか。
位相制御方式の考え方を用います。
位相制御方式は、半波長分の期間に
どれだけ電流を流すかで、
負荷にかかる平均電圧を制御します。
位相制御方式の詳しい原理と
その他の調光に仕組みのまとめ
https://wireless-network.net/arduino-power-control/
前回の記事で紹介したリレーでは、
ゼロ点(クロス)の検出が出来ないので、
調光器は作成出来ません。
ゼロ点が分からないとパルスを
いつゲートに印加したら良いか
分からないからです。
そこでゼロ点を検出してくれる
リレーモジュールを用います。
そこで次の商品を用います。
AC Light Dimmer Module 1Channel 3.3V/5V logic AC 50/60hz 220V/110V

https://www.amazon.co.jp/dp/B07FBYB98Y/ref=cm_sw_em_r_mt_dp_U_PAkvEbCSB4KEC
※楽天市場でも購入できます。
ゼロ点さえ分かれば、トライアックのゲートに
適切なタイミングでパルス波を送るだけです。
次に、配線を見てみましょう。
※LED電球は調光可能なものを使って下さい。LED電球のパッケージに調光可能か否かの記載があると思います。

配線以外の作業が必要です。
電源コードを途中で下の画像のように
断線してケーブルを剥く必要があります。

1本のケーブルを切ったら、
LED側と電源プラグ側に分かれるので、
それぞれを配線画像のように配線します。
調光モジュールとArduinoの配線は、
電源・GND・ゼロ点検出用・パルス用
これら4つの端子があります。
それでは実際にコードを見てみましょう。
Arduinoのコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
int AC_LOAD = 3; // トライアック(Gate)ピン(パルス用) int dimming = 128; // 調光レベル (0-128) 0 = ON, 128 = OFF void setup() { pinMode(AC_LOAD, OUTPUT); attachInterrupt(0, zero_crosss_int, RISING); //ピン2がLowからHighに代わったらzero_cross_int関数を割り込み } void zero_crosss_int() { // 商用電源50Hzの半波長は10ms(=10000us) // (10000us - 10us) / 128 = 75 (約) int dimtime = (75*dimming); //もし西日本(60Hz)なら75を65に変える delayMicroseconds(dimtime); // パルス発生させるタイミングまで待つ digitalWrite(AC_LOAD, HIGH); // トライアック(Gate)にパルスを印加 delayMicroseconds(10); // パルスONの時間 digitalWrite(AC_LOAD, LOW); // パルスをOFFに } void loop() { for(int i=5; i<128; i++){ dimming = i; delay(10); //ミリ秒 } } |
attachInterrrupt()は、イベント発生時に
割り込み処理を呼び出す関数です。
第一引数で0を指定しています。
これはArduinoのD2ピンを意味します。
1を指定したらD3ピンを意味します。
第二引数で割り込みさせる関数を指定します。
第三引数でD2ピンがどのように変化したら、
attachInterrupt()を行うか指定します。
引数には次のものがあります。
LOW | ピンがLOWにとき割り込み発生 |
CHANGE | ピンの状態が変化したら割り込み発生 |
RISING | ピンの状態がLOWからHIGHに変化したら割り込み発生 |
FALLING | ピンの状態がHIGHからLOWに変化したら割り込み発生 |
このコードを動かすとこのようになります。
しっかりと明るさが変わってますね。
最後まで読んでいただきありがとうございました。