Bisakah beberapa pemicu Schmitt secara seri melambung sepenuhnya dari sebuah saklar?

8

Setelah berurusan dengan debouncing perangkat lunak untuk sementara waktu, saya merasa butuh banyak sekali pada sistem, jadi saya berpikir untuk membuat debouncer perangkat keras dengan satu pemicu Schmitt (74HC14), kapasitor, tombol, dan resistor seperti yang ditunjukkan di bawah ini dari talkingelectronics.com :

sirkuit elektronik yang berbicara

Tapi saya membaca bahwa pemicu Schmitt setengah jahat seperti inverter biasa ketika menentukan kapan akan mengeluarkan output tinggi atau rendah, karena ia beralih negara pada tanda 33% dan 66% di mana sebagai inverter normal akan beralih lebih dekat ke tanda 50% (tetapi dengan versi HC mungkin lebih pada 55%).

Saya bertanya-tanya, karena pemicu Schmitt adalah enam inverter dalam satu paket, akan melemahkan secara substansial dengan tombol apa pun pilihan saya diterapkan pada input pertama jika saya membuat enam rangkaian di sisi kanan dengan nilai-nilai komponen yang sama dan menghubungkan semua dari mereka secara seri? (Contoh: output dari sirkuit pertama ke input dari sirkuit kedua di mana kapasitor dan resistor bertemu.)

Mike
sumber
3
"karena ia beralih negara pada tanda 33% dan 66%" , bukankah itu seluruh titik menggunakan pemicu schmitt? ... Sehingga ada jendela di tengah di mana ia tidak beralih, sehingga melonggarkan?
Bort
5
Bagaimana cara men-debo mengambil banyak korban pada sistem ?? Debound perangkat lunak dapat sesederhana menjaga interval 50 ms antara membaca tombol.
Wouter van Ooijen
2
@ Mike Mungkin Anda memiliki kesalahpahaman tentang pemicu Schmitt? Apakah Anda sadar bahwa mereka memiliki histeresis, dan bahwa titik sakelar asimetris "tumpang tindih": tidak ada garis tengah di mana sinyalnya tidak ditentukan.
pipa
4
Masalah Anda sama sekali tidak ada hubungannya dengan ini - masalah Anda adalah bahwa Anda tidak tahu bagaimana menulis perangkat lunak dengan cara yang tidak efisien. Saya sangat menyarankan memposting pertanyaan lain di forum ulasan kode untuk menanyakan kesalahan yang Anda lakukan pada perangkat lunak Anda, karena bahkan prosesor 8-bit termurah dapat mengeluarkan banyak input tanpa berkeringat.
Graham
2
@ Mike Kecuali jika Anda memiliki ribuan peristiwa per detik Anda harus melakukan debounce, saya tidak melihat bagaimana ini dapat mengkonsumsi dampak terukur pada runtime.
Dmitry Grigoryev

Jawaban:

12

Menggunakan pemicu Schmitt secara seri tidak akan mengurangi bouncing lebih jauh.

Pertimbangkan filter:

Schmitt memicu perbandingan bentuk gelombang

Inputnya adalah (U). Garis merah adalah ambang batas 50%, outputnya terlihat sebagai sinyal (A). Memantul setiap kali input melewati.

Garis hijau kira-kira 33% dan 66%, seperti yang telah Anda sebutkan. Tetapi output (B) hanya beralih ketika input (U) melintasi dari satu ambang hijau ke yang lain.

Yang terpenting, outputnya sepenuhnya TINGGI atau RENDAH (digital). Jadi jika output dari pemicu Schmitt dimasukkan ke input yang lain, pada dasarnya tidak ada perbedaan.

Ambil output yang difilter dari atas (B), dan pikirkan bagaimana itu akan dilihat oleh pemicu Schmitt lain:

Pemicu Schmitt secara seri dengan yang lain

Sekali lagi, output yang pertama adalah TINGGI atau RENDAH. Jadi itu akan melewati ambang pada saat yang sama, menghasilkan output yang sama dengan input. Tidak ada yang perlu di-debounce! Jika ada, saya harapkan akan menciptakan lebih banyak noise, karena Anda memperkenalkan lebih banyak komponen dan dengan demikian lebih banyak ruang untuk kesalahan.

Sepertinya yang Anda cari adalah pemicu Schmitt dengan ambang batas yang bisa disesuaikan. Beberapa simetris (misalnya: 33% dan 66%, atau 10% dan 90%). Lainnya tidak simetris (misalnya: 33% dan 80%). Anda dapat membuatnya sendiri menggunakan op-amp.

Coba main-main dengan simulasi ini yang saya kumpulkan beberapa waktu lalu: Simulasi Schmitt Trigger - Non-Inverting Non-Symmetric

Simulasi Pemicu Schmitt - Non-Inverting Non-Symmetric

Bort
sumber
Mengingat saya akan membuat PCB, terkadang mengikat dua inverter secara seri akan membuat PCB lebih mudah dibuat. Berapa banyak suara yang akan saya harapkan jika saya mengikat dua inverter ini secara seri?
Mike
Untuk pengaturan itu, "noise" kemungkinan akan diabaikan. Mungkin ada microsecond dari waktu propagasi. Tegangan "noise" tidak akan menjadi masalah besar, karena setiap pemicu adalah filter. Saya tidak akan khawatir tentang hal itu kecuali aplikasi sangat bergantung pada waktu, tapi saya kira itu bukan karena itu hanya sebuah tombol.
Bort
15
Bisakah beberapa pemicu Schmitt secara seri melambung sepenuhnya dari sebuah saklar?

Pemicu Schmitt tunggal dengan filter analog di depannya dapat digunakan untuk debouncing. Namun, setelah pemicu Schmitt itu, sinyal sepenuhnya digital. Pemicu Schmitt tambahan apa pun tidak akan mengubahnya. Idealnya mereka akan menyimpan sinyal.

Pada topik terpisah, debouncing dalam firmware seharusnya tidak menghadirkan banyak beban. Cara yang biasa adalah mengambil sampel status sakelar dalam interupsi berkala yang sudah Anda miliki. Anda mendeklarasikan status debounce nilai sakelar saat ini ketika Anda telah melihat sakelar dalam status itu untuk sampel N berurutan. Saya biasanya meminta sakelar berada dalam status yang sama selama 50 interupsi 1 ms berturut-turut agar keadaan baru dianggap valid. Itu biasanya mengambil sebagian kecil dari siklus prosesor secara keseluruhan.

Olin Lathrop
sumber