曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

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

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

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

Arduino基礎(chǔ):讀取開關(guān)狀態(tài)

劉英 ? 來源:Oo一笑 ? 作者:Oo一笑 ? 2023-02-20 09:47 ? 次閱讀

這篇文章來源于DevicePlus.com英語(yǔ)網(wǎng)站的翻譯稿。

本文最初發(fā)布在deviceplus.jp.網(wǎng)站上,而后被翻譯成英語(yǔ)。

前言

在本文中,您可以了解如何在您的Arduino項(xiàng)目中使用輕觸開關(guān)以及其實(shí)際工作原理。

我們已經(jīng)利用數(shù)字輸出使數(shù)字輸出引腳在HIGH (5V) 和LOW (0V) 兩種狀態(tài)之間切換,從而實(shí)現(xiàn)了對(duì)LED電機(jī)的控制。
另外,您還可以使用數(shù)字輸出來確認(rèn)電子部件的狀態(tài)。數(shù)字輸出引腳還可以切換為數(shù)字輸入引腳。通過這樣切換,可以確認(rèn)引腳上的電壓,并通過“LOW”和“HIGH”兩種狀態(tài)輸入。這些輸入值可用于控制其他電子部件。比如您可能希望在數(shù)字輸入為HIGH時(shí)使電機(jī)運(yùn)轉(zhuǎn),在輸入為L(zhǎng)OW時(shí)使電機(jī)停止。

poYBAGPy0GSAJ66NAAHIKLKLijs466.png

實(shí)際上,利用開關(guān)等電子器件,可以使數(shù)字輸入引腳的狀態(tài)切換為0V或5V。
在本文中,我們將介紹如何使用開關(guān)實(shí)現(xiàn)數(shù)字輸入。

Arduino的數(shù)字輸入

使用Arduino Uno,您可以將最初用于數(shù)字輸出的引腳D0到D13作為數(shù)字輸入引腳使用??梢酝ㄟ^程序切換為數(shù)字輸入模式,來確認(rèn)引腳狀態(tài)。

0V輸入為“LOW”,5V輸入為“HIGH”。在程序中,LOW會(huì)被讀取為“0”,HIGH會(huì)被讀取為“1”。通過確認(rèn)這些輸入值并執(zhí)行條件分支等處理,即可控制工作狀態(tài)。

pYYBAGPy0GyAUt4nAAOcGY0Dd38603.png

下面我們來實(shí)際嘗試一下用Arduino進(jìn)行數(shù)字輸入。在這里,我們使用跳線連接引腳5,并確認(rèn)連接到5V電源和GND時(shí)的變化。創(chuàng)建以下程序并將其發(fā)送給Arduino:

在第4行中,通過pinMode()指定“INPUT”,以將本次使用的引腳7切換為輸入模式。現(xiàn)在,您可以通過程序確認(rèn)引腳狀態(tài)了。

獲取第11行由digitalRead()指定的引腳的狀態(tài),并將其存儲(chǔ)在value變量中。如果是0V,則存儲(chǔ)為“0”,如果是5V,則存儲(chǔ)為“1”。

當(dāng)您想確認(rèn)獲取的狀態(tài)時(shí),請(qǐng)使用“串行監(jiān)視器”。對(duì)于Arduino而言,您可以使用用來從電腦傳輸程序的USB數(shù)據(jù)線將數(shù)據(jù)從Arduino發(fā)送到電腦。使用串行通信可以收發(fā)數(shù)據(jù)。您可以使用串行通信將通過數(shù)字輸入獲取的狀態(tài)發(fā)送到電腦進(jìn)行確認(rèn)。

如果您想在程序中使用串行通信,請(qǐng)通過第5行的Serial.begin()進(jìn)行初始化。此時(shí)需要指定通信速度。然后,通過第12行的Serial.println()指定一個(gè)值,即可將數(shù)據(jù)發(fā)送到電腦。在本文中,我們使之發(fā)送存儲(chǔ)著數(shù)字輸入狀態(tài)的value變量的內(nèi)容。

要確認(rèn)Arduino通過串行通信發(fā)送過來的數(shù)據(jù)時(shí),請(qǐng)使用Arduino IDE中內(nèi)置的“串行監(jiān)視器”。要使用串口監(jiān)視器,請(qǐng)單擊Arduino IDE右上角的“串口監(jiān)視器圖標(biāo)”(放大鏡圖標(biāo)),即可顯示串行監(jiān)視器畫面。將右下角的通信速度設(shè)置為與程序的Serial.begin()中指定的通信速度(本文為9600)相同的值。然后,屏幕上將會(huì)顯示0或1。

