Saya memiliki tombol bel di rumah saya kabel ke papan dev GHI EMX . Perangkat lunak mengevaluasi waktu hari dan menentukan apakah bel pintu berdering atau tidak.
Catatan Samping: Ini diterapkan sebagai cara untuk berurusan dengan ding-dong-parit yang saya terima.
Ini semua bekerja dengan baik kecuali untuk satu masalah, kawat yang terhubung ke papan EMX adalah sekitar 50 kaki (~ 15 meter) panjangnya dan menghasilkan interferensi yang cukup bagi papan untuk berpikir bahwa seseorang telah menekan tombol dan dengan demikian bel pintu berdering pada interval acak sepanjang hari itu Baik istri saya dan anjing saya tidak menghargai ini (tetapi anak-anak berpikir itu sangat menyenangkan).
Saya sudah mencoba memperbaiki masalah dengan mengikuti saran yang ditemukan dalam artikel ini dan menerapkan rangkaian berikut:
Ini tidak memperbaiki masalah, tetapi saya menemukan bahwa meletakkan resistor 3k di untuk 1k dan mengganti kapasitor .01uF dengan 40uF bekerja sedikit lebih baik, tetapi sesuatu yang lebih dari 3k menyebabkan penundaan yang terlihat ketika menekan tombol sebelum tombol bel berdering. Perbedaan untuk sirkuit saya adalah bahwa papan berjalan pada 3.3V bukan 5V (yang saya asumsikan membuat masalah lebih buruk) dan bukannya menghubungkan ke ground switch melengkapi sirkuit (yaitu dua kabel antara mikrokontroler dan switch).
Kabel yang berjalan di antara sakelar dan mikrokontroler adalah kabel bel pintu standar yang tidak dilindungi atau dipuntir. Mengganti kawat bel dengan kawat berpelindung, sayangnya, bukan pilihan karena itu akan mengharuskan saya merobek drywall.
Saya telah melihat pertanyaan berikut di sini , tapi itu sepertinya berurusan dengan ADC yang mungkin sedikit berbeda dari masalah saya. Bantuan apa pun akan sangat dihargai.
Pembaruan
Setelah membaca lebih banyak dokumentasi , tampak bahwa walaupun mikrokontroler ini ditenagai oleh 3.3V, tetapi 5V toleran pada pin I / O itu. Saya dapat menyesuaikan ke nilai resistor yang lebih tinggi jika saya menggunakan 5V, tetapi apakah ini akan membantu?
sumber
Jawaban:
Apa yang tidak diperlihatkan oleh skema adalah mode umum 60Hz hum yang sangat besar dan bagaimana landasannya saling berhubungan dengan kedekatan dengan saluran AC & transien saluran listrik.
Contoh Anda adalah contoh yang baik tentang bagaimana tidak menghubungkan kabel panjang.
Izinkan saya menyarankan di masa depan;
Karena banyak opsi tidak berhasil. Lakukan ini;
Dengan solusi ini, impedansi sirkuit sakelar akan menurunkan impedansi pada penutupan dan impedansi rendah dengan sakelar penutup listrik saat dibuka. CM hum akan diserap dan noise RF diferensial ditekan.
-menarik tegangan suplai yang sama seperti UC dengan tutup RF yang baik di seluruh chip.
sumber
Sebuah solusi sederhana mungkin untuk meninggalkan sistem bel seperti sebelum Anda memulai proyek ini dan hanya menggunakan pengontrol mikro untuk mematikan daya ke speaker bel pintu dengan relay ketika Anda tidak ingin mendengar bel.
Memperbarui
Saya tidak terlalu mengenal sistem bel (selain google cepat) sehingga yang berikut mengasumsikan Anda memiliki setidaknya dua konduktor yang berjalan dari MCU Anda ke sakelar.
Papan GHI EMX yang Anda miliki memiliki ADC 10 bit sehingga Anda dapat mengirim 12vDc (atau lebih) ke bel pintu dan menggunakan pembagi tegangan sederhana sehingga tegangan ke MCU tidak melebihi 5 volt maks. Kemudian pada sisi perangkat lunak yang Anda lakukan adalah membaca ADC dan jika nilainya> 1000 (Anda mungkin harus bermain-main dengan nomor ini, dan 1023 adalah maks pada 10 bit ADC) maka bel pintu telah ditekan.
Akan terlihat seperti ini (cobalah untuk tidak kewalahan oleh keterampilan mengedit grafik saya yang luar biasa):
Pilihan lain yang serupa adalah menggunakan pemicu schmitt dengan tegangan input yang lebih tinggi. Tapi ini akan membutuhkan bagian tambahan dan lebih banyak upaya daripada opsi ADC.
Edit
Jawaban Chris Stratton membuat poin bagus tentang aliran saat ini. Jika Anda mengubah resistor tarik 100k menjadi ~ 220ohm yang dapat melakukan trik.
sumber
Sebenarnya ada solusi yang sangat sederhana untuk masalah ini.
Kunci untuk memahami solusi ini adalah memikirkan mengapa bel pintu elektro-mekanis biasa tidak berdering karena gangguan serupa. Jawabannya tentu saja adalah membutuhkan daya dering aktual untuk mengalir melalui sirkuit tertutup - interferensi tidak akan memasangkan daya yang cukup ke sirkuit terbuka untuk cincin palsu.
Anda dapat membuat situasi serupa dengan menggunakan resistor pullup bernilai rendah, dengan tombol bel terhubung ke ground. Seratus ohm hambatan akan berarti bahwa sekitar 25 miliamp arus harus mengalir sebelum input mikrokontroler ditarik cukup rendah untuk dibaca sebagai "0". Komunikasi serial jarak jauh sering dilakukan dengan arus 20 mA, jadi 25 mA sudah cukup, tetapi Anda dapat dengan mudah menyesuaikan atas atau bawah.
Anda selanjutnya dapat menolak gangguan dengan memiliki perangkat lunak pada mikrokontroler yang mengharuskan tombol dipertahankan tertutup - tanpa celah - untuk 100 mS atau lebih sebelum itu akan diakui sebagai dering yang valid.
Orang bisa berpendapat bahwa metode ini membuang-buang daya, namun daya hanya dikonsumsi selama waktu bel ditekan. Resistor memang perlu memiliki kapasitas penanganan daya (termal) untuk kemungkinan tombol macet tertutup secara permanen, tetapi itu tidak akan menjadi kasus biasa untuk menghitung konsumsi daya.
sumber
Kabel 15 meter bertindak seperti antena. Anda perlu menggunakan kapasitor feedthru (misalnya W2F11A4708AT1F ) untuk memfilter interferensi RF.
sumber