GPIO - 使用按鈕開關讓LED燈泡閃爍

材料準備

  • AmebaPro2 [ AMB82 MINI ] x 1
  • Optional: Push button x 1
  • Optional: Register 220 ohms x 1
  • Optional: USB to ttl serial cable x 1

範例說明

介紹

在此範例中,開發板將示範待機模式以節省電量。 有 6 個喚醒源 系統將倒計時 5 秒,然後進入待機模式。 當喚醒源被觸發時,系統將重新啟動並再次喚醒。

下面兩個表列出了待機模式下的模塊和電路板功耗報告。

RTL8735B 模塊功耗結果

喚醒源模塊功耗 (uA)
待機模式 (3V3)
AON timer41.22
AON GPIO41.28
RTC41.46
PON GPIO41.07
UART/Serial141.32
Gtimer041.48

AMB82 MINI 開發板功耗測量

喚醒源開發板耗電量測量值 (mA)
一般模式待機模式
AON timer53.154.79
AON GPIO53.124.81
RTC53.114.75
PON GPIO55.094.87
UART/Serial155.614.79
Gtimer055.594.83

流程

在“File”->“Examples”->“AmebaPowerMode”->“StandbyMode”中打開人臉檢測範例。

1

接下來是設置系統並進入電源模式。 請參考以下步驟進入待機模式。
步驟 1. 設置“WAKEUP_SOURCE”,AON定時器:0; AON GPIO: 1; RTC:2,PON GPIO:3,UART/Serial1:4,Gtimer0:5。
步驟 2. 設置喚醒源。 有 6 個喚醒源,每個都有自己的設置。
對於 AON 定時器,在“#if (WAKEUP_SOURCE == 0)”部分,設置“CLOCK”和“SLEEP_DURATION”。 “CLOCK”可以是 4MHz 或 100kHz。 “SLEEP_DURATION”單位是秒。
對於 AON GPIO,在“#elif (WAKEUP_SOURCE == 1)”部分,設置“WAKUPE_SETTING”。 範例中的“WAKUPE_SETTING”是Pin,可以是21或22。GPIO引腳設置為高準位觸發,請參考以下連接。

1

對於 RTC,在“#elif (WAKEUP_SOURCE == 2)”部分,設置“ALARM_DAY”、“ALARM_HOUR”、“ALARM_MIN”或“ALARM_SEC”。 所有值都設置了 RTC 喚醒的持續時間。 範圍是“1day, 0h, 0m, 0s”到“365day, 23h, 59min, 59s”。
對於 PON GPIO,在“#elif (WAKEUP_SOURCE == 3)”部分,設置“WAKUPE_SETTING”。 範例中的“WAKUPE_SETTING”是Pin,可以是0到11。GPIO引腳設置為高準位觸發,請參考下面的連接。

1

對於 UART/Serial1,無需設置。 但是USB 到 ttl serial cable Tx(綠色)和 Rx(白色)引腳需要連接到 Serial1 Rx 和 Tx 引腳。 請參考以下連接。 (紅色電源5V/3.3V,黑色接地)

1

對於 Gtimer0,在“#elif (WAKEUP_SOURCE == 5)”部分,設置“SLEEP_DURATION”。 “SLEEP_DURATION”是以秒為單位的定時器睡眠持續時間。
步驟 3. 啟動待機模式。 此步驟只有 1 個可選設置。 當喚醒源設置為 RTC 時,使用“PowerMode.start(1970, 1, 1, 0, 0, 0);” 替換“PowerMode.start();” 用於設置開始時間。 (默認為 1970.1.1 00:00:00)。

1

所有定時器將在持續時間結束時自動喚醒,所有 GPIO 引腳必須按下按鈕來高準位觸發,UART 需要通過 USB-ttl cable 通過 Serial1 提供輸入。
正確的開機、進入Standby、重啟週期如下圖。

1

請先確認已安裝QQ通訊軟體