chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內(nèi)不再提示

如何通過1個Arduino引腳訪問5個按鈕

454398 ? 來源:wv ? 2019-09-10 15:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第1步:零件清單

1 x Arduino(或Arduino兼容板。我使用來自moderndevice.com的BBB)

1 x 100K電阻(棕黑黃)

1 x 1K電阻(棕黑紅)

1 x 10K電阻(棕色黑色橙色)

1 x 22K電阻器(紅色紅色橙色)

1 x 33K電阻器(橙色橙色橙色)

1 x 68K電阻器(藍色灰色橙色)

5 x按鈕開關(guān)

面包板

一些連接它的電線

第二步:理論 - 快速回顧

如何通過1個Arduino引腳訪問5個按鈕

《我建議您閱讀上一個Instructable的第2步和第3步了解詳細信息,但是如果你很懶(嗯,我很忙),我會給你一個快速的回顧。

通常的方法讀取按鈕是將其連接到數(shù)字輸入引腳和5V。當您按下按鈕時,輸入引腳連接到5V,您可以讀取引腳上的邏輯高電平。

對于Arduino的模擬引腳,您可以根據(jù)引腳上的電壓讀取介于0和1023之間的值。 。如果有0V,則讀取0,如果有5V,則讀取1023.中間的每個電壓將根據(jù)實際電壓返回一個比例值。從此可以看出,可以連接多個按鈕模擬引腳,如果你可以讓每個模塊引腳連接不同的電壓到模擬引腳。

事實證明,這很簡單。您只需為每個按鈕設置不同的分壓器。我將告訴你如何。

如果看一下電路,當按鈕打開時,R1充當下拉電阻,但當(例如)S4按鈕關(guān)閉時,電流從5V流過R5,通過按鈕,通過R1和地面。 IO引腳將測量S4(或R5)與R1之間的電壓 - AKA由R1和R5形成分壓器。通過使用歐姆定律,我們可以計算出我們將在IO引腳上讀取大約2.75V或大約562.

PS:如果其中任何一個不清楚,你應該真正閱讀以前的Instructable - 我會進入更多詳情。另請參閱上面關(guān)于分壓器維基百科頁面的鏈接。

步驟3:面包板

您現(xiàn)在可以在面包板上構(gòu)建上一個電路。如果你看看前面的電路和我的面包板,你會注意到我使用了不同的電阻器。只要你記住一些事情,電阻就不是很關(guān)鍵。

首先,分壓器中兩個電阻之間的差異越大,值越接近地或者輸入電壓。

第二點是連接到按鈕的電阻值越接近,它們之間的差異越小,這可能使得難以讀取唯一值。

所以,我要做的主要是電路的變化是使R1成為47K電阻。通過使下拉電阻與范圍中間的值相同,您將獲得最大的讀數(shù)范圍。

在之前的Instructable中,我提到我有一些壞按鈕,而且有些讀數(shù)已經(jīng)全部結(jié)束了這個地方。我猜測電動車和壞按鈕等。..。..事實證明,這是一個糟糕的面包板。我正在使用兩塊面包板,我已經(jīng)使用了超過10年,似乎有些地方不再有良好的接觸了。我訂購了新的面包板,但我還在等。如果您的讀數(shù)不一致,請嘗試將按鈕移動到面包板上的其他位置。

步驟4:獲取必要讀數(shù)

下一步是獲取您需要檢查按下哪些按鈕的值。下載附加的草圖,并按照上一步中的電路設置運行它。將草圖上傳到電路板后打開串行監(jiān)視器,然后按住按鈕(每次1個)約2秒鐘。

對于每個按鈕,當您按下并釋放它時,您將看到值可能在很短的時間內(nèi)有點不一致,忽略那些不穩(wěn)定的值并記下剩下的最大和最小值。

這就是我的5個按鈕:

1(1K) - 》 930 - 935

2(10K) - 》 510 - 520

3(22K) - 》 315 - 326

4(47K) - 》 175 - 179

5(68K) - 》 127 - 135

正如您所看到的,通過可靠的連接,每個按鈕的范圍非常小。我所擁有的最大范圍是11點,這意味著波動幅度約為0.054V。一點都不差。.有一個小的范圍沒有理由你不能使用E12范圍的電阻值在10到100K(10k,12k,15k,18k,22k,27k,33k)之間擴展到12個按鈕,39k,47k,56k,68k,82k和100k),下拉電阻為27K - 33K。

步驟5:編碼

這是我進行改進的主要領(lǐng)域。即使先前的硬件工作并且代碼可以確定按下了哪個按鈕,只要您按下按鈕就會報告多個按鈕按下。

