《DNK210使用指南 -CanMV版 V1.0》第十三章 蜂鳴器實驗

正点原子發表於2024-07-18

第十三章 蜂鳴器實驗

1)實驗平臺:正點原子DNK210開發板

2)章節摘自【正點原子】DNK210使用指南 - CanMV版 V1.0

3)購買連結:https://detail.tmall.com/item.htm?&id=782801398750

4)全套實驗原始碼+手冊+影片下載地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html

5)正點原子官方B站:https://space.bilibili.com/394620890

6)正點原子K210技術交流企鵝群:605557868

本章實驗將介紹如何使用CanMV讓Kendryte K210控制板載的蜂鳴器發聲。透過本章的學習,讀者將學習到在CanMV下控制Kendryte K210的GPIO輸出高低電平。
本章分為如下幾個小節:
13.1 maix.GPIO模組介紹
13.2 硬體設計
13.3 程式設計
13.4 執行驗證

13.1 maix.GPIO模組介紹
有關maix.GPIO模組的介紹,請見第12.1小節《maix.GPIO模組介紹》。

13.2 硬體設計
13.2.1 例程功能

  1. 控制板載蜂鳴器間歇發生

13.2.2 硬體資源

  1. 蜂鳴器 - IO17

13.2.3 原理圖
本章實驗內容,需要控制板載蜂鳴器發聲,正點原子DNK210開發板上蜂鳴器的連線原理圖,如下圖所示:

圖13.2.3.1 蜂鳴器連線原理圖
透過以上原理圖可以看出,蜂鳴器的發聲與否由IO17控制,當IO17輸出低電平時,蜂鳴器不發聲,當IO17輸出高電平時,蜂鳴器發聲。

13.3 程式設計
13.3.1 maix.GPIO模組
有關maix.GPIO模組的介紹,請見第13.1小節《maix.GPIO模組介紹》。

13.3.2 程式流程圖

圖13.3.2.1 蜂鳴器實驗流程圖

13.3.3 main.py程式碼
main.py中的指令碼程式碼如下所示:

from board import board_info
from fpioa_manager import fm
from maix import GPIO
import time

# 為蜂鳴器連線的IO註冊GPIO功能
fm.register(board_info.BEEP, fm.fpioa.GPIO2)

# 構造GPIO物件
beep = GPIO(GPIO.GPIO2, GPIO.OUT)

while True:
    # 設定GPIO物件輸出對應的高低電平
    beep.value(0)
    time.sleep_ms(1000)
    beep.value(1)
    time.sleep_ms(1000)

可以看到,首先透過fm.register()方法為控制蜂鳴器的IO分別分配了GPIO2的功能,然後透過GPIO建構函式構造了GPIO物件,並配置為輸出模式,最後在一個迴圈中設定這個GPIO物件輸出依次輸出高低電平並延時一段時間,從而應該能聽到板載的蜂鳴器間歇地發聲。

13.4 執行驗證
將DNK210開發板連線CanMV IDE,並點選CanMV IDE上的“開始(執行指令碼)”按鈕後,可以聽到板載的蜂鳴器間歇地發聲,這與理論推斷的結果一致。

相關文章