蜂鸣器控制实现 | ||||
蜂鸣器有两种:有源蜂鸣器和无源蜂鸣器。(上淘宝分别搜一搜吧) 可见,如果只是用于提醒/告警,则使用有源蜂鸣器更方便。 但是如果想控制发出的声音的频率,则应使用无源蜂鸣器。 注:用周期信号驱动有源蜂鸣器也可以改变声音的效果,当驱动的周期信号的频率小于1kHz时,等同于ASM调制信号,感兴趣的可以从数学上分析一下,并动手试一下。 另:无源蜂鸣器比有源蜂鸣器便宜,但如果需要用三极管电路来驱动的话,则价格差不太多。 另2:压电式蜂鸣器和电磁式蜂鸣器有什么区别,我不清楚,有兴趣的读者可以尝试测试一下他们的频率响应、音效音质等是否有不同。 Step 1: 任务:设计一个控件函数来控制有源蜂鸣器的状态。 要求: 1、函数定义为:int8 modSetBuzzerState(uint8 vBuzzerState); 2、设计单独的头文件和.c实现文件(modBuzzer.h、modBuzzer.c); 3、编写使用该函数的主函数,用按键控制蜂鸣器的响/停; 4、假设I/O引脚使用P1_3; 提示:只是对基本I/O电平的控制,可参考modSetLedState()的实现。C语言初学者可参考“怎样编写一个新的头文件”。 Step 2: 使用上面编写的函数,周期性的使蜂鸣器响t毫秒、停t毫秒。 百度搜索不同音阶对应的频率,尝试更改t的值,看是否能听出不同的音调效果?
拓展2:分析m程序代码,分析横坐标一个单位对应多少Hz; 拓展3:在蜂鸣器前加滤波器,或者在m程序中加数字滤波器,是否能够得到干净的单频信号频谱显示? 拓展4:测试获得蜂鸣器的低频、高频截止频率;
Step 3: 学习cc2530的定时器功能,通过定时器输出比较通道的输出引脚驱动蜂鸣器发声。
|
||||
主索引
|
||||
附件 audio_fft.zip |
||||
参考链接 |
用户403664 2014-11-21 11:30
用户138786 2014-11-20 11:21
用户403664 2014-11-17 11:12
用户138786 2014-11-12 12:57
飞言走笔 2014-11-11 09:23
用户403664 2014-11-10 09:34