色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Arduino的軟件消抖代碼

GReq_mcu168 ? 來源:CSDN ? 作者:CSDN ? 2022-06-22 14:35 ? 次閱讀

當按下和釋放微動按鍵時,會由短時間的抖動現象才會到達想要的狀態。如下圖所示:

59b96cd8-f12c-11ec-ba43-dac502259ad0.jpg

從上圖可知。按鍵抖動時間大概為150us。

在一些對按鍵抖動敏感的情況下需要進行消抖設計,目前常見的消抖設計如下:

濾波電容

關于去抖硬件最簡單的方式并聯一顆100nF陶瓷電容,進行濾波處理。

59ca12fe-f12c-11ec-ba43-dac502259ad0.jpg

RC濾波+施密特觸發器

要想更嚴謹設計消抖電路,會增加施密特觸發器,更大程度的保證后端不受按鍵抖動影響,電路如下:

59dafd80-f12c-11ec-ba43-dac502259ad0.jpg

分別來看按鍵閉合斷開時電路狀態:

59eee214-f12c-11ec-ba43-dac502259ad0.jpg

開關打開時:

電容C1通過R1 D1回路充電,Vb電壓=Vcc-0.7為高電平,后通過反向施密特觸發器使Vout輸出為低。

開關閉合時:

電容C1通過R2進行放電,最后Vb電壓變為0,通過反向施密特觸發器使Vout輸出為高。

當按下按鍵出現快速抖動現象時,通過電容會使Vb點電壓快速變成Vcc或GND。在抖動過程時對電容會有輕微的充電或放電,但后端的施密特觸發器有遲滯效果不會導致Vout發現抖動現象。

此電路中D1的使用使為了限制R1 R2一起給C1供電,增加充電時間影響效果。如果減小R1的值會使電流增加,功耗較高。

專用消抖芯片

一些廠家會提供專用芯片,避免自搭電路的不穩定性, 如美信-Max6816:

59fc1204-f12c-11ec-ba43-dac502259ad0.jpg

軟件濾波

軟件消除抖動也是很常見的方式,一般形式是延時查詢按鍵狀態或者中斷形式來消除抖動。

下面是Arduino的軟件消抖代碼:

/* SoftwareDebounce

*

* At each transition from LOW to HIGH or from HIGH to LOW

* the input signal is debounced by sampling across

* multiple reads over several milli seconds. The input

* is not considered HIGH or LOW until the input signal

* has been sampled for at least "debounce_count" (10)

* milliseconds in the new state.

*

* Notes:

* Adjust debounce_count to reflect the timescale

* over which the input signal may bounce before

* becoming steady state

*

* Based on:

* http://www.arduino.cc/en/Tutorial/Debounce

*

* Jon Schlueter

* 30 December 2008

*

* http://playground.arduino.cc/Learning/SoftwareDebounce

*/

int inPin = 7; // the number of the input pin

int outPin = 13; // the number of the output pin

int counter = 0; // how many times we have seen new value

int reading; // the current value read from the input pin

int current_state = LOW; // the debounced input value

// the following variable is a long because the time, measured in milliseconds,

// will quickly become a bigger number than can be stored in an int.

long time = 0; // the last time the output pin was sampled

int debounce_count = 10; // number of millis/samples to consider before declaring a debounced input

void setup()

{

pinMode(inPin, INPUT);

pinMode(outPin, OUTPUT);

digitalWrite(outPin, current_state); // setup the Output LED for initial state

}

void loop()

{

// If we have gone on to the next millisecond

if(millis() != time)

{

reading = digitalRead(inPin);

if(reading == current_state && counter > 0)

{

counter--;

}

if(reading != current_state)

{

counter++;

}

// If the Input has shown the same value for long enough let's switch it

if(counter >= debounce_count)

{

counter = 0;

current_state = reading;

digitalWrite(outPin, current_state);

}

time = millis();

}

}

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 濾波電容
    +關注

    關注

    8

    文章

    458

    瀏覽量

    40141
  • 陶瓷電容
    +關注

    關注

    3

    文章

    440

    瀏覽量

    23948

