Jawaban:
Ya, debouncing di kedua arah diperlukan jika Anda ingin satu sisi dijamin setiap kali saklar berubah.
Untungnya, Anda tidak memerlukan perangkat keras tambahan untuk debouncing jika sakelar terhubung ke mikrokontroler. Jika mikro memiliki pullup internal, yang banyak dilakukan, Anda tidak membutuhkan yang lebih eksternal daripada saklar antara pin mikro dan arde.
Saya menemukan 50 ms adalah waktu debounce yang baik. Sebagian besar saklar memantul dengan baik kurang dari itu, tetapi beberapa bisa hampir selama itu. Tapi, 50 ms masih akan terasa instan bagi pengguna manusia, jadi Anda mungkin juga bisa diandalkan. Satu-satunya perbedaan adalah jumlah yang Anda hitung dalam firmware, jadi tidak ada biaya tambahan di sana. Saya biasanya memiliki interupsi periodik 1 ms karena alasan lain, jadi jika sakelar berada dalam status yang sama 50 kali berturut-turut dalam interupsi itu, maka Anda menyatakannya terputus ke status baru.
Secara umum Anda akan memiliki bit global yang menunjukkan status resmi sakelar yang didebok. Inilah logika yang perlu diketahui ke arah mana switch diatur menggunakan. Satu-satunya keadaan tambahan yang Anda butuhkan adalah penghitung, biasanya satu byte, dalam rutin interupsi. Katakanlah interruptnya adalah setiap 1 ms dan waktu debounce adalah 50 ms. Untuk setiap interupsi:
Jika keadaan instanan cocok dengan kondisi debouncing: Atur ulang penghitung ke 50 Selesai Jika keadaan sesaat berbeda dari keadaan terbebas: Penghitung penurunan Jika penghitung mencapai 0: Nyatakan status debouncing baru Atur ulang penghitung ke 50 Selesai
Ya saya akan menggunakannya, mekanismenya pada dasarnya sama. Saat Anda memutuskan kontak, Anda akan memiliki titik waktu di mana saklar membuat kontak listrik yang baik serta tidak membuat kontak listrik yang baik. Sama seperti saat Anda melakukan kontak.
Secara umum, ya. Sakelar mekanis dapat menghasilkan suara listrik (memantul) baik di dekat maupun terbuka.
Secara umum, ya, tapi itu selalu tergantung pada apa yang Anda lakukan dengan input digital. Saya sudah memiliki beberapa sistem yang sama sekali tidak perlu disingkirkan ke kedua arah.
Namun, jika Anda mengendarai interupsi, kemungkinan besar Anda harus melongo.