Arduino 按鍵模組統計按鍵次數

2021-10-24 11:07:58 字數 1718 閱讀 7393

這幾天在arduino的實驗中,為了方便完成乙個鍵就可以進行操控,使用了按鍵模組,但是發現,按鍵模組返回的值與我想要的值不同。

先說下最終得目標:** 統計5秒內得按鍵次數 **

模組選擇

** lcd1602 ** :在液晶屏上顯示資訊

** ds1302 **:電子時鐘模組

問題當我使用while(s<5)時,並不是只迴圈了5次而是5秒,在這5秒有無限可能,所以當我按下一次時並不是只返回按鍵次數,而是返回得是我從摁下到鬆手while了幾次。這就不太好。

思路只有在提示之後,才會出現摁鍵行為。(不按規則另算)

也就是說剛開始,偵聽按鍵一開始就是處於低電平。

這個時候讓他處於while迴圈狀態,一旦由低電平到高點平,讓他+1

當由高電平到低電平時不要著急+1,因為這意味著鬆手不在我們得統計範圍之內

最後由於不管怎樣他都會+1,所以global最後要-1.

**

#include

"liquidcrystal_i2c.h"

#include

#include

#include

"rfid.h"

#include

#include

#include

"ds1302.h"

#include

"liquidcrystal_i2c.h"

int time1, time2;

int global =0;

ds1302 rtc(2

,3,4

);liquidcrystal_i2c lcd

(0x27,16

,2);

int keypad_pin =7;

void

setup()

void

loop()

}while((

digitalread

(keypad_pin)

)== low)

} global++

; time2 = rtc.

gettime()

.sec;

s = time2 - time1;}

serial.

println

(global-1)

; serial.

println

("----------------------");

global =0;

time1 = rtc.

gettime()

.sec;

// serial.println(time1);

lcd.

clear()

; serial.

println

(rtc.

gettimestr()

);lcd.

print

(rtc.

gettimestr()

);delay(10

);lcd.

setcursor(0

,1);

lcd.

print

(rtc.

getdatestr()

);serial.

println

(rtc.

getdatestr()

);delay

(5000);

}

Arduino實驗六 按鍵控制LED實驗

i o 口的意思即為input介面和output 介面,到目前為止我們設計的小燈實驗都還只是應用到arduino 的i o 口的輸出功能,這個實驗我們來嘗試一下使用arduino的i o口的輸入功能即為讀取外接裝置的輸出值,我們用乙個按鍵和乙個led小燈完成乙個輸入輸出結合使用的實驗,讓大家能簡單了...

c 判斷按鍵使用者按鍵

實現此邏輯的方法有多種,但此處筆者希望使用console.readkey key屬性來進行識別。現貼出正確的 while true console.writeline output.tostring if input.key.equals consolekey.y 而在這之前卻犯了乙個愚蠢至極的錯誤...

實驗7 按鍵單模組實驗

用esp32和按鍵模組,通過矩陣法來實現對矩陣鍵盤的按鍵讀取 1.連線esp32和按鍵模組的引腳 2.觸控按鍵,esp32獲取到所觸控的按鍵數字,並列印到串列埠監視器中 1.esp32 wroom 32d 開發板 2.3 4按鍵模組 3.杜邦線 1 連線引腳 3 4矩陣鍵盤 引腳依次為 7 6 5 ...