在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

基于Arduino的低功耗睡眠模式設(shè)計(jì)方案

電子設(shè)計(jì) ? 來源:一板網(wǎng) ? 作者:風(fēng)箏 ? 2021-01-13 17:00 ? 次閱讀

功耗是設(shè)備長時(shí)間連續(xù)運(yùn)行而不斷電的關(guān)鍵因素。因此,為了解決這個(gè)問題,幾乎每個(gè)控制器都帶有睡眠模式,這有助于開發(fā)人員設(shè)計(jì)電子設(shè)備以實(shí)現(xiàn)最佳功耗。休眠模式通過關(guān)閉未使用的模塊將器件置于省電模式。

今天我們將了解Arduino睡眠模式(Sleep Mode)并使用Ammeter演示功耗。 Arduino睡眠模式也稱為Arduino省電模式(Power Save mode)或Arduino待機(jī)模式(Standby Mode)。

Arduino睡眠模式

睡眠模式允許用戶停止或關(guān)閉微控制器中未使用的模塊,從而顯著降低功耗。 Arduino UNO、Arduino Nano和Pro-mini配備了ATmega328P,它有一個(gè)欠壓檢測(cè)器(BOD),用于監(jiān)控睡眠模式時(shí)的電源電壓。

ATmega328P有六種睡眠模式:

pIYBAF_-tgmAa_0CAAFGMzyf0fU022.png

要進(jìn)入任何睡眠模式,我們需要在睡眠模式控制寄存器(SMCR.SE)中啟用睡眠位。然后,睡眠模式選擇位選擇Idle、ADC noise reduction、Power-Down、Power-Save、Standby和External Standby的睡眠模式。

內(nèi)部或外部Arduino中斷或復(fù)位可以將Arduino從睡眠模式喚醒。

空閑(Idle)模式

要進(jìn)入空閑休眠模式,請(qǐng)寫入控制器“000”的SM [2,0]位。此模式停止CPU,但允許SPI、2線串行接口、USART、看門狗、計(jì)數(shù)器、模擬比較器工作。空閑模式基本上停止CLKCPU和CLKFLASH。通過使用外部或內(nèi)部中斷,可以隨時(shí)喚醒Arduino。

空閑睡眠模式的Arduino代碼:

LowPower.idle(SLEEP_8S, ADC_OFF, TIMER2_OFF, TIMER1_OFF, TIMER0_OFF, SPI_OFF, USART0_OFF, TWI_OFF);

有一個(gè)用于在arduino中設(shè)置各種低功耗模式的庫。因此,首先從給定鏈接下載并安裝庫,然后使用上面的代碼將Arduino置于空閑睡眠模式。通過使用上面的代碼,Arduino將進(jìn)入8秒的睡眠狀態(tài)并自動(dòng)喚醒。正如您在代碼中所看到的,空閑模式會(huì)關(guān)閉所有定時(shí)器、SPI、USART和TWI(2線接口)。

ADC降噪模式(ADC noise reduction)

要使用此睡眠模式,請(qǐng)將SM [2,0]位寫入“001”。該模式會(huì)停止CPU,但允許ADC、外部中斷、USART、2線串行接口、看門狗和計(jì)數(shù)器運(yùn)行。 ADC降噪模式基本上停止CLKCPU、CLKI / O和CLKFLASH。我們可以通過以下方法從ADC降噪模式喚醒控制器:

● 外部復(fù)位

● 看門狗系統(tǒng)復(fù)位

● 看門狗中斷

● 欠壓復(fù)位

● 2線串行接口地址匹配

● INT上的外部電平中斷

● 引腳更改中斷

● 定時(shí)器/計(jì)數(shù)器中斷

● SPM / EEPROM就緒中斷

掉電模式(Power-Down Mode)

掉電模式會(huì)停止所有生成的時(shí)鐘,并且只允許異步模塊的操作。可以通過將SM [2,0]位寫入'010'來啟用它。在此模式下,外部振蕩器關(guān)閉,但2線串行接口、看門狗和外部中斷繼續(xù)運(yùn)行。它只能通過以下方法之一禁用:

● 外部復(fù)位

● 看門狗系統(tǒng)復(fù)位

● 看門狗中斷

● 欠壓復(fù)位

● 2線串行接口地址匹配

● INT上的外部電平中斷

● 引腳更改中斷

用于掉電周期模式的Arduino代碼:

LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);

該代碼用于打開省電模式。通過使用上面的代碼,Arduino將進(jìn)入8秒的睡眠狀態(tài)并自動(dòng)喚醒。

我們還可以使用具有中斷的掉電模式,其中Arduino將進(jìn)入休眠狀態(tài),但僅在提供外部或內(nèi)部中斷時(shí)才會(huì)喚醒。

