单片机可以控制蜂鸣器发声音
蜂鸣器是非常常见的发音元器,音乐卡、报警装置、电子琴、各种小家电等都会用到。单片机的PWM功能可以设置输出不同频率的信号,所以我们可以利用单片机的PWM控制三极管的通断来推动蜂鸣器发声。
当然,如果单纯控制方波信号的通断,只可以得到单调的“嘀”、“嘀”声。想要得到美妙的音乐,我们还需要控制音调、频率的变化,还有声音的强弱。把蜂鸣器的驱动电路改进一下,用三个三极管和两个单片机的IO来控制蜂鸣器。
BZ_PWM:用于控制蜂鸣器的发音频率
BZ_CONTROL:用于控制蜂鸣器的供电时间
当BZ_CONTROL为低电平时,三极管Q2、Q3是截止的,蜂鸣器没有供电,不会发声。
当BZ_CONTROL为高电平时,三极管Q2、Q3是导通的,蜂鸣器是否发声由BZ_PWM决定。
电路中的电容C10很关键,因为电容C10有储能的效果,BZ_CONTROL转为低电平后,蜂鸣器的供电还可以由电容C10提供,电容电量减少,音量就会逐渐减小,形成蜂鸣声渐隐的和弦音效果。
如果想实现变调的效果,就可以通过短时间内切换发出几种不同频率的蜂鸣声来实现。
单片机控制蜂鸣器演奏音阶实例
以4KHz频率的蜂鸣器为例,首先我们先定义Tf、Tv、F三个参数
Tf:驱动频率给定持续时间,单位为毫秒(ms)&#