Saya telah merancang soft starter menggunakan prosesor PIC16C74A / F77. Zero crossing dapat menjadi rumit jika Anda juga harus bekerja di lingkungan yang bising.
Jika Anda tidak memerlukan prosesor untuk diisolasi dari saluran, tidak ada yang salah dengan beberapa resistor bernilai tinggi yang menyuplai pin CPU. Saya akan menggunakan beberapa dioda shottky untuk menambah dioda perlindungan internal hanya sebagai masalah ketahanan, tetapi akan bekerja dengan baik. Jika Anda membutuhkan isolasi, gunakan optoisolator keluaran transistor. Perhatikan kecepatan switching opto dan meminimalkan arus kolektor transistor untuk memaksimalkan kecepatan switching.
Karena itu, mari beralih ke kebisingan. Jika Anda mengendalikan fase selain dari pemanasan resistif Anda akan memiliki suara untuk bersaing dengan yang berarti sangat mungkin Anda akan memiliki kebisingan nol-persimpangan untuk berurusan dengan. Jangan melakukan kesalahan pemula dalam memberi makan input persimpangan nol ke pin interupsi; yang akan mengubah perangkat lunak Anda menjadi kerumunan perokok ketika prosesor mencoba menangani trilyun interupsi. (Saya berbicara dari pengalaman.) Melemparkan RC atau filter low-pass yang lebih canggih di saluran hanya akan memperkenalkan pergeseran fase. Jika Anda bisa bekerja dengan itu, bagus. Jika tidak (saya harus berurusan dengan sistem 50/60 dan 400Hz) maka Anda harus mencoba cara lain.
Pada desain saya sendiri saya merawatnya dalam perangkat lunak dengan memungut suara dan pada dasarnya membuat rutinitas pemungutan suara yang mengabaikan transien. Pergeseran fase ada di dalam apa yang bisa saya tangani, itu cepat dan itu tidak akan keluar bahkan dalam kebisingan yang berat. (Diuji di fasilitas di mana mereka melepaskan tutup filter dari tungku induksi, saya belum pernah melihat garis yang bising sebelumnya!) Jika saya mendesain ulang, saya pikir saya mungkin akan mencoba solusi eksternal yang melibatkan satu-shot yang akan " latch "the zero cross dan kemudian mikrokontroler akan mengakuinya sebelum interupsi berikutnya dapat diatur.
Semua mengatakan, saya pikir menemukan titik nol yang sebenarnya dalam situasi praktis adalah andalan dari desain starter lunak. Menutup loop kontrol adalah yang kedua, tetapi sebagian besar hanya penyetelan. Sepertinya hal yang sangat sederhana untuk dilakukan tetapi saya belajar sedikit tentang perbedaan antara teori dan praktek selama waktu itu. :-)
sunting untuk menggambarkan rutin "memilih":
Jika saya ingat dengan benar, saya memiliki garis I / O yang tinggi ketika garis di atas nol dan rendah ketika garis di bawah nol. Pemilihan rutin hanya mensurvei garis itu dan jika 2 dari 3 sampel terakhir adalah sama, saya menerima kenyataan bahwa garis telah melewati nol. Ini sangat mirip dengan sirkuit pemungutan suara UART untuk mendeteksi tanda dan ruang. Manfaat dari rangkaian seperti ini adalah bahwa pergeseran fasa Anda telah diperbaiki (laju sampel 2 *) dan Anda dapat menyetelnya untuk jenis kebisingan yang Anda alami. Saya tidak ingat seberapa cepat polling itu tetapi jika saya harus menebak saya akan mengatakan 8kHz, karena angka itu mencuat di pikiran saya.