使用 Raspberry Pi Pico 命令發出蜂鳴器音調
Raspberry Pi Pico 是一款低成本微控制器板,可讓初學者輕鬆開始電子項目並學習如何編碼。
在本項目中,您將學習如何從電位器讀取模擬信號並將其轉換為 PWM(脈衝寬度調製)信號,以在 MicroPython 代碼的幫助下控制蜂鳴器的頻率或音調。
需要什麼零件?
該項目基於 Kitronik Inventor’s Kit for Raspberry Pi Pico。所有必需的電子元件都包含在套件中;但是,這些是您可能擁有的常見組件:
- 壓電元件蜂鳴器
- 旋轉電位器
- 7x 公-公跳線
- Raspberry Pi Pico,帶有焊接的 GPIO 接頭引腳
- 麵包板
如果您不熟悉脈寬調製 (PWM) 和電位器,請先查看我們的指南,了解如何將電位器與 Raspberry Pi Pico 結合使用,其中概述瞭如何使用它來調節帶 PWM 的 LED 的亮度。
需要組裝
一根跳線(圖中黃色)將電位器的左側連接到麵包板的正極 (+) 導軌。另一根跳線將電位計的右側連接到麵包板的負 (-) 側。從電位計的中間引腳,您需要將跳線連接到 Pico 上的 GP26/A0 引腳。
壓電蜂鳴器需要一根電線從它的負極連接到麵包板的負極導軌,然後再從它的正極連接到 Raspberry Pi Pico 上的 GP15 引腳。
您還需要將跳線從 Pico 上的 GND 引腳連接到麵包板上的負軌,以將其接地。另一根跳線將 Pico 上的 3V3 輸出引腳連接到麵包板的正軌,為組件供電。
創建代碼
您可以從 MUO GitHub 存儲庫中獲取代碼。下載名為piezo-buzzer.py的 MicroPython 文件,然後通過運行 Thonny IDE 的 USB 連接計算機將其加載到 Pico。查看如何在 Raspberry Pi Pico 上開始使用 MicroPython 了解詳細信息。
代碼的各個部分執行以下操作:
- 在頂部,我們導入所需的machine、math和time MicroPython 模塊。
- 然後將蜂鳴器變量分配給引腳 GP15 作為 PWM 輸出。
- 一個電位器變量被分配給 Pico 的 GP26/A0 引腳上的模數轉換器 (ADC)。
- 我們定義了一個scale()函數,它使用數學函數將電位器移動的範圍轉換為蜂鳴器的輸出。
- while: True無限循環讀取電位器輸入,然後使用比例函數對其進行轉換。在檢查它與之前的頻率相比沒有太大變化之後,它會使用 PWM(脈衝寬度調製)將計算出的頻率發送到蜂鳴器。
總之,每秒發送數百個脈衝,隨著電位器順時針或逆時針旋轉,蜂鳴器音調將在 120Hz 和 5kHz 之間變化。旋轉電位計會改變 Pico 的模擬輸入引腳讀取的電壓,而該電壓又用於使用 PWM 調整蜂鳴器頻率。
從 Thonny 運行代碼(單擊播放圖標或按鍵盤上的F5)並親自嘗試一下。第一次運行後,任何代碼更改都會影響實際結果嗎?例如,如果更改範圍(0 到 65535)會怎樣?這部分代碼位於while True:定義頻率的正下方。
設定基調
如果您喜歡冒險,您可能想嘗試使用蜂鳴器通過 GitHub 上的 martinkooij 的pi-pico-tones庫生成音樂音調。默認情況下,這個庫會生成正弦波;四個音調發生器可以根據您的選擇在四個不同的 Pico 引腳上運行。請注意,此項目基於使用 Raspberry Pi Pico SDK 的 C++,而不是 MicroPython,但 GitHub 自述文件中提供了完整說明。
Pico 電子產品的熱門話題
恭喜:您已經學會瞭如何從電位器讀取模擬輸入並將其轉換為 PWM 信號以控制蜂鳴器音調。電位器是電子設備的多功能輸入設備。壓電蜂鳴器是另一個方便的組件:例如,通過添加 PIR 紅外運動傳感器,您可以檢測到入侵者的存在並發出警報。
發佈留言