pYYBAGPy0G6AfKF1AAClSjZ9c6k040.png

接下來,將跳線插入引腳7。將另一端連接到 GND,串行監(jiān)視器上顯示“0”。也就是說,如果數(shù)字引腳為0V,您可以看到“0”(LOW)。同樣,當(dāng)引腳7與5V電源連接時(shí),您可以看到顯示內(nèi)容變?yōu)椤?”(HIGH)。

pYYBAGPy0HGAZAjsAADbsHJ8gnw176.png

現(xiàn)在我們已經(jīng)確認(rèn),輸入會(huì)根據(jù)引腳的狀態(tài)發(fā)生變化。

使用輕觸開關(guān)切換輸入

下面,我們嘗試用一個(gè)開關(guān)使數(shù)字輸入引腳在HIGH和LOW狀態(tài)之間切換。在本文中,我們使用的是按鈕型“輕觸開關(guān)”。

poYBAGPy0HSAU2jgAAEsHrpKtTI129.png

對(duì)于輕觸開關(guān)而言,當(dāng)按下上方按鈕時(shí),內(nèi)部電路接通,進(jìn)入通電狀態(tài)。當(dāng)松開按鈕時(shí),電路斷開,沒有電流流過。通常,在開關(guān)的四個(gè)角會(huì)配有引腳。如上圖所示配置時(shí),左右引腳之間的間隙起到開關(guān)的作用。右側(cè)的上下引腳和左側(cè)的上下引腳是始終連接的。
如果將輕觸開關(guān)的一個(gè)引腳與數(shù)字引腳相連接,另一引腳連接到GND,則按下開關(guān)時(shí)內(nèi)部電路會(huì)接通,引腳將直連GND。通過這樣做,您可以判斷只要按下開關(guān),數(shù)字輸入就會(huì)變?yōu)椤癏IGH”。

poYBAGPy0HiAB0s9AAFtPW_4cKU450.png

但是,當(dāng)沒有按下開關(guān)時(shí),數(shù)字引腳將會(huì)處于沒有任何連接的狀態(tài)。在這種狀態(tài)下,施加在引腳上的電壓會(huì)變得不穩(wěn)定。在不穩(wěn)定狀態(tài)下,當(dāng)用手觸碰引腳或有電池等靠近時(shí),輸入可能會(huì)發(fā)生變化。
因此,我們?cè)谑褂瞄_關(guān)時(shí)會(huì)連接一種稱為“上拉電路”或“下拉電路”的電路。這種方法是借助電阻器將數(shù)字引腳連接到電源或GND,可以起到穩(wěn)定輸入狀態(tài)的作用。該電路連接到電源端時(shí)稱為“上拉電路”,連接到GND端時(shí)稱為“下拉電路”。在本文中將以上拉電路為例進(jìn)行說明,但下拉電路的原理也是一樣的。

pYYBAGPy0HyAHjInAAFcgwOTAdg268.png

使用上拉電路時(shí),在未按下開關(guān)的狀態(tài)下,開關(guān)通過一個(gè)電阻器連接到電源。這樣,就與數(shù)字引腳連接電源時(shí)的狀態(tài)相同,輸入會(huì)穩(wěn)定在5V(HIGH)。當(dāng)按下開關(guān)后,數(shù)字引腳處于直接連接GND的狀態(tài),因此輸入切換為0V(LOW)。
雖然處于電源與GND連接的狀態(tài),但它們之間夾著一個(gè)電阻器(通常為10kΩ左右),因此只會(huì)流過少量電流,不存在短路風(fēng)險(xiǎn)。

使用輕觸開關(guān)輸入數(shù)據(jù)

現(xiàn)在,讓我們使用輕觸開關(guān)實(shí)際輸入數(shù)據(jù)看看。需要準(zhǔn)備好以下電子元器件

? 輕觸開關(guān)
poYBAGPy0ICAOLQ_AAEZoxHeJxk147.png
輕觸開關(guān)有很多種顏色可供選擇。您可以選擇任何您喜歡的顏色。

? 10kΩ (1/4W)電阻器
pYYBAGPy0IiAE2bRAAMtfV4tpIE003.png
用于上拉電路的電阻器。在10kΩ電阻器上印有“棕黑橙金”顏色代碼。

準(zhǔn)備好所需組件后,如下圖所示連接它們。將輕觸開關(guān)跨越面包板中心的凹槽插入。