我現(xiàn)在需要的是讓Arduino讀取一個按鈕每次按下并釋放按鈕時按。附加的代碼執(zhí)行此操作。我也只是在檢查按鈕狀態(tài)之間延遲了50ms,這似乎足以讓它去抖動。

我改變的另一件事是清理代碼。前面的代碼為每個按鈕使用了3個常量。這個版本使用數(shù)組,使代碼更容易閱讀。為了使它適用于你的值,替換buttonLowRange和buttonHighRange數(shù)組中每個按鈕的值(你在上一步中得到的)。

完成后,您只需要在dealWithButtonPress方法中設置要將按鈕鏈接到的操作?,F(xiàn)在它只是在串行輸出上打印一條消息,指示按下了哪個按鈕。

步驟6:擴展它

正如我在步驟4中提到的那樣,這可能會以最小的努力擴展到12個按鈕。

模擬輸入有一個10位分辨率,使我們在0V和參考電壓之間提供1023個值。如果將其除以12個按鈕,則可以看到每個按鈕必須在85個點的唯一范圍內(nèi)。為了安全起見,我會稱它不超過40 - 50。如果你這樣做,你將不得不使用相當精確的電阻器(或測量它們并使用接近E12值的電阻器)你會相當可能需要更好的方法去除按鈕。

從我的所有值都在11點的最大范圍內(nèi)的事實,這似乎是完全可行的。

第7步:最后的想法

這個版本比以前的版本要好很多。我不喜歡的一件事是依靠延遲進行去抖動。我會看看中斷,而不是那樣讀取按鈕,但是現(xiàn)在它運行得很好。

正如我在步驟4中提到的,通過與開關(guān)的牢固連接,每個按鈕的范圍非常小。我得到的最大范圍是11分,這意味著沒有理由不使用10到100K之間的E12電阻值(10k,12k,15k,18k,22k,27k,33k)來擴展到12個按鈕,39k,47k,56k,68k,82k和100k),下拉電阻約為27K - 33K。

如果有任何不清楚的地方,請隨時詢問,我會在必要時回答并更新Instructable。

感謝您抽時間閱讀!我希望你發(fā)現(xiàn)這個版本比第一個版本更有用。任何反饋或評級(眨眼,眨眼)將不勝感激。此外,如果您發(fā)現(xiàn)這有用,請花時間在微控制器競賽中為我投票。

