
發布
注冊
/
登錄按鍵檢測的案例
干貨|一個學妹寫的按鍵檢測函數把我秀翻了!
上來第一個例程就是使用按鍵點亮一個LED燈,好家伙。點燈小師弟比較在行,畢竟32、FPGA、Linux的小燈都被小師弟點了一遍。哈哈哈!所以今天還是來說一說按鍵檢測吧!
一、如何進行按鍵檢測
檢測按鍵有中斷方式和GPIO查詢方式兩種。推薦大家用GPIO查詢方式。
1.從裸機的角度分析
中斷方式:中斷方式可以快速地檢測到按鍵按下,并執行相應的按鍵程序,但實際情況是由于按鍵的機械抖動特性,在程序進入中斷后必須進行濾波處理才能判定是否有效的按鍵事件。如果每個按鍵都是獨立的接一個 IO 引腳,需要我們給每個 IO 都設置一個中斷,程序中過多的中斷會影響系統的穩定性。中斷方式跨平臺移植困難。
查詢方式:查詢方式有一個最大的缺點就是需要程序定期的去執行查詢,耗費一定的系統資源。實際上耗費不了多大的系統資源,因為這種查詢方式也只是查詢按鍵是否按下,按鍵事件的執行還是在主程序里面實現。
2.從OS的角度分析
中斷方式:在 OS 中要盡可能少用中斷方式,因為在RTOS中過多的使用中斷會影響系統的穩定性和可預見性。只有比較重要的事件處理需要用中斷的方式。
查詢方式:對于用戶按鍵推薦使用這種查詢方式來實現,現在的OS基本都帶有CPU利用率的功能,這個按鍵FIFO占用的還是很小的,基本都在1%以下。
二、最簡單的按鍵檢測程序
先給他說了一種經典的按鍵檢測代碼,相信大多數人使用按鍵函數都見過它,很簡單就不過多介紹了!
展開 汽車物理按鍵力學檢測要點
汽車人機交互系統中,物理按鍵和旋鈕是駕駛員與車輛進行交互的重要界面,其力學感知特性對于駕駛體驗和操作安全性具有重要影響。對這些部件的按壓、推拉以及旋鈕的力學感知類檢測是確保汽車人機交互系統性能的關鍵環節。
常見檢測內容
1、按鍵按壓力檢測:測量按鍵按下時所需的力,包括初始按壓力(按鍵開始移動時的力)、峰值按壓力(按鍵按下過程中的最大力)以及觸發按壓力(按鍵觸發功能時的力)。這些力值應在設計規定的合理范圍內,以保證操作的舒適性和可靠性。
按壓力:包括初始按壓力,即按鍵開始移動時所需的力;峰值按壓力,也就是按鍵按下過程中的最大力;還有觸發按壓力,即按鍵觸發對應功能時的力。合理的按壓力范圍能確保駕駛員操作輕松且不易誤觸,例如常見汽車按鍵觸發按壓力一般在 5 - 20N 。
按鍵行程:指按鍵從初始位置到觸發位置的移動距離。合適的行程能給予清晰的操作反饋,行程過短易誤觸發,過長則增加操作難度,多數汽車按鍵行程在 1 - 3mm 。
回彈力:按鍵按下后回彈所需的力。回彈力適中才能保證按鍵迅速順暢復位,若過小按鍵無法復位,過大則增加操作阻力 。
2、按鍵行程檢測:檢測按鍵從初始位置到觸發位置的移動距離,即按鍵行程。合適的行程能夠提供清晰的操作反饋,行程過短可能導致誤觸發,行程過長則會增加操作時間和難度。
3、按鍵回彈力檢測:按鍵按下后回彈所需的力也很關鍵。回彈力應適中,保證按鍵能夠迅速、順暢地回到初始位置,若回彈力過小,按鍵可能無法復位;回彈力過大,則會增加操作的阻力感。
4、旋鈕轉矩檢測:旋鈕的旋轉手感主要取決于轉矩。需要檢測旋鈕在旋轉過程中的轉矩變化,包括起始轉矩、最大轉矩、轉矩波動等。均勻且合適的轉矩能夠讓駕駛員輕松、準確地調節功能,例如汽車收音機的音量旋鈕或空調溫度旋鈕。
展開 電容式觸摸芯片4路觸摸檢測IC-VKD104CC 低電流4按鍵觸摸感應芯片
VKD104CC是4通道觸摸檢測芯片,功耗低、工作電壓范圍寬以及 穩定的觸摸檢測效果可以廣泛的滿足不同應用的需求,此觸摸檢測 芯片是專為取代傳統按鍵而設計,內建穩壓電路,提供穩定電壓給觸 摸檢測電路使用,觸摸檢測PAD的大小可依不同的靈敏度設計在合 理的范圍內。該芯片具有較高的集成度,僅需極少的外部組件便可 實現觸摸按鍵的檢測。 上電時可通過IO腳選擇4路輸出的參數:輸出電平,輸出模式,輸 出腳結構;上電時也可通過IO腳選擇是否使能待機模式和長按16S 復位功能以及選擇觸摸單鍵/多鍵模式。芯片內部采用特殊的集成 電路,具有高電源電壓抑制比,可減少按鍵檢測錯誤的發生,此 特性保證在不利環境條件的應用中芯片仍具有很高的可靠性。
展開 高抗干擾感應芯片/10按鍵觸摸檢測IC/VK3610I SOP16,適用于家電觸摸IC,溫控器觸摸IC
產品品牌:永嘉微電/VINKA
產品型號:VK3610I
封裝形式:SOP16
概述
VK3610I具有10個觸摸按鍵,可用來檢測外部觸摸按鍵上人手的觸摸動作。該芯片具有較 高的集成度,僅需極少的外部組件便可實現觸摸按鍵的檢測。 提供了I2C輸出功能,1個INT中斷輸出腳,單鍵輸出,有效鍵對應數據位置1。芯片內部 采用特殊的集成電路,具有高電源電壓抑制比,可減少按鍵檢測錯誤的發生,此特性保證在不 利環境條件的應用中芯片仍具有很高的可靠性。 此觸摸芯片具有自動校準功能,低待機電流,抗電壓波動等特性,為各種觸摸按鍵+I2C輸 出的應用提供了一種簡單而又有效的實現方法。LJQ622
特點
? 工作電壓 2.4-5.5V
? 待機電流9uA/3.0V
? 上電復位功能(POR)
? 低壓復位功能(LVR)
? 觸摸輸出響應時間:工作模式 48mS ,待機模式160mS
? 單鍵輸出,有效鍵對應數據位置1 ? I2C輸出+INT中斷腳
? 防呆功能,有效鍵最長輸出時間:10S
? 無鍵觸摸4S進入待機模式
? 通過CS腳接對地電容調節整體靈敏度(1-47nF)
? 各觸摸通道單獨接對地小電容微調靈敏度(0-50pF).
展開 
VK3603 ESOP8抗干擾3路/3鍵觸摸感應芯片/三按鍵觸摸檢測IC,適用于臺燈,音響,按摩椅等產品
產品品牌:永嘉微電/VINKA
產品型號:VK3603
封裝形式:ESOP8
概述
VK3603具有3個觸摸按鍵,可用來檢測外部觸摸按鍵上人手的觸摸動作。該芯片具有較高的集成度,僅需極少的外部組件便可實現觸摸按鍵的檢測。 提供了3路直接輸出功能。芯片內部采用特殊的集成電路,具有高電源電壓抑制比,可減少按鍵檢測錯誤的發生,此特性保證在不利環境條件的應用中芯片仍具有很高的可靠性。 此觸摸芯片具有自動校準功能,低待機電流,抗電壓波動等特性,為各種觸摸按鍵+IO 輸出的應用提供了一種簡單而又有效的實現方法。LJQ531
特點
? 工作電壓 2.4-5.5V
? 待機電流7uA/3.0V,14uA/5V
? 上電復位功能(POR)
? 低壓復位功能(LVR)
? 觸摸輸出響應時間: 工作模式 48mS 待機模式160mS
? CMOS輸出,低電平有效,支持多鍵
? 有效鍵最長輸出16S
? 無觸摸4S自動校準
? 專用腳接對地電容調節靈敏度(1-47nF)
? 各觸摸通道單獨接對地小電容微調靈敏度(0-50pF).
? 上電0.25S內為穩定時間,禁止觸摸.
展開 四種單片機按鍵設計方案與改進,拿走不謝!
過長容易檢測不到按下,過短會占用大量時間資源。
中斷服務程序需簡單明了。只做檢測用,通過全局變量傳遞,在主循環內完成按鍵響應,盡量不要在中斷服務函數內占用太多時間。
*本文系網絡轉載,版權歸原作者所有,如有侵權請聯系刪除
Python制作塔防小游戲
逐步實現:
Step1:明確游戲主邏輯
游戲主邏輯應當是這樣的:
代碼描述如下:
Step2:實現游戲開始界面
這里的要點在于當檢測到鼠標移動到按鈕上時,執行按鈕變色操作,檢測到鼠標點擊按鈕位置時,跳出游戲開始界面。主代碼如下:
Step3:實現游戲選擇界面
要點同步驟二,主代碼如下:
游戲難度定義在一個.json文件夾中,例如:
Step4:實現游戲界面
首先,將地圖設計在.map文件中,不同的數字代表不同的地圖元素,例如:
這樣就可以很方便地導入不同的地圖:
其次就是畫工具欄:
如此一來,游戲界面的雛形就出來了。接下來就是每隔一段時間產生一批敵人:
通過按鍵檢測和定義一些函數來實現用戶與游戲的交互,例如造塔等操作。其中按鍵檢測的代碼如下:
操作函數的定義如下:
當然,當檢測到暫停按鈕被按下時,你需要將游戲切入暫停界面:
其中按鍵閃爍的實現主要依靠每隔一小段時間顯示一次按鍵實現,其它要點同步驟二。
最后,就是讓箭塔可以不停地射箭并且通過碰撞檢測來判斷箭是否射中了敵人(射中的話敵人生命值會下降,下降到0時敵人才會死掉),畫出游戲界面中還存在著的所有元素:
當然,如果城堡死掉了,那么游戲也就結束了:
Step5:實現結束界面
要點同步驟二,主代碼如下:
All Done!完整源代碼詳見相關文件。
展開 家電觸摸感應芯片高抗干擾觸控芯片VK36N6D 6路觸摸檢測IC
VK36N6D具有6個觸摸按鍵,可用來檢測外部觸摸按鍵上人手的觸摸動作。該芯片具有較 高的集成度,僅需極少的外部組件便可實現觸摸按鍵的檢測。 提供了6個1對1輸出腳,可通過IO腳選擇上電輸出電平。芯片內部采用特殊的集成電路, 具有高電源電壓抑制比,可減少按鍵檢測錯誤的發生,此特性保證在不利環境條件的應用中芯 片仍具有很高的可靠性。 此觸摸芯片具有自動校準功能,低待機電流,抗電壓波動等特性,為各種觸摸按鍵+1對1 輸出的應用提供了一種簡單而又有效的實現方法。 LJQ6620
產品品牌:永嘉微電/VINKA
產品型號:VK36N6D
封裝形式:SOP/QFN16
特點
? 工作電壓 2.2-5.5V
? 待機電流10uA/3.0V
? 上電復位功能(POR)
? 低壓復位功能(LVR)
? 觸摸輸出響應時間:工作模式 48mS ,待機模式160mS
? 通過AHLB腳選擇上電輸出高電平或者低電平
? 輸出為6個1對1輸出腳
? 支持多鍵同時觸摸
? 防呆功能,有效鍵最長輸出時間:13S
? 無鍵觸摸4S進入待機模式
? 通過CS腳接對地電容調節整體靈敏度(1-47nF)
? 各觸摸通道單獨接對地小電容微調靈敏度(0-50pF).
? 上電0.3S內為穩定時間,禁止觸摸
? 上電后無觸摸時,環境變化自動校準基準值
? 抗電壓波動,抗干擾性能好
? 型號
VK36N6DD 直接輸出
VK36N6DT 鎖存輸出
? 封裝
SOP16(150mil)(9.9mm x 3.9mm PP=1.27mm)
QFN16L(3.0mm x 3.0mm PP=0.5mm)
展開 高靈敏度、防水性強、抗干擾性強的16通道電容式觸摸芯片助力智能門鎖方案-GT316L
此外,GTX316L具有較高的集成度,只需極少的外部組件即可實現觸摸按鍵的檢測;具有高電源電壓抑制比,從而減少按鍵檢測錯誤的發生,確保在惡劣環境條件下仍具有高可靠性;內置了獨有的嵌入式GreenTouch3TM引擎,具有模擬補償電路、嵌入式數字噪聲濾波器和智能超高靈敏度校準功能,對各種干擾具有較強的抗干擾能力。此外,該芯片具有較高的集成度,只需極少的外部組件即可實現觸摸按鍵的檢測,具有自動校準功能、低待機電流和抗電壓波動等特點。
電路圖:
?電容式觸摸芯片-GT316L主要特點:
16通道觸摸感應輸入
-這些引腳可以用作LED驅動引腳
嵌入式GreenTouch3引擎
-模擬補償電路
-嵌入式數字噪聲濾波器
-智能靈敏度校準
-嵌入式CS、EFT增強核心
供電電壓范圍寬:1.8V ~ 5.5V
四個25mA sink exclusive輸出引腳。
支持I2C接口;提供中斷功能。
16通道觸摸感應輸入(這些引腳可以用作LED驅動引腳)
LED驅動器(32步調光控制)
極低的功耗{待機模式:Min=9.6uA (@3.3V, RSP時間≈800ms)}
封裝:QFN-28L 4 x4;TSSOP-30L
通過無鉛認證
GT316L憑借其出色的抗干擾能力、靈活的配置選項和低功耗特性,為各種觸摸應用提供了可靠觸摸感應解決方案,聯系工采網“在線客服”獲取產品PDF、技術支持和DEMO板、可申請樣片。
展開 永嘉微超強抗干擾觸控VK36N5D五鍵觸摸觸控芯片,適用于家電觸摸感應IC等等
VK36N5D具有5個觸摸按鍵,可用來檢測外部觸摸按鍵上人手的觸摸動作。該芯片具有較 高的集成度,僅需極少的外部組件便可實現觸摸按鍵的檢測。 提供了5個1對1輸出腳,1個觸摸狀態輸出腳,可通過IO腳選擇上電輸出電平和輸出方式 (直接輸出或者鎖存輸出)。芯片內部采用特殊的集成電路,具有高電源電壓抑制比,可減少 按鍵檢測錯誤的發生,此特性保證在不利環境條件的應用中芯片仍具有很高的可靠性。 此觸摸芯片具有自動校準功能,低待機電流,抗電壓波動等特性,為各種觸摸按鍵+1對1 輸出的應用提供了一種簡單而又有效的實現方法。 (C99-19)
? 工作電壓 2.2-5.5V
? 許生13632814412
? 待機電流10uA/3.0V
? Q2885157526
? 上電復位功能(POR)
? 低壓復位功能(LVR)
? 觸摸輸出響應時間:工作模式 48mS ,待機模式160mS
? 通過AHLB腳選擇上電輸出高電平或者低電平
? 通過TOG腳選擇直接輸出或者鎖存輸出
? 輸出為5個1對1輸出腳和1個觸摸狀態輸出腳
? 支持多鍵同時觸摸 ? 防呆功能,有效鍵最長輸出時間:13S
? 無鍵觸摸4S進入待機模式
? 通過CS腳接對地電容調節整體靈敏度(1-47nF)
? 各觸摸通道單獨接對地小電容微調靈敏度(0-50pF).
展開 超強抗干擾觸摸三按鍵感應芯片VK3603/TWS觸摸IC
VK3603具有3個觸摸按鍵,可用來檢測外部觸摸按鍵上人手的觸摸動作。該芯片具有較 高的集成度,僅需極少的外部組件便可實現觸摸按鍵的檢測。 提供了3路直接輸出功能。芯片內部采用特殊的集成電路,具有高電源電壓抑制比,可 減少按鍵檢測錯誤的發生,此特性保證在不利環境條件的應用中芯片仍具有很高的可靠性。 此觸摸芯片具有自動校準功能,低待機電流,抗電壓波動等特性,為各種觸摸按鍵+IO 輸出的應用提供了一種簡單而又有效的實現方法。C66-54
特點
? 工作電壓 2.4-5.5V
? 待機電流7uA/3.0V,14uA/5V
? 上電復位功能(POR)
? 低壓復位功能(LVR)
? 觸摸輸出響應時間: 工作模式 48mS 待機模式160mS
? CMOS輸出,低電平有效,支持多鍵
? 有效鍵最長輸出16S
? 無觸摸4S自動校準
? 專用腳接對地電容調節靈敏度(1-47nF)
? 各觸摸通道單獨接對地小電容微調靈敏度(0-50pF).
? 上電0.25S內為穩定時間,禁止觸摸.
展開 
【精度高+低功耗+高靈敏】十六通道電容式觸摸芯片GT316L
獨有的嵌入式GreenTouch3TM引擎:模擬補償電路、嵌入式數字噪聲濾波器擁有智能超高靈敏度校準;對電磁兼容、電磁干擾、溫濕度變化、電壓干擾、溫度漂移、濕度漂移等都有較強的抗干擾能力;能夠有效避免因環境因素變化引起的按鍵誤觸等情況。
此外,GTX316L具有較高的集成度,只需極少的外部組件即可實現觸摸按鍵的檢測;具有高電源電壓抑制比,從而減少按鍵檢測錯誤的發生,確保在惡劣環境條件下仍具有高可靠性;它還具有自動校準功能、低待機電流和抗電壓波動等特點。
電容式觸摸芯片-GT316L主要特點:
1)供電電壓范圍寬:1.8V ~ 5.5V
2)四個25mA sink exclusive輸出引腳。
3)支持I2C接口;提供中斷功能。
4)16通道觸摸感應輸入(這些引腳可以用作LED驅動引腳)
5)LED驅動器(32步調光控制)
6)極低的功耗{待機模式:Min=9.6uA (@3.3V, RSP時間≈800ms)}
7) 封裝:QFN-28L 4 x4;TSSOP-30L
8) 通過無鉛認證
工采網作為國內工業品批發供應商平臺,所有產品均來自于原始生產廠商直接供貨,給用戶提供高效的技術支持和原廠的質量保證及售后服務,價格優惠歡迎新老戶客咨詢熱線獲取更多更詳細的電容式觸摸芯片產品信息。
在觸摸領域,韓國GreenChip便是佼佼者之一。了解更多關于韓國GreenChip觸摸芯片的技術應用,請聯系:133 9280 5792(微信同號)
展開 超強抗干擾觸摸VK3601/SOT23-6單通道觸摸芯片/觸摸感應方案原廠
C51-110
概述:VK3601具有1個觸摸按鍵,可用來檢測外部觸摸按鍵上人手的觸摸動作。該芯片具有較 高的集成度,僅需極少的外部組件便可實現觸摸按鍵的檢測。 提供了1路直接輸出功能。芯片內部采用特殊的集成電路,具有高電源電壓抑制比,可 減少按鍵檢測錯誤的發生,此特性保證在不利環境條件的應用中芯片仍具有很高的可靠性。 此觸摸芯片具有自動校準功能,低待機電流,抗電壓波動等特性,為各種觸摸按鍵+IO 輸出的應用提供了一種簡單而又有效的實現方法。
智能門鎖觸控工作原理中應用的電容式觸摸芯片
電容式觸摸芯片內部集成高分辨率觸摸檢測模塊和專用信號處理電路,以保證電容式觸摸芯片對環境變化具有靈敏的自動識別和跟蹤功能。為方便用戶在應用中可對觸摸鍵的靈敏度進行自主控制,電容式觸摸芯片還特設置了靈敏度控制位。
因觸控芯片集成為MCU以后,按鍵的檢測也變得更加靈活,可以采用矩陣掃描或AD采樣,這樣就使得可以識別的按鍵個數越來越多,以前可能需要幾個觸控芯片才能完成,現在一個新的觸控芯片就完全可以滿足要求。
由工采網代理的韓國GreenChip 電容式觸摸芯片 - GTX314L是具有多通道觸發傳感器的14位觸摸傳感器系列,它是通過持續模式提供中斷功能和喚醒功能,廣泛適用于各種控制面板應用,可直接兼容原機械式輕觸按鍵的處理信號。
GTX314L芯片內部采用特殊的集成電路,具有高電源電壓抑制比,可減少按鍵檢測錯誤的發生,此特性保證在不利環境條件的應用中芯片仍具有很高的可靠性,具備更強大的抗干擾能力符合國家強電測試標注,能過高壓測試,能過注入電流測試,效果十分明顯。
此外,該芯片集成了豐富的模擬和數字外設,提供中斷功能;提供幻燈片模式;提供“寄存器寫入鎖定”功能;嵌入式數字噪聲濾波器;智能靈敏度校準;非常容易形成各類靈活組合的門鎖方案。
芯片采用自動尋卡,探卡前自動屏蔽觸摸芯片功能,全程無須MCU干預,MCU僅僅需判斷IRQ做出對應操作即可,新的實現方式,將智能門鎖整體待機功耗降到10uA以下,重新定義低功耗。
展開 python制作一個接水果和金幣的小游戲
逐步實現:
Step1:定義精靈類
顯然,要判斷農民是否接到了水果/金幣,肯定要用到碰撞檢測,所以我們先來定義農民和水果/金幣這兩個精靈類。首先是農民類:
這里唯一的技術點就是需要不斷更換農民的狀態圖來實現農民的行走特效。
然后就是水果/金幣類:
這里沒有技術點,讓水果/金幣能掉的下來就行了。
Step2:實現游戲主循環
定義完上面兩個精靈類,就可以開始實現游戲主循環了。首先是初始化:
然后就是進入主循環:
主循環主要干了下面幾件事:
利用按鍵檢測控制農民行動;
不斷產生水果/金幣并使其掉落;
利用碰撞檢測判斷農民是否接到了水果/金幣;
實時顯示當前的分數和生命值。
Step3:制作游戲結束界面
Game Over之后,進入游戲結束界面并顯示當前分數和歷史最高分:
All Done!完整源代碼歡迎與我交流。
展開