新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 一種按鍵防誤觸延時開關電路

        一種按鍵防誤觸延時開關電路

        作者: 時間:2025-02-13 來源:硬件筆記本 收藏

        1、應用背景

        在我們日常生活中,用的最多的電子產品,比如電腦、手機等,一般都有開關機鍵,當我們想開機或者關機的時候,我們就必須長按(比如5s)才會產生動作響應。

        本文引用地址:http://www.104case.com/article/202502/466905.htm


        圖1 應用場景

        這樣設計的目的就是防止誤操作,防止不小心碰到了,然后就開關機了,影響體感。


        今天給大家分享一種按鍵防誤觸延時


        2、電路分析

        該電路主要由PMOS管,NPN三極管和按鍵組成。由按鍵S1和軟件GPIO1來控制MOS管Q1的通斷,達到控制設備開關機的效果。


        圖2 電路

        電路分析:

        步驟一:

        按鍵S1按下,MOS柵極被拉低,Vgs=Vg-Vs=VA-12V<0V。

        通過設定電阻R3,R4的阻值,為PMOS的Vgs提供一個合適的電壓,因為不同MOS的gs不同,超過其工作范圍,管子可能會壞。

        阻值設定好后,MOS導通(電流流向路徑①),電源12V向后級供電,比如DC/DC芯片,運放,單片機或電路其他部分;


        圖3 按鍵S1按下,電流方向

        步驟二:

        后級電路通電后,單片機開始工作,單片機的GPIO1產生一個高電平,從而三極管Q2開通,MOS管Q1柵極被拉低,MOS導通,完成供電自鎖。自鎖后,電路就就一直有電。


        圖4 Q2導通,電流方向


        整個電路的工作過程很簡單,那它是怎么做到防誤觸延時開關的呢?

        細心的同學可能有注意到,圖中還有一個GPIO2信號檢測口:

        當按鍵S1松開時,GPIO2被3.3V拉高,為3.3V高電平;

        當按鍵S1閉合時,形成如圖所示的電流回路,GPIO2被拉低,為0.7V低電平;


        圖5 按鍵S1按下,GPIO2檢測電壓發生變化

        由上可知,單片機另外提供一個GPIO口用來檢測控制信號(按鍵輸入),我們可以設定一個時間,比如按鍵按下5s,即GPIO2從高電平變為低電平5s后,再觸發GPIO1產生一個高電平,即使松開按鍵S1,MOS也會沿著電流路徑②,從打開MOS,為后級負載供電。

        這種情況下,在5s內GPIO1不是高電平,如果松開按鍵,Q1就不會打開,達到防誤觸開機的效果。


        同理,當我們想關機時,假設長按5s關機,按下按鍵S1,單片機GPIO2檢測到信號從高電平變為低電平5s后,再觸發GPIO1產生一個低電平,這時松開按鍵,就可以關機了。

        可以看出開關延時都是軟件來做的,單片機開個定時器和IO口中斷就可以解決。


        可能有同學會問,圖中D1,D2的作用是什么,可以不要嗎?


        圖6 D1,D2的作用

        ①假設沒有D1,即:D1短路。

        當GPIO1為高電平時,Q2導通,GPIO2被拉低,MOS導通,此時按鍵不管怎么按都GPIO2都為低,即按鍵失靈,無法控制。


        圖7 沒有D1,電流方向

        如果有D1,就可以隔離三極管集電極低電平對于GPIO2控制檢測口的影響,

        即:當GPIO1為高電平時,Q2導通時,GPIO2不會產生變化,起到隔離作用。只能通過按鍵的開關來改變GPIO2的高低電平,進而通過控制按鍵按下的時間長短,來控制開關機。

        ②假設沒有D2,即:D2短路。


        圖8 沒有D2,電流方向

        當按鍵松開、Q2關閉時,電流會沿著如圖箭頭所示路徑,主電源12V會對單片機電源3.3V造成沖擊,從而損壞單片機。

        加上二極管D2,可隔離電源對于IO口和單片機電源的沖擊。

        另外二極管選型,選用普通的二極管即可。




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 娄底市| 拜城县| 墨玉县| 江华| 曲松县| 德安县| 防城港市| 永善县| 长岭县| 封丘县| 昭平县| 库尔勒市| 巨鹿县| 荆州市| 丰顺县| 德格县| 沙湾县| 新和县| 德江县| 白银市| 同心县| 武乡县| 永宁县| 监利县| 沙河市| 绥江县| 二连浩特市| 蓬莱市| 崇文区| 马山县| 津市市| 嫩江县| 钟祥市| 科技| 德昌县| 温泉县| 鄂伦春自治旗| 思茅市| 黄龙县| 黄骅市| 崇明县|