找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

Arduino教程-消除按鍵抖動(dòng)!

查看數(shù): 46007 | 評(píng)論數(shù): 9 | 收藏 1
關(guān)燈 | 提示:支持鍵盤(pán)翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2015-12-19 21:23

正文摘要:

Hi,大家好!又跟大家見(jiàn)面啦!在上一次講解按鍵開(kāi)關(guān)臨近結(jié)束的時(shí)候,我們提到在正常的使用過(guò)程中,美中有不足,按鍵開(kāi)關(guān)還有一個(gè)小問(wèn)題需要解決。那是什么問(wèn)題呢? 每當(dāng)你按下或抬起按鍵開(kāi)關(guān)的一瞬間,由于讀取信 ...

回復(fù)

ID:138707 發(fā)表于 2023-7-29 18:32
很好的按鍵的函數(shù) 謝謝分享
ID:160932 發(fā)表于 2020-9-25 14:28
我是菜鳥(niǎo),請(qǐng)問(wèn)下:
// 定義按鍵輸入針腳號(hào)常量,
// 并初始化為2號(hào)針腳。
const int buttonPin = 2;
這個(gè)可不可以用宏定義,因?yàn)橐_號(hào)基本只是指定,而不會(huì)在程序運(yùn)行去改變的,是不是可以不用int變量,而用:#define buttonPin  = 2
宏定義是不占內(nèi)存空間的吧,而一個(gè)int整型是要消耗內(nèi)存的,不知我想的對(duì)不對(duì)?
ID:607710 發(fā)表于 2020-4-15 10:40
科比之心 發(fā)表于 2020-3-23 11:29
我分析這個(gè)地方應(yīng)該是寫(xiě)錯(cuò)了,BUTTONSTATE在程序中沒(méi)有用到,這個(gè)地方應(yīng)該改成lastButtonState就可以了, ...

把這句"int reading = digitalRead(buttonPin);"改為#define reading   digitalRead(buttonPin);
就好理解了
ID:35955 發(fā)表于 2020-3-23 11:29
ZFDPJ 發(fā)表于 2017-11-26 02:48
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

我分析這個(gè)地方應(yīng)該是寫(xiě)錯(cuò)了,BUTTONSTATE在程序中沒(méi)有用到,這個(gè)地方應(yīng)該改成lastButtonState就可以了,reading確實(shí)是當(dāng)前獲取到的按鍵狀態(tài)值
ID:455377 發(fā)表于 2020-3-5 21:30
ZFDPJ 發(fā)表于 2017-11-26 02:48
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

buttonState是int類(lèi)型只有兩種值0和1   如果為0不執(zhí)行   如果為1  執(zhí)行    關(guān)鍵在那個(gè)!=  這個(gè)符號(hào)
ID:20841 發(fā)表于 2020-3-5 17:09
很好的按鍵的函數(shù) 謝謝分享
ID:437197 發(fā)表于 2019-5-16 09:34
如果按鈕按得夠久,先0-1再1-0,都是穩(wěn)定的,那燈的狀態(tài)就會(huì)變兩次嗎?
ID:437197 發(fā)表于 2019-5-16 09:22
我覺(jué)得寫(xiě)得挺好滴,頂一個(gè)
ID:253661 發(fā)表于 2017-11-26 02:48
大神請(qǐng)問(wèn)一下 51步 if (reading != buttonState)中 reading不就是讀取的buttonstate中的狀態(tài)嗎?為什么還可以比較。 求解釋

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表