Sıfır geçiş gücüne neden olan bir anahtarın (katı hal rölesine veya bir triyaka dayalı olarak) nasıl programlanacağı hakkında?
Konuya aşina olmayanlar için: Güç hattının sinüs dalgası sıfıra ulaştığında 230V gücü açın - sonuç, akımdaki hızlı artıştan kaynaklanan elektromanyetik bozuklukları en aza indirir.
Özellikle, mümkün olduğunca yazılıma geçmeyi tercih ederim. Seviyeleri ve akımları kontrol altında tutmak için küçük bir transformatör, bir diyot ve bir çift dirençten oluşan algılama devresi, AC giriş gücü pozitif yarıda, negatif olarak "0", bir giriş GPIO pinine bağlı olduğunda "1" sağlar. Çıktı, çıkış GPIO pinlerine bağlı olan birkaç katı hal rölesi ve onları çalışır durumda tutmak için temel gerekliliklerden oluşur (pull-up vb.).
Sorun zamanlamadır: 50Hz AC ile saniyede 100 sıfır geçiş alırız, bir yarım döngü 10 ms'dir. Söz konusu EMI'yi düşük tutmak için sıfır geçişten makul mesafeye ulaşmak için, çıkışı sıfır geçiş durumunda% 10'dan fazla (veya daha önce) etkinleştirmemeliyiz, yani + -1 ms tolerans anlamına gelir. Bu, 1ms reaksiyon süresi anlamına gelmez - bir sonraki sıfır geçişinin ilkinden 10ms sonra veya dördüncü - 40ms'den sonra olmasını bekleyebiliriz. Ayrıntı ile ilgilidir - reaksiyon için 20 ms'ye izin verirsek, 18 ila 22 değil, 19 ila 21 ms arasında olmalıdır.
Giriş böyle bir zamanlayıcı - tetikleyici çıkış GPIO'yu 1ms içinde ya da o zamandan beri bir kenar algıladığında ya da o zamandan bu yana 10ms'lik sabit bir katmanda nasıl uygulayabilirim - tercihen bazı negatif sapmalara izin vererek (örneğin, transformatör ve röle 1.6ms gecikme sağlar; Bu yüzden giriş darbesinden bu yana tetikleme 8.4+ (n * 10) ms sönmesini istiyorum, bu şekilde sapma devrenin getirdiği gecikmeyi önler.) - Tabii ki "kullanıcı talebi üzerine", kullanıcı yazar "1 "a / sys / class / ... dosyasına ve en yakın (kabaca) fırsata çıktı" devam eder ". Kullanıcı "0" yazar ve sıfır geçiş geldiğinde belirli röle devre dışı kalır.
Bunun bir çekirdek modülü yazmayı veya hacklemeyi gerektireceğine inanıyorum. Beni çekirdekteki Raspberry Pi'nin GPIO pinlerini neyin ele aldığını ve bu tür bir işlevsellik elde etmek için ne tür zamanlayıcılar ekleyebilirim (zaten bir tane yoksa).