單片機(jī)的獨立按鍵是如何消除抖動 什么是鍵盤抖動?對系統(tǒng)有什么影響?
什么是鍵盤抖動?對系統(tǒng)有什么影響?按鍵時有一種不穩(wěn)定的狀態(tài),叫做抖動。因為單片機(jī)是高速器件,在抖動期(10-20 ms)按一次鍵就可以檢測多次通斷,實際上只有一次。因此,可以用軟件和硬件的方法來消除抖
什么是鍵盤抖動?對系統(tǒng)有什么影響?
按鍵時有一種不穩(wěn)定的狀態(tài),叫做抖動。因為單片機(jī)是高速器件,在抖動期(10-20 ms)按一次鍵就可以檢測多次通斷,實際上只有一次。因此,可以用軟件和硬件的方法來消除抖動。
單片機(jī)delay的用法?
比如在按鍵檢測中,線路延時會先完成一會兒去抖,再延時一會兒完成檢測到按壓后的等待彈跳。比如數(shù)碼管顯示,先控制第一個數(shù)碼管顯示,后面再控制第二個,否則會導(dǎo)致整個數(shù)碼管一直亮著顯示8。另一個例子是步進(jìn)電機(jī)控制。延時用來控制從110000開始到011000之間的轉(zhuǎn)速,延時長的旋轉(zhuǎn)慢。
但如果需要,程序可以通過按鍵控制步進(jìn)電機(jī)的速度,同時在數(shù)碼管上顯示控制參數(shù)。這時候問題就出現(xiàn)了:檢測到按鍵,電機(jī)不轉(zhuǎn),數(shù)碼管不現(xiàn)實,因為CPU處于延時,在做無用的空操作。同樣,控制電機(jī)轉(zhuǎn)動時,數(shù)碼管不亮,檢測不到按鍵??刂茢?shù)碼管也是如此??梢钥闯觯鞒讨懈鱾€模塊的代碼不具有可重用性和可擴(kuò)展性。
輕觸開關(guān)如何工作的及相關(guān)知識講解有哪些?
觸摸開關(guān)是人機(jī)交互的主要輸入設(shè)備之一,觸摸開關(guān)的應(yīng)用非常廣泛。家里會用到電視機(jī)、洗衣機(jī)、遙控器、鼠標(biāo)、鍵盤等需要進(jìn)入輸入操作的電子產(chǎn)品。觸摸開關(guān)有各種尺寸、形狀、鍵強(qiáng)度和安裝形式,電子工程師可根據(jù)實際應(yīng)用要求選擇使用。
觸摸開關(guān)和工作原理雖然觸摸開關(guān)有很多種形狀、大小、按壓強(qiáng)度、安裝形式,但其工作原理都是一樣的,就是一個開關(guān)。用一定的力按壓,里面的兩個觸點就會連在一起,接通。手松開后,觸點會因機(jī)械力而分離斷開。這種機(jī)械力可以由觸摸開關(guān)內(nèi)部的金屬嵌套件或可變形橡膠結(jié)構(gòu)提供。
觸摸開關(guān)的注意事項觸摸開關(guān)一般用于開關(guān)信號輸入,通過的電流很小。如果用于電流導(dǎo)通控制,一定要注意觸摸開關(guān)的工作電流是否能滿足要求。使用MCU檢測觸摸開關(guān)輸入時,必須加上拉或下拉電阻(當(dāng)然也可以使用MCU內(nèi)部的上拉或下拉電阻)。圖A中未加上拉電阻,觸摸開關(guān)未按下時輸入端口A狀態(tài)未知;圖B加一個上拉電阻,觸摸開關(guān)未按下時,輸入端口B的狀態(tài)為某個高電平;可以看出,圖B與上拉電阻的連接更加可靠。
檢測觸摸開關(guān)信號輸入需要去抖。因為觸摸開關(guān)中開關(guān)信號是由兩個內(nèi)部彈簧觸點導(dǎo)通產(chǎn)生的,所以在振動發(fā)生時也可能產(chǎn)生非常短的導(dǎo)通信號;在觸點閉合和釋放的瞬間,它也將出現(xiàn)在極短時間內(nèi)多次閉合和斷開的抖動信號。這時,我們可以 我不認(rèn)為用戶已經(jīng)多次按下觸摸開關(guān)。在軟件設(shè)計中,需要去除這些抖動信號,得到可靠的輸入信號,避免用戶誤操作。
最簡單的方法就是延遲搖晃。當(dāng)觸摸開關(guān)閉合時,我們可以延時20毫秒(當(dāng)然這個時間可以根據(jù)實際情況設(shè)置),延時后再檢測觸摸開關(guān)。如果它仍然關(guān)閉,我們認(rèn)為觸摸開關(guān)已經(jīng)按下它。當(dāng)然,也有其他更好的去除抖動的方法,只要達(dá)到消除抖動信號的目的。歡迎關(guān)注@電子產(chǎn)品設(shè)計方案,一起享受分享學(xué)習(xí)的樂趣!關(guān)注我,成為朋友,一起交流學(xué)習(xí)。記得點贊評論!非常感謝
