女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

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

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

功耗是設(shè)備長時間連續(xù)運(yùn)行而不斷電的關(guān)鍵因素。因此,為了解決這個問題,幾乎每個控制器都帶有睡眠模式,這有助于開發(fā)人員設(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,它有一個欠壓檢測器(BOD),用于監(jiān)控睡眠模式時的電源電壓。

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)入空閑休眠模式,請寫入控制器“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中設(shè)置各種低功耗模式的庫。因此,首先從給定鏈接下載并安裝庫,然后使用上面的代碼將Arduino置于空閑睡眠模式。通過使用上面的代碼,Arduino將進(jìn)入8秒的睡眠狀態(tài)并自動喚醒。正如您在代碼中所看到的,空閑模式會關(guān)閉所有定時器、SPI、USART和TWI(2線接口)。

ADC降噪模式(ADC noise reduction)

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

● 外部復(fù)位

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

● 看門狗中斷

● 欠壓復(fù)位

● 2線串行接口地址匹配

● INT上的外部電平中斷

● 引腳更改中斷

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

● SPM / EEPROM就緒中斷

掉電模式(Power-Down Mode)

掉電模式會停止所有生成的時鐘,并且只允許異步模塊的操作。可以通過將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)并自動喚醒。

我們還可以使用具有中斷的掉電模式,其中Arduino將進(jìn)入休眠狀態(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)

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

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

待機(jī)模式(Standby)

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

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

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

需要的組件

● Arduino UNO開發(fā)板

● DHT11溫濕度傳感器

USB電流

● 面包板

● 連接線

USB電流表

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

電路原理

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è)置為輸出,將數(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ù)。計算完數(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線接口轉(zhuǎn)為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與睡眠模式一起使用,我們可以將設(shè)備運(yùn)行時間顯著增加。
編輯:hfy

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

    關(guān)注

    114

    文章

    16925

    瀏覽量

    182666
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6489

    瀏覽量

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

    關(guān)注

    0

    文章

    34

    瀏覽量

    11605
收藏 人收藏

    評論

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

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

    本課講為大家講解CKS32F4xx系列產(chǎn)品的低功耗模式睡眠(Sleep)模式。MCU為滿足某些應(yīng)用場景:如小型化低容量設(shè)備,長期監(jiān)測設(shè)備等,低功耗
    發(fā)表于 06-26 10:02 ?754次閱讀
    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。對于一個應(yīng)用程序,我需要使PIC處于低功耗睡眠模式,大部分時間。我已經(jīng)編程了兩種中斷睡眠模式的可
    發(fā)表于 03-30 09:26

    STM32的低功耗模式

    STM32的低功耗模式1.睡眠模式2.停止模式3.待機(jī)模式各種
    發(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具有多種低功耗模式,當(dāng)前以STM32L4系列的
    發(fā)表于 02-23 06:02

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

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

    STM32低功耗模式測試

    stm32單片機(jī)低功耗模式共用3中,下來對3中低功耗進(jìn)行分析測試。先看手冊上相關(guān)低功耗資料介紹:先來分析睡眠
    發(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具有多種低功耗模式,當(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)喚醒實現(xiàn)及優(yōu)化

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

    STM32 低功耗睡眠模式(SLEEP)中斷(INTERRUPT)喚醒實現(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)喚醒實現(xiàn)及優(yōu)化

    PWR低功耗模式介紹

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

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

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

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

    支持藍(lán)牙低功耗 (LE) 的設(shè)計可讓設(shè)備長時間處于非工作狀態(tài),因此,您可能需要選用具有超低功耗睡眠模式的高能效無線微控制器 (MCU),這對于優(yōu)化整體系統(tǒng)性能至關(guān)重要。
    的頭像 發(fā)表于 07-10 10:44 ?1092次閱讀
    超<b class='flag-5'>低功耗</b>無線 MCU:玩轉(zhuǎn)<b class='flag-5'>睡眠</b><b class='flag-5'>模式</b>