[评测分享]
【更适合初学者的开发板ELF 1】14-PWM测试及音乐演奏
#板卡评测
2498 人阅读
|
2 人回复
|
2023-12-09
TA的每日心情 | 慵懒 2025-8-6 21:07 |
|---|
签到天数: 313 天 连续签到: 1 天 [LV.8]以坛为家I
状元
- 积分
- 5300
|
本帖最后由 stm1024 于 2023-12-9 22:10 编辑
0. 前言
脉冲宽度调制(PWM)是一种模拟控制方式,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中,因此也是很多嵌入式开发者入门阶段的必修课,从最简单的8051到各种高级的MCU/MPU,都可以实现PWM功能,只是有的是通过定时器翻转GPIO模拟,有的是具有专门的PWM功能模块(例如NXP就有SCT之类的),通过应用PWM实现诸如亮度调节,呼吸灯,波形模拟之类的功能,应该是很多开发者都折腾过的过程,还有一个应用的比较多的就是搞一些智能小车通过PWM控制电机调速等,可以说是一个十分实用而又好用的功能
1. 硬件资源机软件环境
ELF-1开发板板载蜂鸣器为无源蜂鸣器, 由 PWM 进行控制,电路原理见下图:
硬件上使用的是PWM2,不过快速启动手册3.1.14中,软件使用的是PWM0,这个有点儿小迷糊哎:
按照手册的测试,蜂鸣器发声,更改频率可以调整声调,更改占空比可以调整音调大小,可以说是十分简单。
当然,如果写到这里就结束了,可以认为本帖完全是一篇水贴(我没有针对谁 )。
试用嘛,就要多折腾,整点活儿出来,做点不一样的东西。
2. 规划及程序编写
当我还是菜鸡的时候(现在也是),我比较喜欢使用有源蜂鸣器,这样通个高或者低电平就可以响,现在嘛,更喜欢无源蜂鸣器,因为可以修改它的频率,实现不同的声调了。手册的实例明显提供了修改周期(也就是频率的倒数),因此,实现不同声调是完全可行的,所以我打算用蜂鸣器来播放点儿音乐,就像小时候那种音乐贺卡一样。
说干就干,先准备点而音乐之声。
先瞄准最简单的乐谱,那就《两字老虎》了,我可以在钢琴上演奏它,也代表了我的音乐巅峰水平【低调】。
此外就是找资料,看看声调是啥情况:
看样子是十二音律还是啥,高音阶、中音阶和低音阶是两倍的关系。有了这些以后,就可以整活了。代码如下:
其中tones就是咱们得曲子,而KEY就是音调。
3. 测试及效果
编译、下载,改权限就不用赘述了,需要使用命令:
- chmod a+x ttg
- echo 0 > /sys/class/pwm/pwmchip1/export
- ./ttg
复制代码 然后就可以听到演奏的效果了,并在终端中显示出来:
听起来前面还不错,感觉后面不太准确。
如果再夹一张纸,就可以做成电子贺卡了。
OK,今天测试就到这里。
最后附赠编译好的,可以直接在ELF-1开发板上运行的程序:
童鞋们可以听一下第二首是演奏的是啥。
|
|
|
|
|
|
|
|
|
|
|
沙发
eefocus_3884098
发表于 2023-12-19 16:44:17
|
只看该作者
|
|
|
|
|
|
|
|
|
|
板凳
eefocus_3884098
发表于 2023-12-19 16:44:57
|
只看该作者
|
|
|
|
|
|
|
|