poYBAGPy0I6AUeGpAALMtIbZ8_s911.png

接下來,將前述的程序發(fā)送給Arduino,以通過串行監(jiān)視器確認(rèn)數(shù)字引腳7的輸入??梢钥吹剑谖窗聪麻_關(guān)的狀態(tài)下,顯示“1”(HIGH),在按下開關(guān)時(shí)變?yōu)椤?”(LOW)。

使用Arduino上拉功能

在Arduino Uno中,數(shù)字引腳內(nèi)置有“上拉”功能,可以通過程序激活該功能。如果使用內(nèi)部的上拉功能,就不再需要外接電阻器了。您只需連接開關(guān)即可,省時(shí)省力。

pYYBAGPy0JOAJnnXAAKZuLeyCVo946.png

激活上拉功能的程序如下:

您只需在第4行的數(shù)字引腳模式設(shè)置中指定“INPUT_PULLUP”即可。這樣就能激活內(nèi)置的上拉功能,從而能夠在未按下按鈕的狀態(tài)下穩(wěn)定HIGH輸入。請(qǐng)注意,Arduino Uno中未內(nèi)置下拉功能。

按下開關(guān)時(shí)點(diǎn)亮LED

開關(guān)的輸入還可用來控制其他電子元器件。在這里,讓我們利用Arduino中安裝的LED(引腳13),嘗試實(shí)現(xiàn)在按下開關(guān)時(shí)點(diǎn)亮LED,并在松開開關(guān)時(shí)熄滅LED。所用的電路與前述的僅將開關(guān)連接到數(shù)字引腳時(shí)的電路相同。編寫程序如下:

確認(rèn)第14行的數(shù)字輸入值是否為“1”。在Arduino程序中,您也可以將“1”寫為“HIGH”,將“0”寫為“LOW”。為了便于理解,我們?cè)谶@里使用“HIGH”和“LOW”。

如果輸入為HIGH(未按下按鈕),則執(zhí)行第15行,使引腳13切換到LOW,LED熄滅。如果輸入不是HIGH(按下按鈕),則執(zhí)行第17行,使引腳13切換到HIGH,LED點(diǎn)亮。將程序發(fā)送到Arduino并按下輕觸開關(guān),即可確認(rèn)LED點(diǎn)亮。

我們成功了!現(xiàn)在,您可以在您的Arduino項(xiàng)目中使用開關(guān)來執(zhí)行輸入了。

審核編輯:湯梓紅

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

    關(guān)注

    242

    文章

    23628

    瀏覽量

    669584
  • 開關(guān)狀態(tài)
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    9213
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6485

    瀏覽量

    189830
  • 輕觸開關(guān)
    +關(guān)注

    關(guān)注

    0

    文章

    71

    瀏覽量

    1811