用于掉電中斷模式的Arduino代碼:

void loop()

{

// Allow wake up pin to trigger interrupt on low.

attachInterrupt(0, wakeUp, LOW);

LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);

// Disable external pin interrupt on wake up pin.

detachInterrupt(0);

// Do something here

}

省電模式(Power-Save)

要進(jìn)入省電模式,我們需要將SM [2,0]引腳寫入'011'。該睡眠模式類似于掉電模式,只有一個(gè)例外,即如果啟用定時(shí)器/計(jì)數(shù)器,即使在睡眠時(shí)它也將保持運(yùn)行狀態(tài)。可以使用定時(shí)器溢出喚醒設(shè)備。

如果您沒有使用時(shí)間/計(jì)數(shù)器,建議使用掉電模式而不是省電模式。

待機(jī)模式(Standby)

待機(jī)模式與掉電模式相同,它們之間的唯一區(qū)別是外部振蕩器在此模式下保持運(yùn)行。要啟用此模式,請(qǐng)將SM [2,0]引腳寫入“110”。

擴(kuò)展待機(jī)模式(Extended Standby)

此模式類似于省電模式,只有振蕩器保持運(yùn)行的一個(gè)例外。當(dāng)我們將SM [2,0]引腳寫入'111'時(shí),器件將進(jìn)入擴(kuò)展待機(jī)模式。從延長待機(jī)模式喚醒器件需要6個(gè)時(shí)鐘周期。

需要的組件

● Arduino UNO開發(fā)板

● DHT11溫濕度傳感器

USB電流

● 面包板

● 連接線

USB電流表

USB電流表是一種即插即用設(shè)備,用于測(cè)量任何USB端口的電壓和電流。加密狗插入U(xiǎn)SB電源(計(jì)算機(jī)USB端口)和USB設(shè)備(Arduino)之間。該器件具有與電源引腳串聯(lián)的0.05歐姆電阻,通過它可以測(cè)量所消耗的電流值。該設(shè)備配有四個(gè)七段顯示屏,可立即顯示連接設(shè)備消耗的電流和電壓值。這些值以每三秒的間隔刷新。

電路原理

o4YBAF_-tjSAH-3bAADYlj-mK98471.png

在上面的演示中演示了Arduino深度睡眠模式,Arduino插入U(xiǎn)SB電流表,然后將USB電流表插入筆記本電腦的USB端口。 DHT11傳感器的數(shù)據(jù)引腳連接到Arduino的D2引腳。

代碼說明

首先包含DHT11傳感器和LowPower庫。要下載LowPower庫,請(qǐng)單擊此鏈接。然后我們定義了DHT11的數(shù)據(jù)引腳所連接的Arduino引腳編號(hào),并定義了一個(gè)DHT對(duì)象。

#include

#include

#define dataPin 2

dht DHT;

在void setup()函數(shù)中,我們使用serial.begin(9600)啟動(dòng)了串行通信,這里9600是波特率。我們使用Arduino的內(nèi)置LED作為睡眠模式的指示器。因此,我們將引腳設(shè)置為輸出,將數(shù)字寫入設(shè)置為低電平。

void setup() {

Serial.begin(9600);

pinMode(LED_BUILTIN,OUTPUT);

digitalWrite(LED_BUILTIN,LOW);

}

在void loop()函數(shù)中,我們將內(nèi)置LED設(shè)為HIGH,并從傳感器讀取溫度和濕度數(shù)據(jù)。在這里,DHT.read11();函數(shù)是從傳感器讀取數(shù)據(jù)。計(jì)算完數(shù)據(jù)后,我們可以通過將值保存到任何變量來檢查這些值。在這里,我們采用了兩個(gè)浮點(diǎn)型變量't'和'h'。因此,溫度和濕度數(shù)據(jù)在串口監(jiān)視器上串行打印。

void loop() {

Serial.println("Get Data From DHT11");

delay(1000);

digitalWrite(LED_BUILTIN,HIGH);

int readData = DHT.read11(dataPin); // DHT11

float t = DHT.temperature;

float h = DHT.humidity;

Serial.print("Temperature = ");

Serial.print(t);

Serial.print(" C | ");

Serial.print("Humidity = ");

Serial.print(h);

Serial.println(" % ");

delay(2000);

在啟用睡眠模式之前,我們正在打印“Arduino: - I am going for a Nap”并使內(nèi)置LED為低電平。之后,在代碼中使用下面提到的命令啟用Arduino睡眠模式。

下面的代碼啟用Arduino的空閑周期性睡眠模式,并提供8秒的睡眠。它將ADC、定時(shí)器、SPI、USART、2線接口轉(zhuǎn)為OFF狀態(tài)。

然后它會(huì)在8秒后自動(dòng)從睡眠中喚醒Arduino并打印出“Arduino:- Hey I just Woke up”。

Serial.println("Arduino:- I am going for a Nap");

delay(1000);

digitalWrite(LED_BUILTIN,LOW);

LowPower.idle(SLEEP_8S, ADC_OFF, TIMER2_OFF, TIMER1_OFF, TIMER0_OFF,

SPI_OFF, USART0_OFF, TWI_OFF);

Serial.println("Arduino:- Hey I just Woke up");

Serial.println("");

delay(2000);

}