這是一個非常大的項目的第一部分。希望這次我能完成它(我不打算在接下來的幾周里搬到另一個大陸)。請留意我創(chuàng)建時鐘的下一個教程,這個時鐘顯示多個時區(qū),一個RGB Orb,7段顯示,并將這一切與一個將更新狀態(tài)的在線應用程序連接起來(如果可能在單個Arduino上)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6509

    瀏覽量

    194807
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    推薦5讓測試效率翻倍的MCP

    推薦5讓測試效率翻倍的MCP
    的頭像 發(fā)表于 09-19 10:02 ?322次閱讀
    推薦<b class='flag-5'>5</b><b class='flag-5'>個</b>讓測試效率翻倍的MCP

    如何用Arduino Nano/UNO R3開發(fā)板給另一Arduino IDE不能下載的Arduino Nano/UNO R3開發(fā)板重新燒錄引導程序bootlaoder

    本文介紹了如何用能夠Arduino IDE下載的Arduino Nano/UNO R3開發(fā)板給另一Arduino IDE不能下載的Arduino
    的頭像 發(fā)表于 08-08 20:16 ?2445次閱讀
    如何用<b class='flag-5'>Arduino</b> Nano/UNO R3開發(fā)板給另一<b class='flag-5'>個</b><b class='flag-5'>Arduino</b> IDE不能下載的<b class='flag-5'>Arduino</b> Nano/UNO R3開發(fā)板重新燒錄引導程序bootlaoder

    無需接線!1底板可測試海凌科5款人臉識別模塊

    測試。ONEFO101模組測試板1款測試底板51FO101測試底板,支持測試海凌科5種人臉識別模塊,就如同鉛筆到自動鉛筆的升級,“筆芯”
    的頭像 發(fā)表于 05-12 12:06 ?608次閱讀
    無需接線!<b class='flag-5'>1</b><b class='flag-5'>個</b>底板可測試海凌科<b class='flag-5'>5</b>款人臉識別模塊

    LM26484 2 DCDC 和 1 LDO 可配置 PMIC數(shù)據(jù)手冊

    穩(wěn)壓器輸出電壓均為 外部可調(diào)。LDO 控制器是一種低壓 NMOS 穩(wěn)壓器。LM26484是 采用 5 x 4 x 0.8 mm WQFN-24 引腳封裝。
    的頭像 發(fā)表于 04-29 09:43 ?626次閱讀
    LM26484 2 <b class='flag-5'>個</b> DCDC 和 <b class='flag-5'>1</b> <b class='flag-5'>個</b> LDO 可配置 PMIC數(shù)據(jù)手冊

    LP8720系列 1 降壓型 DC/DC 和 5 具有 I2C 兼容接口的線性穩(wěn)壓器數(shù)據(jù)手冊

    LP8720 是一款多功能、可編程電源管理單元,針對子模塊電源需求解決方案進行了優(yōu)化。該器件集成了 1 帶動態(tài)電壓刻度 (DVS) 的高效 400 mA 降壓 DC-DC 轉(zhuǎn)換器、5
    的頭像 發(fā)表于 04-29 09:38 ?505次閱讀
    LP8720系列 <b class='flag-5'>1</b> <b class='flag-5'>個</b>降壓型 DC/DC 和 <b class='flag-5'>5</b> <b class='flag-5'>個</b>具有 I2C 兼容接口的線性穩(wěn)壓器數(shù)據(jù)手冊

    有源晶振四引腳是如何分布與定義的

    常見的引腳分布規(guī)律 有標記的引腳作為起始引腳 :許多有源晶振會在其中一引腳上或者靠近該引腳的外
    的頭像 發(fā)表于 04-10 17:20 ?962次閱讀
    有源晶振四<b class='flag-5'>個</b><b class='flag-5'>引腳</b>是如何分布與定義的

    具有4降壓穩(wěn)壓器、1LDO和8位ADC的DA9080 PMIC數(shù)據(jù)手冊

    DA9080 是一款 5 路輸出可配置電源管理 IC(PMIC),具有 4 同步降壓穩(wěn)壓器和 1 200mA LDO。其中一降壓轉(zhuǎn)換
    的頭像 發(fā)表于 04-02 16:54 ?565次閱讀
    具有4<b class='flag-5'>個</b>降壓穩(wěn)壓器、<b class='flag-5'>1</b><b class='flag-5'>個</b>LDO和8位ADC的DA9080 PMIC數(shù)據(jù)手冊

    把TS3A5017的2EN引腳通過10K的電阻接地,為什么這2引腳仍然是高電平?

    我把TS3A5017的2EN引腳通過10K的電阻接地,為什么這2引腳仍然是高電平
    發(fā)表于 02-10 07:54

    開源項目!手把手教你制作一互動式LED墻壁時鐘!

    電路圖順序焊接電阻、行線和列線,最后連接至Arduino的相應引腳。 步驟五:插入LED燈帶 通過按鈕板頂部的槽口小心地插入LED燈帶,并確保其正確彎曲
    發(fā)表于 02-08 17:47

    通過Skyvia Connect SQL終端節(jié)點訪問任何數(shù)據(jù)

    通過 Skyvia Connect SQL 終端節(jié)點訪問任何數(shù)據(jù) ? 通過 Skyvia Connect SQL 終端節(jié)點訪問任何數(shù)據(jù)ADO.NET 數(shù)據(jù)網(wǎng)關(guān) 使用 Skyvia Co
    的頭像 發(fā)表于 01-02 09:31 ?528次閱讀
    <b class='flag-5'>通過</b>Skyvia Connect SQL終端節(jié)點<b class='flag-5'>訪問</b>任何數(shù)據(jù)

    HAL庫在Arduino平臺上的使用

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

    開源項目!基于 Arduino 的 MIDI 架子鼓

    壓電揚聲器上。 4.、將切口塊粘在底部: 使用熱膠將第二墊子上的切口塊連接到板的底部。 第 5 步:放置鼓墊 1、 放置 Drum Pads: 將鼓墊放在切口部分內(nèi)。 2、固定墊子: 使用熱膠將墊子
    發(fā)表于 11-25 12:00

    基于Arduino的串口通信項目

    Arduino Mega等。 USB數(shù)據(jù)線 :用于將Arduino開發(fā)板連接到計算機。 串口設備 :可以是另一Arduino開發(fā)板、傳感器模塊、執(zhí)行器等,只要它支持串口通信。 連接
    的頭像 發(fā)表于 11-22 09:24 ?2777次閱讀

    stm32與Arduino的比較

    在微控制器的世界里,STM32和Arduino是兩經(jīng)常被提及的名字。STM32是一系列由STMicroelectronics生產(chǎn)的高性能微控制器,而Arduino則是一開源電子原型
    的頭像 發(fā)表于 11-19 15:45 ?4950次閱讀

    如何使用Arduino實現(xiàn)CAN總線通信

    CAN總線(Controller Area Network)是一種多主控制的串行通信協(xié)議,廣泛應用于汽車電子、工業(yè)自動化等領(lǐng)域。它以其高可靠性、實時性和靈活性而受到青睞。Arduino作為一
    的頭像 發(fā)表于 11-12 10:09 ?3344次閱讀