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

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

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

如何讓Arduino進(jìn)入睡眠狀態(tài)

454398 ? 來源:工程師吳畏 ? 2019-08-26 08:54 ? 次閱讀

第1步:需要的材料/使用的電路板

使用什么電路板?

在本教程中,我們將使用Arduino Uno,因?yàn)樗且粋€(gè)更簡(jiǎn)單的原型板。在一個(gè)真實(shí)的現(xiàn)場(chǎng)項(xiàng)目中,我會(huì)使用Arduino Pro Mini。 Arduino Uno和Arduino Pro Mini具有非常相似的特性,Arduino pro mini具有更少的硬件供電(例如USB部分,額外的LED和其他一些東西),因此功耗更低。這就是為什么Arduino Pro mini是更好的選擇。舉一個(gè)例子,Uno在清醒時(shí)使用30-40 mA,在睡眠時(shí)使用約19 mA。 Pro Mini在喚醒時(shí)使用25mA,在睡眠時(shí)使用0.57 mA。由于每個(gè)mA在連接到電池時(shí)都很重要,你可以看到?jīng)]有比賽,Arduino Pro Mini是贏家。

注意:作為初學(xué)者,Arduino Pro Mini可能有點(diǎn)令人生畏,但沒有理由。是的,您需要將標(biāo)題焊接到電路板上,并且需要使用FTDI電纜上傳草圖,但除此之外沒有重大差異。

第2步:睡眠模式

當(dāng)您查看ATmega328p的文檔時(shí)(單擊此鏈接獲取本文檔的副本)處理器用于Arduino Uno和Arduino Pro mini,您會(huì)注意到那里有許多不同的睡眠模式可用。但在現(xiàn)實(shí)世界中,實(shí)際上只有一種模式很有用;掉電模式(SLEEP_MODE_PWR_DOWN)。

當(dāng)您將Arduino置于休眠狀態(tài)時(shí),它會(huì)關(guān)閉所有不必要的組件,從而降低MCU微控制器單元)的功耗。在這種模式下,你可以喚醒它的唯一方法是使用外部影響(例如我們輕輕喚醒它)。我們將在本教程稍后討論如何執(zhí)行此操作。

步驟3:中斷

在我們進(jìn)入代碼放置Arduino之前睡覺我們需要了解中斷概念。描述它的最佳方式是;你正在研究你真正需要關(guān)注的事情。你戴著耳機(jī)大聲爆破你的音樂,淹沒你的余情。你如此專注于外面世界對(duì)你失去了。引起你注意的唯一方法就是給你一個(gè)輕推。在你收到這個(gè)輕推之后,你要注意中斷的內(nèi)容,并在處理之后你重新打開音樂并繼續(xù)你的任務(wù)。

注意:我不打算深入了解中斷有什么用處,但如果您想了解有關(guān)此概念的更多信息,請(qǐng)查看我的教程( 使用中斷來改善項(xiàng)目的功能 )

大多數(shù)真正的Arduino都有幾個(gè)引腳可以做到這一點(diǎn)。 Uno和Pro Mini有2個(gè)引腳(d2和d3),能夠中斷Arduino正在做的事情。有了這個(gè),我們可以將Arduino推回到清醒狀態(tài)。

第4步:代碼/草圖

您可以從我的下載已完成的完成草圖網(wǎng)站點(diǎn)擊此鏈接要獲得完整的描述和解釋代碼如何工作,您可以點(diǎn)擊鏈接:讓您的Arduino進(jìn)入睡眠狀態(tài)的指南進(jìn)入我的博客。

第5步:EXERCISE 1

步驟1)

現(xiàn)在是時(shí)候上傳草圖了。但在此之前,在d2中放了一根跳線?,F(xiàn)在就把它拔掉另一端。加載草圖并等待5秒鐘,LED指示燈熄滅,Arduino進(jìn)入休眠狀態(tài)。

步驟2)

