ゼロクロス作動リレー
ゼロクロス電力でトリガーするスイッチ(ソリッドステートリレーまたはトライアックに基づく)をプログラミングするにはどうすればよいですか? 主題に精通していない人のために:電力線の正弦波がゼロを横切るとき、230Vの電源をオンにします-結果は、電流の急速なスパイクから生じる電磁妨害を最小限に抑えます。 具体的には、できる限りソフトウェアに移行したいです。レベルと電流を抑えるための小さなトランス、ダイオード、およびカップル抵抗器で構成される検出回路は、AC入力電力が正の半分の場合「1」、負の「0」を入力GPIOピンに接続します。出力は、出力GPIOピンに接続されたいくつかのソリッドステートリレーとそれらを実行し続けるための最低限の要素(プルアップなど)で構成されます。 問題はタイミングです。AC50Hzでは、1秒間に100個のゼロ交差が発生し、1半サイクルは10msです。ゼロクロッシングから妥当な距離内に移動して前述のEMIを低く抑えるために、ゼロクロッシングのイベントを10%以上過ぎた(またはその前に)出力をアクティブにしないでください。これは、1msの反応時間を意味するものではありません。次のゼロ交差は、最初のゼロ交差、または4番目-40msの10ms後に正確に起こると合理的に予想できます。これは粒度に関するものです-反応に20ミリ秒を許可する場合、18または22ではなく、19〜21ミリ秒にする必要があります。 このようなタイマーを実装するにはどうすればよいですか-入力がエッジを検出してから1ms以内、またはそれから10msの固定倍数以内で出力GPIOをトリガーします-負のバイアスを許容して(たとえば、トランスとリレーは1.6msの遅延を導入します;そのため、入力パルス以降、トリガーが8.4+(n * 10)msオフになるようにしたいので、バイアスは回路によって導入された遅延に対抗します。)-もちろん、「ユーザーの要求に応じて」、ユーザーは「1 「/ sys / class / ...ファイルに出力し、最も近い(おおよそ)機会に出力が「オン」になります。ユーザーは「0」を書き込み、ゼロ交差が到着すると、特定のリレーが解除されます。 これには、カーネルモジュールの作成またはハッキングが必要になると思います。カーネル内でRaspberry PiのGPIOピンを処理するもの、およびこの種類の機能を取得するために(既に配置されているものがない限り)どのような種類のタイマーをアタッチできますか?