高傳輸量.高供電量. 兼容性強(qiáng).穩(wěn)定耐用
漢洋咨詢熱線
0769-82988901單片機(jī)撥動開關(guān)接觸抖動問題的解決方案
撥動開關(guān)元件可以給單片機(jī)輸入引腳提供邏輯電平信號供單片機(jī)檢測,是一種較為簡單的輸入方式。在實(shí)踐中撥動開關(guān)信號的輸入并不是那么簡單,還需要考慮開關(guān)的接觸抖動這樣一個常見問題。當(dāng)開關(guān)被按下的瞬間,由于存在機(jī)械反彈或者振動或者觸點(diǎn)污垢而引起接觸抖動,會產(chǎn)生一系列毛刺脈沖,而不是產(chǎn)生一個理想的從低電平到高電平的跳變。
?
解決撥動開關(guān)抖動這個問題更簡易的方法,是接入一個簡單的RC濾波電路,濾除電壓的快速變化。由于開關(guān)的抖動時間是不太確定的,因此RC電路的電阻值和電容值也就不能精準(zhǔn)地確定。一般情況下,建議采用電阻值為100kΩ的電阻和電容值為100nF的電容。
如果對于撥動開關(guān)穩(wěn)定性要求更高,還可以采用一種更完善的解決措施。例如核心采用一片標(biāo)準(zhǔn)數(shù)字集成電路74HCO0構(gòu)成的一個RS觸發(fā)器,觸發(fā)器的兩個輸入端連接一只兩檔撥動開關(guān)。觸發(fā)器一旦檢測到開關(guān)觸點(diǎn)產(chǎn)生的第一個脈沖,將立刻改變其輸出端的邏輯狀態(tài),并且會維持不變。這種解決方案成本較高,但是可以使撥動開關(guān)的抖動問題能夠有效徹底地根除。由于該電路中沒有采用電容元件,因此即使很短的有效脈沖也能夠保障可靠接收。
除了上述的這些硬件解決方案,也有一種簡單的軟件解決方案。當(dāng)程序在檢查輸入引腳狀態(tài)時首次發(fā)現(xiàn)邏輯電平發(fā)生變化,就在等待一段延時之后再次進(jìn)行核驗。如果電平變化被確認(rèn),這意味著一個撥動開關(guān)確實(shí)改變了它的位置。這種方案的成本低,無噪聲,容錯能力強(qiáng)。其缺點(diǎn)類似于阻容型消抖開關(guān),對于撥動開關(guān)按下持續(xù)時間比程序延時更短的有效輸入脈沖,不能保證準(zhǔn)確接收。
?
掃一掃二維碼
掃一掃微信號