LED熄滅后插入跳線的另一端連接Arduino Uno上的GND引腳。這將拉低引腳2 LOW觸發(fā)中斷,從而喚醒正在睡眠的Arduino。 LED重新亮起后,您可以將跳線從GND中取出,5秒鐘后,Arduino會(huì)重新進(jìn)入睡眠狀態(tài)。

對(duì)于我使用實(shí)時(shí)時(shí)鐘(RTC)喚醒的示例項(xiàng)目濕度和溫度數(shù)據(jù)記錄器只需單擊以下鏈接:使用RTC喚醒ARDUINO數(shù)據(jù)記錄器的示例。它是如何在現(xiàn)實(shí)世界中發(fā)揮作用的一個(gè)很好的例子

聲明:本文內(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)投訴
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6458

    瀏覽量

    186504
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    一文搞懂Linux進(jìn)程的睡眠和喚醒

    睡眠機(jī)制: 1)主動(dòng)睡眠(Blocking Sleep): 進(jìn)程自愿進(jìn)入睡眠狀態(tài),通常是通過系統(tǒng)調(diào)用如sleep()、wait()等。 2)被動(dòng)
    發(fā)表于 11-04 15:15

    使用wifi_set_sleep_type設(shè)置為light sleep后無法進(jìn)入休眠怎么解決?

    使用wifi_set_sleep_type設(shè)置為light sleep后無法進(jìn)入休眠,模塊電流一直在80mA左右,(用強(qiáng)制light sleep休眠可以到十幾mA) 手冊(cè)說調(diào)用wifi_set_sleep_type后“由系統(tǒng)底層決定何時(shí)進(jìn)入睡眠
    發(fā)表于 07-22 06:12

    ESP8266上運(yùn)行AT命令固件,通過發(fā)送命令A(yù)T GSLP使其進(jìn)入深度睡眠狀態(tài),ESP8266如何從深度睡眠中醒來?

    我正在ESP8266上運(yùn)行 AT 命令固件。我可以通過發(fā)送命令 AT GSLP 使其進(jìn)入深度睡眠狀態(tài)。但是我如何從深度睡眠中醒來ESP8266呢?是否可以發(fā)送另一個(gè) AT 命令來喚醒它
    發(fā)表于 07-16 07:32

    請(qǐng)問esp32-s3如何正確進(jìn)入睡眠模式?

    開發(fā)板:esp32-s3-WROOM-1 ESP-IDF:5.0 不管通過esp_light_sleep_start()還是esp_deep_sleep_start()進(jìn)入睡眠模式,功耗都是在
    發(fā)表于 06-11 09:03

    esp32-s3添加ulp adc觸發(fā)喚醒后調(diào)用sleep_start不能進(jìn)入睡眠的原因?

    1.esp32-s3 在light_sleep睡眠模式下 添加ulp低功耗 risv 3s定時(shí)器喚醒源正常,同時(shí)添加ulp adc觸發(fā)喚醒后調(diào)用sleep_start 不能進(jìn)入睡眠的問題 。 2.
    發(fā)表于 06-07 07:01

    請(qǐng)問大佬們有什么辦法能使ESP32-C3進(jìn)入睡眠狀態(tài)后BLE依然連接呢?

    esp_sleep_pd_config的資料(圖4) ,遺憾的是里面沒有ESP_PD_DOMAIN_BT,請(qǐng)問大佬們有什么辦法能使ESP-C3進(jìn)入睡眠狀態(tài)后BLE依然連接呢?
    發(fā)表于 06-07 06:15

    TC397在系統(tǒng)需要時(shí)將MCU設(shè)置為睡眠模式遇到的疑問求解

    我想在系統(tǒng)需要時(shí)將 MCU 設(shè)置為睡眠模式,但在實(shí)施過程中我發(fā)現(xiàn)了一些疑點(diǎn)。 1為了外圍模塊進(jìn)入睡眠狀態(tài),我需要先將 EDIS 設(shè)置為 0,但我不確定何時(shí)應(yīng)將該位設(shè)置回 1?是否會(huì)通
    發(fā)表于 05-27 08:28

    請(qǐng)問如何CYW20721B2進(jìn)入睡眠狀態(tài)?

    我曾嘗試 CYW20721B2 休眠,但至今沒有成功。 我有一個(gè) CYBT-413061 模塊,在 APPLICATION_START() 結(jié)尾處的幾個(gè)示例程序中添加了以下代碼,但沒有睡眠
    發(fā)表于 05-24 08:12

    STM32F103進(jìn)入睡眠模式或者待機(jī)模式或者停機(jī)模式,IO腳原先設(shè)置的電平值是否會(huì)改變?

    STM32F103進(jìn)入睡眠模式或者待機(jī)模式或者停機(jī)模式,IO腳原先設(shè)置的電平值是否會(huì)改變? 鎖定STM32F103的IO腳,那么當(dāng) STM32F103進(jìn)入睡眠模式或者待機(jī)模式或者停機(jī)模式,IO腳原先設(shè)置的電平值是否會(huì)改變?
    發(fā)表于 05-17 09:22

    stm32f0待機(jī)模式用rtc鬧鐘喚醒,第二次喚醒沒辦法進(jìn)入睡眠什么情況?

    stm32f0待機(jī)模式用rtc鬧鐘喚醒問題,第一次正常,可以進(jìn)入睡眠,第二次喚醒重啟后執(zhí)行 PWR_EnterSTANDBYMode();就直接重啟了,沒辦法進(jìn)入睡眠什么情況?
    發(fā)表于 04-28 07:12

    請(qǐng)問STM32進(jìn)入睡眠模式怎么下載程序?

    今天做低功耗實(shí)驗(yàn),不小心把喚醒的代碼屏蔽了,板子開機(jī)后1秒左右就進(jìn)入深度睡眠了,這下下載不了程序了。嘗試用ISP下載,但是不管是讀MCU器件信息還清除芯片、下載程序都一直返回1F。莫非要報(bào)廢了
    發(fā)表于 04-24 08:00

    請(qǐng)問一下睡眠模式怎么用WFI進(jìn)入中斷?

    請(qǐng)問一下睡眠模式怎么用WFI進(jìn)入中斷,還有進(jìn)入睡眠模式說的CPU時(shí)鐘關(guān)閉,對(duì)其它時(shí)鐘及模擬時(shí)鐘無影響是什么意思,除了PWR時(shí)鐘開啟,其他關(guān)閉嗎,什么是模擬時(shí)鐘
    發(fā)表于 04-23 07:57

    CY8C4045AZI-S413使用外部時(shí)鐘 (48MHz) 而不是內(nèi)部時(shí)鐘時(shí)可以進(jìn)入睡眠模式嗎?

    CY8C4045AZI-S413 使用外部時(shí)鐘 (48MHz) 而不是內(nèi)部時(shí)鐘時(shí)可以進(jìn)入睡眠模式嗎? 如果是,使用內(nèi)部時(shí)鐘和外部時(shí)鐘進(jìn)入睡眠模式的 API 和程序是否相同? 即使使用外部時(shí)鐘
    發(fā)表于 02-26 06:36

    psoc6在進(jìn)入睡眠前配置了spi的口為高阻態(tài),spi無法正常工作是為什么?

    ); } //----------------------------------------------------------- 我發(fā)現(xiàn)一個(gè)問題就是我如果在進(jìn)入睡眠前配置了spi的口為高阻態(tài),在睡眠喚醒后,我的spi重新初始化也無法正常工作。 讀到的設(shè)備數(shù)據(jù)異常。
    發(fā)表于 02-21 06:16

    ADUCM360如何用外部中斷將CPU從睡眠模式喚醒?

    需要實(shí)現(xiàn)的功能:ADUCM360外接時(shí)鐘,時(shí)鐘定時(shí)中斷引腳連接CPU的外部中斷6,CPU不工作時(shí)進(jìn)入睡眠模式,當(dāng)時(shí)鐘定時(shí)到達(dá)5分鐘時(shí),外部中斷將CPU從睡眠模式喚醒,并執(zhí)行一些測(cè)量運(yùn)算,完成后
    發(fā)表于 01-12 06:59