原文標題:開關抖動及消除

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    HAL庫在Arduino平臺上的使用

    ,適合于快速原型開發和教育。HAL(硬件抽象層)庫是一種在Arduino平臺上使用的軟件庫,它提供了一種標準化的方式來訪問硬件功能,使得開發者可以編寫更通用、更可移植的代碼。 1. 什么是HAL庫 HAL庫是硬件抽象層庫的簡稱,
    的頭像 發表于 12-02 14:04 ?384次閱讀

    基于Arduino的串口通信項目

    基于Arduino的串口通信項目涉及多個方面,包括硬件連接、軟件編程、串口參數配置等。 一、硬件準備 Arduino開發板 :確保你有一塊Arduino開發板,如
    的頭像 發表于 11-22 09:24 ?779次閱讀

    基于FPGA實現按鍵處理

    引言: 按鍵在電子產品中經常用到,由于按鍵的機械特性,按鍵在閉合或松開的瞬間伴隨著一連串的抖動,這樣的抖動將直接影響設計系統的穩定性。因此,必須對抖動進行處理。本文介紹如何在FPGA中實現按鍵處理。
    的頭像 發表于 10-24 14:54 ?297次閱讀
    基于FPGA實現按鍵<b class='flag-5'>消</b><b class='flag-5'>抖</b>處理

    兩種常見的硬件實現方式

    由于機械按鍵在操作過程中會產生抖動現象,這種抖動信號如果不加以處理,就可能導致單片機等電子設備誤判按鍵狀態,從而引發錯誤操作。本文將詳細介紹兩種常見的硬件實現方式:RS觸發器和電容濾波。 RS
    的頭像 發表于 09-25 16:54 ?1575次閱讀
    兩種常見的硬件<b class='flag-5'>消</b><b class='flag-5'>抖</b>實現方式

    為什么按鍵那么重要

    和錯誤操作。因此,進行按鍵處理顯得尤為重要。 按鍵抖動的產生是由于機械觸點的彈性特性所決定的。當按鍵被按下或釋放時,觸點并不會立即穩定地接通或斷開,而是會在閉合和斷開的瞬間產生一連串的抖動信號。這些抖動信號
    的頭像 發表于 09-25 16:50 ?649次閱讀
    為什么按鍵<b class='flag-5'>消</b><b class='flag-5'>抖</b>那么重要

    如何在FPGA中實現按鍵

    按鍵操作。因此,實現有效的按鍵機制對于提高系統的穩定性和可靠性至關重要。以下是在FPGA中實現按鍵的詳細步驟和策略,包括原理、方法、代碼
    的頭像 發表于 08-19 18:15 ?2152次閱讀

    科研相機防技術-機身防和電子防

    ? 機身防鏡頭昂貴的價格催生了機身防技術。機身防(即影像傳感器防)最早由KonicaMinolta提出,后來Sony收購了Ko
    的頭像 發表于 08-14 06:29 ?458次閱讀
    科研相機防<b class='flag-5'>抖</b>技術-機身防<b class='flag-5'>抖</b>和電子防<b class='flag-5'>抖</b>

    怎樣用Arduino測試鋰電池容量

    本文詳細介紹了如何用Arduino測量鋰電池的容量。并附有電路圖和Arduino的程序代碼
    的頭像 發表于 07-30 09:14 ?985次閱讀
    怎樣用<b class='flag-5'>Arduino</b>測試鋰電池容量

    【紫光同創盤古PGX-Nano教程】——(盤古PGX-Nano開發板/PG2L50H_MBG324第二章)按鍵實驗例程

    燈、按鍵、撥碼開關等。 二:實驗目的 對按鍵PB0進行按鍵 三:實驗原理 機械式彈片按鍵,在按下或松開時會有機械抖動,導致在按下或松開時按鍵的狀態不穩定,在快速的變化,在使用按鍵輸入
    發表于 04-28 17:57

    怎么做按鍵

    大家是怎么做按鍵的 我是用一定時器做20ms定時,定時到在中斷里設專門標志(20ms是否到,初始化為0),在主循環里當按鍵按下時在判斷此標志,為0,就開啟定時中斷,而后返回主流程,當此標志為1
    發表于 04-28 07:39

    stm32外部中斷存在自身內部的嗎?

    請問stm32外部中斷存在自身內部的嗎? 若存在請問如何配置
    發表于 03-11 06:15

    為什么要進行按鍵?按鍵抖動的原理 按鍵的方法

    按鍵通常的按鍵所用開關為機械彈性開關,當機械觸點斷開、閉合時,由于機械觸點的彈性作用,一個按鍵開關在閉合時不會馬上穩定地接通,在斷開時也不會一下子斷開。
    的頭像 發表于 02-17 17:07 ?1.8w次閱讀
    為什么要進行按鍵<b class='flag-5'>消</b><b class='flag-5'>抖</b>?按鍵抖動的原理 按鍵<b class='flag-5'>消</b><b class='flag-5'>抖</b>的方法

    arduino控制步進電機代碼

    Arduino是一種開放源代碼的電路板平臺,它可以用于控制各種不同的電子設備,包括步進電機。步進電機是一種電動機,可以通過下達特定的指令來控制每個步進的角度,從而使電機旋轉到指定的位置。在本文
    的頭像 發表于 02-14 16:29 ?2122次閱讀

    arduino中while循環怎么跳出

    Arduino 是一款開源的硬件平臺,廣泛應用于各種物聯網和嵌入式系統項目。在 Arduino 上編寫代碼時,循環結構起到了至關重要的作用。而其中的 while 循環更是常用于需要根據特定條件重復
    的頭像 發表于 02-14 16:22 ?2671次閱讀

    2023年Arduino開放原碼報告:持續茁壯的Arduino生態系!

    所謂出錢就是買一片Arduino開發板或是付費訂閱Arduino Cloud云端服務,或單純資金贊助;出力就是撰寫Arduino相關的程序并無私的分享程序代碼或回報錯誤或投入翻譯等,筆
    的頭像 發表于 01-25 16:45 ?1538次閱讀
    2023年<b class='flag-5'>Arduino</b>開放原碼報告:持續茁壯的<b class='flag-5'>Arduino</b>生態系!
    主站蜘蛛池模板: 无人影院在线播放| 美女白虎穴| 黑吊大战白女出浆| 暖暖视频在线高清播放| 我的漂亮朋友在线观看全集免费 | WWW国产精品内射老师| 国产一区二区波多野结衣| 暖暖 免费 日本 高清 在线1| 亚洲AV无码国产精品色午夜情| 99久热精品免费观看| 后入式啪gif动态图| 肉奴隷 赤坂丽在线播放| 最近日本MV字幕免费观看视频| 国产精品一区二区人妻无码| 欧美视频毛片在线播放| 诱受H嗯啊巨肉舍友1V1| 国产在线精彩亚洲久久| 色一欲一性一乱一区二区三区 | 99热久久精品国产一区二区| 寂寞夜晚视频在线观看| 我要搞av| 打扑克床上视频不用下载免费观看| 口内射精颜射极品合集| 亚洲精品在线影院| 国产精品免费大片一区二区| 人妻无码AV中文系统久久免费| 最新高清无码专区在线视频| 精品久久久久中文字幕| 亚洲国产欧美国产综合在线| 国产精品卡1卡2卡三卡四| 色男人综合| 国产产乱码一二三区别免费| 日本一卡二卡三卡四卡无卡免费播放| 99视频在线免费| 暖暖视频大全免费观看| 99国产这里只有精品视频| 免费无码又爽又黄又刺激网站| 中国女人内谢69xxxxxx直播| 久久只精品99品免费久| 2020无码最新国产在线观看| 美女直播喷水|