回答:
PIC16C74A / F77プロセッサを使用してソフトスターターを設計しました。ノイズの多い環境でも作業する必要がある場合、ゼロクロッシングは注意が必要です。
プロセッサをラインから分離する必要がない場合は、CPUピンに給電するいくつかの高値抵抗を使用しても問題はありません。堅牢性の問題として、2つのショットキーダイオードを使用して内部保護ダイオードを増強しますが、問題なく動作します。絶縁が必要な場合は、トランジスタ出力オプトアイソレータを使用してください。オプトのスイッチング速度に注意し、トランジスタコレクタ電流を最小化してスイッチング速度を最大化します。
そうは言っても、ノイズに移りましょう。抵抗加熱以外の位相制御を行う場合、対処するノイズが発生します。つまり、対処するゼロクロスノイズが発生する可能性が非常に高くなります。ゼロ交差入力を割り込みピンに供給するという新人ミスをしないでください。これにより、プロセッサが膨大な数の割り込みを処理しようとすると、ソフトウェアが不快な煙に変わります。(私は経験から話しています。)ライン上でRCまたはより高度なローパスフィルターを使用すると、位相シフトが発生します。あなたがそれで働くことができれば、素晴らしい。そうでない場合(50/60および400Hzシステムに対処しなければならなかった場合)、他の手段を試さなければなりません。
私自身の設計では、回線をポーリングし、本質的にトランジェントを無視する投票ルーチンを作成することで、ソフトウェアでそれを処理しました。位相シフトは私が扱える範囲内でした。それは高速であり、大きなノイズがあっても動きません。(誘導炉からフィルターキャップを取り外した施設でテストしたところ、以前にこのようなノイズの多いラインを見たことはありません!)再設計する場合、ワンショットを含む外部ソリューションを試してみるとよいでしょうゼロクロスをラッチ」すると、マイクロコントローラは次の割り込みを設定する前にそれを確認します。
結局のところ、実際のゼロクロッシングを実際の状況で確実に見つけることは、ソフトスターターの設計の難しい部分の1つだと思います。制御ループを閉じるのは二次的でしたが、ほとんどの場合はチューニングのみでした。それは非常に簡単なことのように思えますが、その間、理論と実践の違いについてかなり学びました。:-)
「投票」ルーチンを説明するために編集します。
正しく覚えていれば、ラインがゼロより上にあるときにハイであり、ラインがゼロより下にあるときにローだったI / Oラインがありました。投票ルーチンは単にその行をポーリングし、最後の3つのサンプルのうち2つが同じであれば、行がゼロを超えたという事実を受け入れました。これは、マークとスペースを検出するUARTの投票回路に非常に似ています。このような回路の利点は、位相シフトが固定され(2 *サンプルレート)、発生しているノイズのタイプに合わせて調整できることです。ポーリングがどれほど速かったのかは覚えていませんが、もし私が8kHzを言うとしたら、その数字が頭に浮かぶので、もし危険だと思うなら。
おそらくこれを行う方法はたくさんあります...しかし、私がそれをしていたら、念のために小さな絶縁トランスを使用します。大きな抵抗器を介してでも、主電源をマイクロコントローラに直接接続することはお勧めできません。
あなたのオプションは、マイクロに大きな抵抗分割器を使用するか、メインレベルの電圧をマイクロの範囲に押し下げる小さなトランスを使用することだと思います。もちろん、両方を組み合わせて使用することもできます。
マイクロコントローラーを使用したくない場合は、常にコンパレーターを使用して、電圧を0vに対してテストすることができます。コンパレータからのパルスは短くなりますが、それに対処する方法もあります。