iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 23
1
IoT

熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~系列 第 23

[Day 23]-【STM32系列】BI BI BUZZER!BI BI !

開機:
逼 ── 逼!逼!

相信大家都很熟悉開機時逼的一聲
特別是電腦開不了機時特別的長短聲
但你可曾知道他就是頂頂大名的蜂鳴器(Buzzer)

https://ithelp.ithome.com.tw/upload/images/20201008/201200936me0djcDo7.jpg

千萬不要以為他只會逼逼
其實他還可以產生不同的音調
音樂盒就是這樣來的

蜂鳴器模組有三隻針腳:
VCC -> 3 ~ 5v
GND -> 接地
I/O -> 輸入相應的頻率產生不同的音調

Setup

連接蜂鳴器,我們要用STM32L053R8 TIMER2 PWM 來輸出方波,並調整占空比觀察聲音的變化
https://ithelp.ithome.com.tw/upload/images/20201008/20120093Ed9ozQjMBy.png

頻率直接給他最大下去了啦
https://ithelp.ithome.com.tw/upload/images/20201007/201200931qubcgMsTJ.png

如上圖,TIM2使用APB2外設32MHz
一樣我們希望占空比在 0~255 之間
所以預分頻器 = (32MHz / (255* 255)) = 492
ARR -> 255

https://ithelp.ithome.com.tw/upload/images/20201008/20120093TSVqHJv0sC.png

記得開啟中斷
https://ithelp.ithome.com.tw/upload/images/20201007/20120093lNvVUqdaX0.png

程式碼部分

uint8_t value = 0; // the value for the duty cycle 
while (value<255) 
{
  htim2.Instance->CCR1 = value; // vary the duty cycle 
  value += 20; // increase the duty cycle by 20 
  HAL_Delay (500); // wait for 500 ms 
} 
value = 0; // reset the value

現在你可以看到佔空比每500毫秒增加一次,那觀察到蜂鳴器聲音的變化,讚喔!


相關連結


結語

...


上一篇
[Day 22]-【STM32系列】RGB LED 之⭐七彩霓虹燈?閃起來啊!!✨✨
下一篇
[Day 24]-【STM32系列】多級串聯點矩陣 x MAX7219
系列文
熟悉Arduino的Maker必看!30天帶你快速入門基於STM32嵌入式開發~30

尚未有邦友留言

立即登入留言