- AC位相角制御とは何ですか?どのように機能しますか?
- 位相角制御の課題
- AC位相角制御回路に必要な材料
- AC位相角制御回路図
- AC位相角制御回路–動作中
- AC位相角制御回路のPCB設計
- AC位相角制御用のArduinoコード
- AC位相角制御回路のテスト
- さらなる機能強化
ホームオートメーションシステムは日々ますます人気が高まっており、今日ではリレーやスイッチなどの簡単な制御メカニズムを使用して特定のアプライアンスのオンとオフを簡単に切り替えることができるようになりました。これまで、リレーを使用して多くのArduinoベースのホームオートメーションプロジェクトを構築してきました。しかし、単にオンまたはオフにするのではなく、このAC電源の制御を必要とする多くの家電製品があります。さて、AC位相角制御の世界に入りましょう。これは、AC位相角を制御できる簡単な手法です。つまり、シーリングファンやその他のACファンの速度を制御したり、LEDや白熱電球の強度を制御したりすることもできます。
簡単そうに聞こえますが、実際に実装するプロセスは非常に難しいので、この記事では、555タイマーを使用して簡単なAC位相角制御回路を構築し、最後にArduinoを使用します。白熱電球の強度を制御するための単純なPWM信号を生成します。はっきりと想像できるように、この回路を使用すると、1つのArduinoでファンとACライト調光器を制御できるシンプルなホームオートメーションシステムを構築できます。
AC位相角制御とは何ですか?どのように機能しますか?
AC位相角制御は、AC正弦波を制御またはチョップする方法です。スイッチングデバイスの点弧角は、ゼロ交差検出に続いて変化し、その結果、修正された正弦波に比例して変化する平均電圧出力が得られます。以下の画像で詳細を説明します。
ご覧のとおり、最初にAC入力信号があります。次に、10msごとに割り込みを生成するゼロ交差信号があります。次に、ゲートトリガー信号があります。トリガー信号を取得したら、トリガーパルスを与える前に一定期間待機します。待機すればするほど、平均電圧を下げることができます。その逆も同様です。このトピックについては、この記事の後半で詳しく説明します。
位相角制御の課題
回路図とすべての材料要件を見る前に、この種の回路に関連するいくつかの問題と、回路がそれらをどのように解決するかについて説明しましょう。
ここでの私たちの目的は、あらゆる種類のホームオートメーションアプリケーション向けに、マイクロコントローラーを使用してAC正弦波の位相角を制御することです。下の画像を見ると、黄色で正弦波があり、緑色でゼロ交差信号があることがわかります。
50Hzの正弦波で作業しているため、ゼロ交差信号が10msごとに来ることがわかります。マイクロコントローラでは、10msごとに割り込みを生成します。それ以外のコードを入れた場合、中断により他のコードが動作しない場合があります。インドで聞こえるライン周波数は50Hzであることがわかっているので、50Hzの正弦波を使用しています。主電源のACを制御するには、特定の時間枠でトライアックのオンとオフを切り替える必要があります。これを行うために、マイクロコントローラーベースの位相角制御回路は、ゼロ交差信号を割り込みとして使用しますが、この方法の問題は、ペース角制御コード以外のコードを実行できないことです。ループサイクルとそれらのコードの1つは機能しません。
例を挙げて明確にしましょう。白熱電球の明るさを制御する必要があるプロジェクトを実行する必要があり、同時に温度を測定する必要があるとします。白熱電球の明るさを制御するには、位相角制御回路が必要です。また、温度データを一緒に読み取る必要があります。これがシナリオの場合、DHT22センサーに時間がかかるため、回路が正しく機能しません。その出力データを与えます。この期間中、位相角制御回路は動作を停止します。つまり、ポーリングモードで構成した場合ですが、割り込みモードでゼロ交差信号を構成した場合、DHTデータを読み取ることはできません。 CRCチェックが失敗するためです。
この問題を解決するには、位相角制御回路ごとに異なるマイクロコントローラーを使用できますが、BOMコストが増加します。別の解決策は、555タイマーなどの汎用コンポーネントで構成され、コストも低い回路を使用することです。
AC位相角制御回路に必要な材料
下の画像は、回路の構築に使用された材料を示しています。これは非常に一般的なコンポーネントで作られているため、リストされているすべての材料を地元のホビーショップで見つけることができます。
また、以下の表にタイプと数量とともにコンポーネントをリストしました。これはデモンストレーションプロジェクトであるため、単一のチャネルを使用して実行しています。ただし、回路は要件に応じて簡単にスケールアップできます。
Sl.No |
部品 |
タイプ |
量 |
1 |
ネジ留め式端子5.04mm |
コネクタ |
3 |
2 |
オスヘッダー2.54mm |
コネクタ |
1X2 |
3 |
56K、1W |
抵抗器 |
2 |
4 |
1N4007 |
ダイオード |
4 |
5 |
0.1uF、25V |
コンデンサ |
2 |
6 |
100uF、25V |
コンデンサ |
2 |
7 |
LM7805 |
電圧レギュレータ |
1 |
8 |
1K |
抵抗器 |
1 |
9 |
470R |
抵抗器 |
2 |
10 |
47R |
抵抗器 |
2 |
11 |
82K |
抵抗器 |
1 |
12 |
10K |
抵抗器 |
1 |
13 |
PC817 |
オプトカプラー |
1 |
14 |
NE7555 |
IC |
1 |
12 |
MOC3021 |
OptoTriacドライブ |
1 |
13 |
IRF9540 |
MOSFET |
1 |
14 |
3.3uF |
コンデンサ |
1 |
15 |
接続線 |
ワイヤー |
5 |
16 |
0.1uF、1KV |
コンデンサ |
1 |
17 |
Arduino Nano(テスト用) |
マイクロコントローラー |
1 |
AC位相角制御回路図
AC位相角制御回路の回路図を以下に示します。この回路は非常に単純で、汎用コンポーネントを使用して位相角制御を実現します。
AC位相角制御回路–動作中
この回路は非常に注意深く設計されたコンポーネントで構成されています。各コンポーネントを調べて、各ブロックについて説明します。
ゼロ交差検出回路:
まず、私たちのリストには、ゼロ交差検出回路が、4つの1n4007ダイオードとPC817オプトカプラーと組み合わせた2つの56K、1W抵抗で作られています。そして、この回路は、555タイマーICにゼロ交差信号を提供する役割を果たします。また、トライアックセクションでさらに使用するために、位相とニュートラル信号をテープオフしました。
LM7809電圧レギュレータ:
7809電圧レギュレータは回路に電力を供給するために使用され、回路は回路全体に電力を供給する責任があります。さらに、LM7809ICのデカップリングコンデンサとして2つの470uFコンデンサと0.1uFコンデンサを使用しました。
NE555タイマー付き制御回路:
上の画像は555タイマー制御回路を示しています。555は単安定構成で構成されているため、ゼロ交差検出回路からのトリガー信号がトリガーに当たると、555タイマーは抵抗を使用してコンデンサーの充電を開始します(一般的に)しかし、私たちの回路には抵抗の代わりにMOSFETがあり、MOSFETのゲートを制御することによって、コンデンサに流れる電流を制御します。そのため、充電時間を制御し、555タイマーの出力を制御します。 。多くのプロジェクトで、私たちはプロジェクトを作るために555タイマーICを利用しました。このトピックについてもっと知りたい場合は、他のすべてのプロジェクトをチェックしてください。
トライアックとトライアック-ドライバー回路:
トライアックは、実際にオンとオフを切り替えるメインスイッチとして機能し、AC信号の出力を制御します。トライアックを駆動するのはMOC3021オプトトライアックドライブです。トライアックを駆動するだけでなく、光絶縁、0.01uF 2KV高電圧コンデンサ、47R抵抗がスナバ回路を形成し、回路を高電圧スパイクから保護します。誘導性負荷に接続されている場合に発生しますが、スイッチされたAC信号の非正弦波の性質がスパイクの原因です。また、力率の問題を担当していますが、それは別の記事のトピックです。また、さまざまな記事で、TRIACを優先デバイスとして利用しています。興味があれば、それらを確認できます。
ローパスフィルターとPチャネルMOSFET(回路の抵抗として機能):
82K抵抗と3.3uFコンデンサは、Arduinoによって生成された高周波PWM信号を平滑化する役割を担うローパスフィルタを形成します。前述のように、PチャネルMOSFETは、コンデンサの充電時間を制御する可変抵抗器として機能します。それを制御するのは、ローパスフィルターによって平滑化されるPWM信号です。前回の記事では、ローパスフィルターの概念を明確にしました。トピックについて詳しく知りたい場合は、アクティブローパスフィルターまたはパッシブローパスフィルターに関する記事を確認してください。
AC位相角制御回路のPCB設計
位相角制御回路のPCBは、片面基板で設計されています。私はEagleを使用してPCBを設計しましたが、任意の設計ソフトウェアを使用できます。私のボードデザインの2D画像を以下に示します。
すべてのコンポーネント間で適切な接地接続を行うために、十分な接地充填が使用されます。12VDC入力と220ボルトAC入力は左側にあり、出力はPCBの右側にあります。ガーバーと一緒にイーグルの完全なデザインファイルは、以下のリンクからダウンロードできます。
- AC位相角制御回路のPCB設計、GERBER、PDFファイルをダウンロード
手作りPCB:
便宜上、PCBの手作りバージョンを作成しました。これを以下に示します。
AC位相角制御用のArduinoコード
回路を機能させるために簡単なPWM生成コードが使用されます。コードとその説明を以下に示します。このページの下部にも完全なコードがあります。まず、必要なすべての変数を宣言します。
const int AnalogInPin = A0; //ポテンショメータが接続されているアナログ入力ピンconstint analogOutPin = 9; // LEDが接続されているアナログ出力ピンintsensorValue = 0; //ポットから読み取られた値intoutputValue = 0; // PWMへの値出力(アナログ出力)
変数はAnalogピン、analogOutピンを宣言し、その他の変数はマップされた値を格納、変換、および出力します。次に、 setup() セクションで、UARTを9600ボーで初期化して、出力を監視できるようにします。これにより、どのPWM範囲が回路の出力を完全に制御できたかを確認できます。
void setup(){// 9600 bpsでシリアル通信を初期化します:Serial.begin(9600); }
次に、 loop() セクションで、アナログピンA0を読み取り、値をセンサー値変数に格納します。次に、atmegaのPWMタイマーが8ビットしかないため、センサー値を0〜255にマップします。Arduinoの analogWrite() 関数でPWM信号を設定します。最後に、シリアルモニターウィンドウに値を出力して、制御信号の範囲を確認します。このチュートリアルに従っている場合は、最後のビデオでトピックに関するより明確なアイデアが得られます。
sensorValue = analogRead(analogInPin); //アナログの値を読み取ります:outputValue = map(sensorValue、0、1023、0、255); //アナログ出力の範囲にマップします:analogWrite(analogOutPin、outputValue); //アナログ出力値を変更します:Serial.print( "sensor ="); //結果をシリアルモニターに出力します:Serial.print(sensorValue); Serial.print( "\ t output ="); Serial.println(outputValue);
AC位相角制御回路のテスト
上の画像は、回路のテストセットアップを示しています。12V電源は12VSMPS回路によって供給され、負荷はこの場合は電球であり、ファンのような誘導負荷に簡単に置き換えることができます。また、ランプの明るさを制御するためにポテンショメータを取り付けましたが、他の形式のコントローラに置き換えることができます。画像を拡大すると、ポットがに接続されていることがわかります。 ArduinoのA0ピンとPWM信号はArduinoのピン9から来ています。
上の写真でわかるように、出力値は84で、白熱電球の明るさは非常に低く、
この画像では、値が82であり、白熱電球の明るさが増加していることがわかります。
何度も失敗した後、実際に正しく動作する回路を思いつくことができました。回路が機能しないときにテストベンチがどのように見えるか疑問に思ったことはありませんか?見た目がとても悪いと言わせてください、
これは私が取り組んでいた以前に設計された回路です。以前のものが少し機能していなかったので、私はそれを完全に捨てて新しいものを作らなければなりませんでした。
さらなる機能強化
このデモンストレーションでは、回路は手作りのPCBで作成されていますが、回路は高品質のPCBで簡単に構築できます。私の実験では、PCBのサイズはコンポーネントのサイズのために非常に大きいですが、実稼働環境では安価なSMDコンポーネントを使用することで削減できます。私の実験では、555タイマーの代わりに7555タイマーを使用すると、被制御者が大幅に増加し、さらに回路の安定性も向上することがわかりました。