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

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

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

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

基于Arduino的低功耗睡眠模式設計方案

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

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

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

Arduino睡眠模式

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

ATmega328P有六種睡眠模式:

pIYBAF_-tgmAa_0CAAFGMzyf0fU022.png

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

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

空閑(Idle)模式

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

空閑睡眠模式的Arduino代碼:

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

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

ADC降噪模式(ADC noise reduction)

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

● 外部復位

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

● 看門狗中斷

● 欠壓復位

● 2線串行接口地址匹配

● INT上的外部電平中斷

● 引腳更改中斷

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

● SPM / EEPROM就緒中斷

掉電模式(Power-Down Mode)

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

● 外部復位

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

● 看門狗中斷

● 欠壓復位

● 2線串行接口地址匹配

● INT上的外部電平中斷

● 引腳更改中斷

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

LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);

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

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

用于掉電中斷模式的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)

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

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

待機模式(Standby)

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

擴展待機模式(Extended Standby)

此模式類似于省電模式,只有振蕩器保持運行的一個例外。當我們將SM [2,0]引腳寫入'111'時,器件將進入擴展待機模式。從延長待機模式喚醒器件需要6個時鐘周期。

需要的組件

● Arduino UNO開發(fā)板

● DHT11溫濕度傳感器

USB電流

● 面包板

● 連接線

USB電流表

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

電路原理

o4YBAF_-tjSAH-3bAADYlj-mK98471.png

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

代碼說明

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

#include

#include

#define dataPin 2

dht DHT;

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

void setup() {

Serial.begin(9600);

pinMode(LED_BUILTIN,OUTPUT);

digitalWrite(LED_BUILTIN,LOW);

}

在void loop()函數(shù)中,我們將內(nèi)置LED設為HIGH,并從傳感器讀取溫度和濕度數(shù)據(jù)。在這里,DHT.read11();函數(shù)是從傳感器讀取數(shù)據(jù)。計算完數(shù)據(jù)后,我們可以通過將值保存到任何變量來檢查這些值。在這里,我們采用了兩個浮點型變量'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、定時器、SPI、USART、2線接口轉為OFF狀態(tài)。

然后它會在8秒后自動從睡眠中喚醒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秒的剩余時間內(nèi)保持睡眠狀態(tài),這將顯著降低Arduino氣象站的功耗。

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

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

    關注

    114

    文章

    16832

    瀏覽量

    182183
  • Arduino
    +關注

    關注

    188

    文章

    6485

    瀏覽量

    189640
  • 控制寄存器
    +關注

    關注

    0

    文章

    34

    瀏覽量

    11586
收藏 人收藏

    評論

    相關推薦

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

    本課講為大家講解CKS32F4xx系列產(chǎn)品的低功耗模式睡眠(Sleep)模式。MCU為滿足某些應用場景:如小型化低容量設備,長期監(jiān)測設備等,低功耗
    發(fā)表于 06-26 10:02 ?737次閱讀
    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的低功耗方式之睡眠模式的一些知識點,第33章講解FreeRTOS支持的tickless模式睡眠
    發(fā)表于 09-12 17:21

    第21章 RTX低功耗睡眠模式

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

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

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

    STM32的低功耗模式

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

    STM32的低功耗模式

    STM32的低功耗模式共有三個:睡眠模式-(sleep): 睡眠模式
    發(fā)表于 08-12 08:15

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

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

    模式電源管理IC的低功耗設計方案

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

    STM32低功耗模式測試

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

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

    STM32 低功耗睡眠模式(SLEEP)事件(EVENT)喚醒實現(xiàn)及優(yōu)化1. 介紹STM32具有多種低功耗模式,當前以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)喚醒實現(xiàn)及優(yōu)化

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

    STM32 低功耗睡眠模式(SLEEP)中斷(INTERRUPT)喚醒實現(xiàn)及優(yōu)化1. 介紹STM32具有多種低功耗模式,當前以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)喚醒實現(xiàn)及優(yōu)化

    PWR低功耗模式介紹

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

    PWR低功耗睡眠模式介紹

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

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

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

    低功耗無線 MCU:玩轉睡眠模式

    支持藍牙低功耗 (LE) 的設計可讓設備長時間處于非工作狀態(tài),因此,您可能需要選用具有超低功耗睡眠模式的高能效無線微控制器 (MCU),這對于優(yōu)化整體系統(tǒng)性能至關重要。
    的頭像 發(fā)表于 07-10 10:44 ?1067次閱讀
    超<b class='flag-5'>低功耗</b>無線 MCU:玩轉<b class='flag-5'>睡眠</b><b class='flag-5'>模式</b>
    主站蜘蛛池模板: 女同性进行性行为视频 | 1024你懂的国产日韩欧美 | 色视频网站免费 | aaa在线观看高清免费 | 美女用手扒开尿口给男生桶爽 | 在线色播| 国产高清免费视频 | 欧美射射射 | 色老久久精品偷偷鲁一区 | 丁香五香天堂网 | 男人天堂伊人网 | 一区在线免费观看 | 99国产精品久久久久久久成人热 | 免费高清在线爱做视频 | 天天做天天添天天谢 | 欧美在线精品一区二区三区 | 午夜性视频播放免费视频 | 大美女久久久久久j久久 | 久久99爰这里有精品国产 | 欧美性网站| 人与牲动交xxxbbb| 美妇乱人伦性 | 无遮挡很爽很污很黄很色的网站 | 成人男女啪啪免费观看网站 | 免费看av的网址 | 精品国产污污免费网站入口 | 如色网| 免费午夜网站 | 在线成人欧美 | 亚洲福利视频一区二区 | 色婷婷激婷婷深爱五月小说 | 综合丁香 | 欧美一区二区三区不卡视频 | 日日噜噜噜夜夜爽爽狠狠视频 | 亚洲午夜在线观看 | 69老司机亚洲精品一区 | 国产特级毛片aaaaaa毛片 | 久久青草视频 | 午夜影院免费观看 | 天天搞夜夜操 | 久久精品亚洲精品国产欧美 |