因此,通過使用此代碼,Arduino將在一分鐘內(nèi)喚醒24秒,并在36秒的剩余時(shí)間內(nèi)保持睡眠狀態(tài),這將顯著降低Arduino氣象站的功耗。

因此,如果我們將Arduino與睡眠模式一起使用,我們可以將設(shè)備運(yùn)行時(shí)間顯著增加。
編輯:hfy

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

    關(guān)注

    112

    文章

    16416

    瀏覽量

    178761
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6474

    瀏覽量

    187432
  • 控制寄存器
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    11505
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    CKS32F4xx系列MCU的低功耗模式睡眠模式

    本課講為大家講解CKS32F4xx系列產(chǎn)品的低功耗模式睡眠(Sleep)模式。MCU為滿足某些應(yīng)用場(chǎng)景:如小型化低容量設(shè)備,長期監(jiān)測(cè)設(shè)備等,低功耗
    發(fā)表于 06-26 10:02 ?663次閱讀
    CKS32F4xx系列MCU的<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>之<b class='flag-5'>睡眠</b><b class='flag-5'>模式</b>

    第30章 FreeRTOS低功耗睡眠模式

    ,STM32F407和STM32F429的低功耗方式之睡眠模式的一些知識(shí)點(diǎn),第33章講解FreeRTOS支持的tickless模式睡眠
    發(fā)表于 09-12 17:21

    第21章 RTX低功耗睡眠模式

    STM32F103和STM32F407的低功耗方式之睡眠模式在RTX操作系統(tǒng)上面的實(shí)現(xiàn)方法(RTX本身支持的tickless低功耗模式在第2
    發(fā)表于 10-08 17:40

    怎么使PIC處于低功耗睡眠模式

    你好,我正在使用PIC 18F26J50。對(duì)于一個(gè)應(yīng)用程序,我需要使PIC處于低功耗睡眠模式,大部分時(shí)間。我已經(jīng)編程了兩種中斷睡眠模式的可
    發(fā)表于 03-30 09:26

    STM32的低功耗模式

    STM32的低功耗模式1.睡眠模式2.停止模式3.待機(jī)模式各種
    發(fā)表于 08-11 07:35

    介紹STM32低功耗睡眠模式事件喚醒的實(shí)現(xiàn)

    STM32 低功耗睡眠模式(SLEEP)事件(EVENT)喚醒實(shí)現(xiàn)及優(yōu)化1. 介紹STM32具有多種低功耗模式,當(dāng)前以STM32L4系列的
    發(fā)表于 02-23 06:02

    模式電源管理IC的低功耗設(shè)計(jì)方案

    針對(duì)降低多模式電源管理IC在輕載與待機(jī)工作模式功耗,提高其全負(fù)載條件下工作效率的需要,提出一種電源管理IC供電系統(tǒng)的設(shè)計(jì)方案,實(shí)現(xiàn)了其在啟動(dòng)、關(guān)斷、重載、輕載以及待機(jī)等各種工作情況下
    的頭像 發(fā)表于 05-20 09:50 ?3955次閱讀

    STM32CubeMX學(xué)習(xí)筆記(15)——電源管理(PWR)低功耗睡眠模式

    一、低功耗模式簡(jiǎn)介系統(tǒng)提供了多個(gè)低功耗模式,可在 CPU 不需要運(yùn)行時(shí)(例如等待外部事件時(shí))節(jié)省功耗。由用戶根據(jù)應(yīng)用選擇具體的
    發(fā)表于 12-05 11:06 ?0次下載
    STM32CubeMX學(xué)習(xí)筆記(15)——電源管理(PWR)<b class='flag-5'>低功耗</b><b class='flag-5'>睡眠</b><b class='flag-5'>模式</b>

    STM32低功耗模式測(cè)試

    stm32單片機(jī)低功耗模式共用3中,下來對(duì)3中低功耗進(jìn)行分析測(cè)試。先看手冊(cè)上相關(guān)低功耗資料介紹:先來分析睡眠
    發(fā)表于 12-31 19:05 ?10次下載
    STM32<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>測(cè)試

    STM32 低功耗睡眠模式(SLEEP)事件(EVENT)喚醒實(shí)現(xiàn)及優(yōu)化

    STM32 低功耗睡眠模式(SLEEP)事件(EVENT)喚醒實(shí)現(xiàn)及優(yōu)化1. 介紹STM32具有多種低功耗模式,當(dāng)前以STM32L4系列的
    發(fā)表于 12-31 19:08 ?36次下載
    STM32 <b class='flag-5'>低功耗</b><b class='flag-5'>睡眠</b><b class='flag-5'>模式</b>(SLEEP)事件(EVENT)喚醒實(shí)現(xiàn)及優(yōu)化

    STM32 低功耗睡眠模式(SLEEP)中斷(INTERRUPT)喚醒實(shí)現(xiàn)及優(yōu)化

    STM32 低功耗睡眠模式(SLEEP)中斷(INTERRUPT)喚醒實(shí)現(xiàn)及優(yōu)化1. 介紹STM32具有多種低功耗模式,當(dāng)前以STM32L4
    發(fā)表于 12-31 19:09 ?38次下載
    STM32 <b class='flag-5'>低功耗</b><b class='flag-5'>睡眠</b><b class='flag-5'>模式</b>(SLEEP)中斷(INTERRUPT)喚醒實(shí)現(xiàn)及優(yōu)化

    PWR低功耗模式介紹

    低功耗模式,以在低功耗、短啟動(dòng)時(shí)間、可用外設(shè)和可用喚醒源之間實(shí)現(xiàn)最佳折衷。 睡眠模式 低功耗運(yùn)行
    發(fā)表于 03-23 14:30 ?1318次閱讀
    PWR<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>介紹

    PWR低功耗睡眠模式介紹

    添加進(jìn)入低功耗睡眠模式的功能 /* 無限循環(huán) */ /* USER CODE BEGIN WHILE */ while ( 1 ) { /* USER CODE END WHILE */ /* 用戶
    發(fā)表于 03-23 14:47 ?996次閱讀
    PWR<b class='flag-5'>低功耗</b><b class='flag-5'>睡眠</b><b class='flag-5'>模式</b>介紹

    您真的了解睡眠模式對(duì)超低功耗無線MCU有多重要嗎?(內(nèi)附活動(dòng)中獎(jiǎng)名單)

    員應(yīng)當(dāng)仔細(xì)選擇采用藍(lán)牙低功耗技術(shù)的 MCU 的規(guī)格,確定超低功耗的真正含義。這不是對(duì)照數(shù)據(jù)表確定最低電流消耗值,針對(duì)應(yīng)用尋求最佳解決方案并非易事。 睡眠
    的頭像 發(fā)表于 05-25 10:45 ?901次閱讀
    您真的了解<b class='flag-5'>睡眠</b><b class='flag-5'>模式</b>對(duì)超<b class='flag-5'>低功耗</b>無線MCU有多重要嗎?(內(nèi)附活動(dòng)中獎(jiǎng)名單)

    低功耗無線 MCU:玩轉(zhuǎn)睡眠模式

    支持藍(lán)牙低功耗 (LE) 的設(shè)計(jì)可讓設(shè)備長時(shí)間處于非工作狀態(tài),因此,您可能需要選用具有超低功耗睡眠模式的高能效無線微控制器 (MCU),這對(duì)于優(yōu)化整體系統(tǒng)性能至關(guān)重要。
    的頭像 發(fā)表于 07-10 10:44 ?924次閱讀
    超<b class='flag-5'>低功耗</b>無線 MCU:玩轉(zhuǎn)<b class='flag-5'>睡眠</b><b class='flag-5'>模式</b>
    主站蜘蛛池模板: 午夜色婷婷| 日本三级日本三级日本三级极| 免费看啪啪网站| 免费又黄又硬又大爽日本| 91中文字幕视频| 男女在线观看视频| 宅男69免费永久网站| 亚洲四虎在线| 四虎黄色影院| 欧美黄色一级视频| 国模视频一区| 自拍偷拍综合网| 奇米影视777四色米奇影院| 国产精品成人一区二区| yellow中文字幕久久网| 综合色99| 欧美在线观看一区二区三| 精品伊人久久大香线蕉网站| 成人网18免费下| 人人插人人| 看大片全色黄大色黄| 福利视频一区二区| 色综合久久久久综合99| 男人天堂色男人| 123综合网在线| 久操视频在线播放| 在线观看中文字幕一区 | 大黄香蕉| 日日摸夜夜爽夜夜爽出水| 色牛网| 日本大黄视频| 国产精品99r8免费视频2022| 四虎1515hh永久久免费| 看黄网站在线| 亚洲人成人网毛片在线播放| 欧美色爱综合网| 97理论片| zzji国产精品视频| 99久久精品免费看国产| 日本视频色| 在线操|