私たちの家庭では、ほとんどの電化製品は、ライト、テレビ、ファンなどのAC電源から電力を供給されています。ホームオートメーションのセットアップを構築することで、Arduinoとリレーを使用して、必要に応じてデジタルでオン/オフを切り替えることができます。しかし、たとえばACランプを暗くしたり、ファンの速度を制御したりするために、これらのデバイスの電力を制御する必要がある場合はどうでしょうか。その場合、AC電源電圧の位相を制御するために、位相制御技術とTRIACのような静的スイッチを使用する必要があります。
したがって、このチュートリアルでは、ArduinoとTRIACを使用したACランプ調光器について学習します。ここでは、これらのアプリケーションに最適なパワーエレクトロニクス高速スイッチングデバイスであるため、トライアックを使用してACランプを切り替えます。このプロジェクトのハードウェアの詳細とプログラミングについては、完全な記事に従ってみましょう。また、ライト調光に関する以前のチュートリアルを確認してください。
- IRリモート制御トライアック調光回路
- PWMを使用したArduinoベースのLED調光器
- 1ワットのLED調光回路
- ATmega32マイクロコントローラーを使用した電源LED調光器
使用されるコンポーネント:
- Arduino UNO-1
- MCT2Eオプトカプラー-1
- MOC3021オプトカプラー-1
- BT136トライアック-1
- (12-0)V、500mA降圧トランス-1
- 1K、10K、330オームの抵抗
- 10Kポテンショメータ
- ランプ付きACホルダー
- ACワイヤー
- ジャンパー
先に進む前に、ゼロクロッシング、トライアック、およびオプトカプラーについて学習します。
ゼロクロッシング検出技術
AC電圧を制御するには、最初に、AC信号のゼロ交差を検出する必要があります。インドでは、AC信号の周波数は50 HZであり、本質的に交流しています。したがって、信号がゼロポイントに到達するたびに、そのポイントを検出し、その後、電力要件に従ってトライアックをトリガーする必要があります。AC信号のゼロ交差点を以下に示します。
トライアックワーキング
トライアックは、ゲート端子の低エネルギー信号によってトリガーできる3端子ACスイッチです。SCRでは一方向にしか導通しませんが、トライアックの場合は両方向に電力を制御できます。ここでは、ACランプの調光目的でBT136トライアックを使用しています。
上の図に示すように、トライアックは、小さなゲートパルス信号を適用することにより、90度の発射角度でトリガーされます。時間「t1」は、調光要件に従って指定する必要のある遅延時間です。たとえば、この場合、点火角度が90%であるため、出力も半分になり、ランプも半分の強度で点灯します。
ここでは、AC信号の周波数が50Hzであることがわかっています。したがって、期間は1 / f、つまり20ミリ秒になります。したがって、半サイクルの場合、これは10ミリ秒または10,000マイクロ秒になります。したがって、ACランプの電力を制御するために、「t1」の範囲を0〜10000マイクロ秒の範囲で変更できます。トライアックとその動作について詳しくは、こちらをご覧ください。
オプトカプラー
フォトカプラとしても知られてOptoisolatoのR。これは、DC信号やAC信号などの2つの電気回路間の絶縁を維持するために使用されます。基本的には、赤外光を発するLEDとそれを検知するフォトセンサーで構成されています。ここでは、MOC3021オプトカプラーを使用して、DC信号であるマイクロコントローラー信号からACランプを制御します。以前は、トライアック調光回路で同じMOC3021オプトカプラーを使用していました。また、リンクをたどって、オプトカプラーとそのタイプの詳細をご覧ください。
回路図:
ACライトディマーの回路図を以下に示します。
トライアックとオプトカプラーの接続図:
トライアックとオプトカプラーMOC3021の回路をパフォーマンスボードにはんだ付けしました。はんだ付け後は以下のようになります。
また、AC電源用の変圧器に接続するために、パフォーマンスボードにオプトカプラーMCT2Eをはんだ付けしました。
そして、Arduinoランプ調光器の完全な回路は以下のようになります:
ACライトディマー用のArduinoのプログラミング:
ハードウェアのセットアップが正常に完了したら、Arduinoをプログラムします。最後に、デモビデオ付きの完全なプログラムを示します。ここでは、わかりやすくするためにコードを段階的に説明しました。
最初のステップで、コード全体で使用されるすべてのグローバル変数を宣言します。ここで、トライアックはArduinoのピン4に接続されています。次に、プログラムで使用する調光ステップの値を格納するためにdim_valが宣言されます。
int LAMP = 4; int dim_val = 0;
次に、 セットアップ 関数内でLAMPピンを出力として宣言し、次に割り込みを構成してゼロ交差を検出します。ここでは、attachInterruptと呼ばれる関数を使用しました。これは、Arduinoのデジタルピン2を外部割り込みとして構成し、ピンで割り込みを検出すると、zero_crossという名前の関数を呼び出します。
void setup(){pinMode(LAMP、OUTPUT); attachInterrupt(digitalPinToInterrupt(2)、zero_cross、CHANGE); }
無限 ループ 内で、A0に接続されているポテンショメータからアナログ値を読み取ります。次に、それを(10-49)の値の範囲にマップします。これを見つけるには、小さな計算を行う必要があります。前に言ったように、各半サイクルは10,000マイクロ秒に相当します。したがって、50ステップで調光を制御する必要があります(これは任意の値です。変更することもできます)。最小ステップをゼロではなく10として採用しました。これは、0〜9ステップでほぼ同じ出力が得られ、最大ステップ数を採用することは実際には推奨されないためです。だから、私は49として最大の一歩を踏み出しました。
次に、各ステップ時間は10000/50 = 200マイクロ秒として計算できます。これは、コードの次の部分で使用されます。
void loop(){int data = analogRead(A0); int data1 = map(data、0、1023,10,49); dim_val = data1; }
最後のステップで、割り込み駆動関数zero_crossを構成します。ここで、調光時間は、個々のステップ時間をnoで乗算することによって計算できます。ステップの。次に、この遅延時間の後、トライアックをオンにするのに十分な10マイクロ秒の小さな高パルスを使用してトライアックをトリガーできます。
void zero_cross(){int dimming_time =(200 * dim_val); delayMicroseconds(dimming_time); digitalWrite(LAMP、HIGH); delayMicroseconds(10); digitalWrite(LAMP、LOW); }
Arduinoランプ調光回路の動作
以下は、ArduinoとTRIACを使用してAC電球を調光する3つの段階を示す写真です。
1.低調光ステップ
2.中程度の調光ステップ
3.最大調光ステップ:
これは、トライアックとオプトカプラーを使用してACライトディマー回路を簡単に構築する方法です。AワーキングビデオとArduinoのライトディマーコードを以下に示します。
/>