目录
前言
学习基于51单片机无源蜂鸣器的使用,学习使用震动脉冲不同的频率以及配合乐律的学习来进行简单音乐的实现。
一、蜂鸣器
蜂鸣器分为两大类:无源蜂鸣器、有源蜂鸣器。将电信号转换为声音信号器件。
无源蜂鸣器:内部不带震荡源,需要控制器提供震荡脉冲才可发声,调整提供震荡脉冲频率,可发出不同声音。
有源蜂鸣器:内部自带震荡源,将正负极接上直流电压就可以持续发声,频率固定。
1、无源蜂鸣器原理图
图1.1
2、集成电路驱动(五线四项步进电机)
图1.2
ULN2003D一般用于步进电机的驱动,使用于风蜂鸣器有点大材小用,可以直接使用三极管驱动。(五线四项步进电机内部逻辑是取反)
3、三极管驱动
4、应用电路
图1.3
4、控制原理
由图1.1可知,蜂鸣器响起来需要BEEP口低电平,所以电路图中可以看到IO口给1取反后才能使BEEP端为低电平0。这样蜂鸣器就能简单的响起来。
以图1.2为例,控制P15输出1或0就能控制蜂鸣器是否有电流,又因为是无源蜂鸣器,所以需要控制P15来形成不同的频率来使它发出不同的声音。(无源蜂鸣器靠震荡转换为声音,不能一直通电)
二、乐律部分
1.键盘与音符的对照
图中分为四组:
C D E F G A B :大字组 1234567(下两点)
c d e f g a b :小字组 1234567 (下一点)
c1 d1 e1 f1 g1 b1 :小字1组 1234567 (无点)
c2 d2 e2 f2 g2 b2 :小字2组 1234567 (上一点)
其他组以此类推
每组一一对应的字母相差8°,每组相邻的两字母相差1°(全音)而中间的黑键与字母相差1/2°(半音)
黑键:升半音:# 降半符号:b 例:#f == bg
2.音符与频率对照表
对应键盘与音符的三组
基准频率为低音6对应音名a,440赫兹。小字1组a是他的两倍,880赫兹。大字组A为220赫兹。
因为a的频率是A的两倍,中间隔了12个音,所以由此得
#A的频率=A * 2 ^(1 /12);
#G的频率=A / 2 ^(1 /12);
单片机中使用定时器来控制频率:
周期 = 1 / 频率;
总结
根据震动周期来控制发音长短,最终实现蜂鸣器的编曲。
未完持续更新...