人类的耳朵可以听到20Hz到20KHz频率的声音,不同频率的声音,我们听起来的感觉是不一样的。当然人类对2KHz~4KHz频率的声音感觉是最敏感的,只要控制好音调和频率的变化就可以形成美妙的音乐。
单片机可以控制蜂鸣器发声音
蜂鸣器是非常常见的发音元器,音乐卡、报警装置、电子琴、各种小家电等都会用到。单片机的PWM功能可以设置输出不同频率的信号,所以我们可以利用单片机的PWM控制三极管的通断来推动蜂鸣器发声。
当然,如果单纯控制方波信号的通断,只可以得到单调的“嘀”、“嘀”声。想要得到美妙的音乐,我们还需要控制音调、频率的变化,还有声音的强弱。把蜂鸣器的驱动电路改进一下,用三个三极管和两个单片机的IO来控制蜂鸣器。
- BZ PWM用于控制蜂鸣器的供电时间
- 当BZ CONTROL为低电平时,三极管Q2、Q3是截止的,蜂鸣器没有供电,不会发声。
- 当BZ CONTROL为高电平时,三极管Q2、Q3是导通的,蜂鸣器是否发声由BZ PWM决定。
- 电路中的电容C10很关键,因为电容C10有储能的效果,BZ CONTROL转为低电平后,蜂鸣器的供电还可以由电容C10提供,电容电量减少,音量就会逐渐减小,形成蜂鸣声渐隐的和弦音效果。
- 如果想实现变调的效果,就可以通过短时间内切换发出几种不同频率的蜂鸣声来实现。
单片机控制蜂鸣器演奏音阶实例
以2.7KHz频率的蜂鸣器为例,首先我们先定义T1、T2、Fy三个参数
- T1:驱动频率给定持续时间,单位为毫秒(ms),BZ PWM引脚控制
- T2:蜂鸣器供电持续时间,单位为毫秒(ms),BZ CONTROL引脚控制
- Fy:单片机输出PWM频率,单位为KHz,BZ PWM引脚控制
两声错误提示和弦音:二升调,按音调分2个阶段
- Fy=2.5,T2=100,T1=100
- Fy=2.7,T2=100,T1=100
因为前100ms频率为2.5KHz,后100ms频率为2.7KHz,所以听起来会有升调的效果。
关机和弦音:三降调,按音调分3个阶段
- Fy=2.9,T2=100,T1=100
- Fy=2.7,T2=100,T1=100
- Fy=2.5,T2=100,T1=1000
因为三声频率从2.9KHz升到2.7KHz再到2.5KHz,频率连续降低,最后一声的Tf时间较长,还有音量渐隐的效果。
另外音乐是由Do,Re,Mi,Fa,So,La,Xi,Do几个音调组成的,电子琴上的按键对应着不同的音频频率,只要通过单片机的程序控制发声的频率和时间就演奏了哦!
欢迎关注@电子产品设计方案,一起享受分享与学习的乐趣!关注我,成为朋友,一起交流一起学习
- 记得点赞和评论哦!非常感谢!