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