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