收藏 人收藏

    評(píng)論

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

    請(qǐng)問撥碼開關(guān)需要加上拉電阻嗎?

    撥碼開關(guān)需要加上拉電阻嗎?不加可以讀取開關(guān)狀態(tài)嗎?
    發(fā)表于 09-11 21:17

    如何將開關(guān)的開/斷狀態(tài)轉(zhuǎn)變成Arduino能夠讀取的高/低電平

    如何將開關(guān)的開/斷狀態(tài)轉(zhuǎn)變成Arduino能夠讀取的高/低電平。解決的辦法是通過上 /下拉電阻,按照電路的不同通常又可以分為正邏輯(Positive Logic)和負(fù)邏輯(Invert
    發(fā)表于 01-17 08:35

    使用Arduino讀取MPU6050數(shù)據(jù)的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用Arduino讀取MPU6050數(shù)據(jù)的程序免費(fèi)下載。
    發(fā)表于 07-24 17:17 ?27次下載
    使用<b class='flag-5'>Arduino</b><b class='flag-5'>讀取</b>MPU6050數(shù)據(jù)的程序免費(fèi)下載

    Arduino讀取MPU9250傳感器

    電子發(fā)燒友網(wǎng)站提供《用Arduino讀取MPU9250傳感器.zip》資料免費(fèi)下載
    發(fā)表于 10-19 09:15 ?4次下載
    用<b class='flag-5'>Arduino</b><b class='flag-5'>讀取</b>MPU9250傳感器

    讀取負(fù)張力的Arduino示波器的想法

    電子發(fā)燒友網(wǎng)站提供《讀取負(fù)張力的Arduino示波器的想法.zip》資料免費(fèi)下載
    發(fā)表于 10-31 15:10 ?0次下載
    <b class='flag-5'>讀取</b>負(fù)張力的<b class='flag-5'>Arduino</b>示波器的想法

    Arduino讀取DHT22(或DHT11)

    電子發(fā)燒友網(wǎng)站提供《用Arduino讀取DHT22(或DHT11).zip》資料免費(fèi)下載
    發(fā)表于 11-16 11:02 ?1次下載
    用<b class='flag-5'>Arduino</b><b class='flag-5'>讀取</b>DHT22(或DHT11)

    Arduino HDC2010讀取數(shù)據(jù)和舒適區(qū)警報(bào)

    電子發(fā)燒友網(wǎng)站提供《Arduino HDC2010讀取數(shù)據(jù)和舒適區(qū)警報(bào).zip》資料免費(fèi)下載
    發(fā)表于 12-09 09:35 ?2次下載
    <b class='flag-5'>Arduino</b> HDC2010<b class='flag-5'>讀取</b>數(shù)據(jù)和舒適區(qū)警報(bào)

    PROFINET IO 設(shè)備讀取模塊的狀態(tài)信息

    “ModuleStates”指令可用來讀取 PROFINET IO 設(shè)備或 PROFIBUS DP 從站的模塊狀態(tài)信息。
    的頭像 發(fā)表于 05-19 14:19 ?4770次閱讀
    PROFINET IO 設(shè)備<b class='flag-5'>讀取</b>模塊的<b class='flag-5'>狀態(tài)</b>信息

    如何通過Arduino讀取電表

    電子發(fā)燒友網(wǎng)站提供《如何通過Arduino讀取電表.zip》資料免費(fèi)下載
    發(fā)表于 06-16 15:18 ?1次下載
    如何通過<b class='flag-5'>Arduino</b><b class='flag-5'>讀取</b>電表

    基于Arduino的腳踏開關(guān)

    電子發(fā)燒友網(wǎng)站提供《基于Arduino的腳踏開關(guān).zip》資料免費(fèi)下載
    發(fā)表于 06-26 10:38 ?0次下載
    基于<b class='flag-5'>Arduino</b>的腳踏<b class='flag-5'>開關(guān)</b>

    Arduino的現(xiàn)代RTOS和狀態(tài)機(jī)開源分享

    電子發(fā)燒友網(wǎng)站提供《Arduino的現(xiàn)代RTOS和狀態(tài)機(jī)開源分享.zip》資料免費(fèi)下載
    發(fā)表于 06-27 14:57 ?0次下載
    <b class='flag-5'>Arduino</b>的現(xiàn)代RTOS和<b class='flag-5'>狀態(tài)</b>機(jī)開源分享

    用GPIO讀取按鈕狀態(tài)

    樹莓派的GPIO可以控制發(fā)光二極管,這是GPIO的Output(輸出)能力,它也具有input(讀取)的能力,所以才能叫做I/O(輸入/輸出)端口。今天我們就來用GPIO的引腳來讀取按鈕的狀態(tài)。
    的頭像 發(fā)表于 07-02 15:06 ?2080次閱讀
    用GPIO<b class='flag-5'>讀取</b>按鈕<b class='flag-5'>狀態(tài)</b>

    Arduino之如何逐行讀取SD卡文本文件

    電子發(fā)燒友網(wǎng)站提供《Arduino之如何逐行讀取SD卡文本文件.zip》資料免費(fèi)下載
    發(fā)表于 07-12 10:17 ?1次下載
    <b class='flag-5'>Arduino</b>之如何逐行<b class='flag-5'>讀取</b>SD卡文本文件

    通過SFC 51讀取CPU的指示燈狀態(tài)

    可以通過SFC 51讀取CPU的指示燈狀態(tài),使用的SSL_ID參數(shù)為16#74(16#19)讀取全部指示燈狀態(tài) 或者16#174(16#119)讀取
    的頭像 發(fā)表于 07-24 16:34 ?2048次閱讀
    通過SFC 51<b class='flag-5'>讀取</b>CPU的指示燈<b class='flag-5'>狀態(tài)</b>

    stm32讀取boot引腳狀態(tài)

    在STM32微控制器中,Boot引腳(通常指的是BOOT0和BOOT1引腳)的狀態(tài)決定了設(shè)備啟動(dòng)時(shí)的引導(dǎo)模式。這些引腳的狀態(tài)在復(fù)位時(shí)被讀取,并據(jù)此選擇啟動(dòng)哪塊存儲(chǔ)器。比如,STM32F103系列
    的頭像 發(fā)表于 08-22 09:48 ?2258次閱讀