使Arduino進入休眠狀態,然後喚醒
在本文中,我們將按照標題的建議,使Arduino進入休眠狀態,並使用中斷喚醒它。Arduino的微控制器ATmega328P有6種休眠模式,其中5種可透過**avr/sleep.h**庫使用。每種模式都有不同的喚醒模式和不同的功耗。
Arduino的微控制器ATmega328P有6種休眠模式,其中5種可透過**avr/sleep.h**庫使用。
空閒模式
ADC降噪
掉電
省電
待機
擴充套件待機
每種模式都有不同的喚醒模式和不同的功耗。
空閒模式最容易喚醒,而待機和掉電模式最難喚醒(只能使用外部中斷或看門狗定時器從待機模式喚醒模組)。掉電模式也是最節能的休眠模式。
TWI地址匹配指的是I2C或線地址匹配。只有當微控制器為I2C從機並且主機發送與該微控制器相對應的地址以喚醒它時,微控制器才能透過這種方式喚醒。建議您仔細閱讀ATmega328P的資料手冊,以瞭解更多關於休眠模式的資訊。
現在,您可以直接使用avr/sleep.h庫並在Arduino中探索休眠模式。這裡給出了一個示例這裡。
但是,就像往常一樣,有人已經努力建立了一個庫。該庫稱為**Low-Power**。它可以在GitHub上找到這裡。
它在Arduino IDE的庫管理器中不可用。此處解釋了安裝此類庫的方法這裡。
安裝完此庫後,轉到:**檔案 → 示例 → Low-Power → 示例 → idleWakePeriodic**

如您所見,程式碼非常簡單。您包含“**LowPower.h**”庫,並且迴圈中只有一行(不需要設定) -
LowPower.idle(SLEEP_8S, ADC_OFF, TIMER2_OFF, TIMER1_OFF, TIMER0_OFF, SPI_OFF, USART0_OFF, TWI_OFF);
如您所見,我們正在將Arduino設定為低功耗空閒模式,停用ADC、定時器、SPI、UART和TWI,並使用看門狗定時器喚醒它。
以上語句適用於Arduino Uno(ATmega328P)。程式碼註釋中還提供了其他微控制器的相應語句。
您可以透過將電流感測器(安培表)與Arduino電源串聯連線,並在Arduino休眠時觀察電流下降來檢查Arduino是否確實處於休眠狀態。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP