单片机中的蜂鸣器
1. 三极管
三极管是一种控制电流的半导体器件,作用是把微弱信号放大成幅度值较大的电信号(射频方法),也用作无触点开关(用作开关)。
简单来说,三极管具有电流放大作用。
三极管全称为半导体三极管,或双极型晶体管、晶体三极管,有两种封装方式:直插式和贴片式。
三极管的工作原理:三极管内部有两种电路排布,一种是PNP型,一种是NPN型,二者之间只是电流流向不同。
三极管有三个引脚,分别是BASE(基极)、EMITTER(发射极)、COLLECTOR(集电极)。三极管内部电路如下,左边是NPN型,右边是PNP型。
PNP型:当B极(基极)电流大于1mA时,或基极电压小于发射极电压时,集电极与发射极之间导通,有电流通过。
NPN型:当基极电位高于发射极点为零点几伏时,发射结处于正偏状态,而集电极电位高于基极电位几伏时,集电结处于反偏状态,集电极电源要高于基极电源。
对于NPN管,它是由2块N型半导体中间夹着一块P型半导体所组成,发射区与基区之间形成的PN结称为发射结,而集电区与基区形成的PN结称为集电结,
2. 认识蜂鸣器
单片机上的蜂鸣器实物如下,左边有绿色电路板的是有源蜂鸣器,右边用黑胶封起来的是无源蜂鸣器。
根据是否含有振荡电路,可以把蜂鸣器分为有源蜂鸣器和无源蜂鸣器。
有源蜂鸣器由高低电平直接控制发声,而无源蜂鸣器需要一定频率的脉冲触发发声。
电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳组成。工作原理是:接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场,振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。该种蜂鸣器有振荡电路,属于有源蜂鸣器。
压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳灯组成。工作原理是:多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5V~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHz的音频信号,阻抗匹配器推动压电蜂鸣片发声。该种蜂鸣器属于无源蜂鸣器。
蜂鸣器需要通过放大电路放大驱动电流才能工作。
对于无源蜂鸣器来说,
改变单片机引脚输出波形的频率,可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音;
该百年输出电平的高低电平占空比,可以控制蜂鸣器的声音大小。
3. ULN2003芯片简单介绍
前面说到蜂鸣器要发出声音需要通过放大电路,在【普中51-单核-A2板子】上,使用ULN2003芯片起到放大电流的作用。
ULN2003是耐高压、大电流达林顿陈列,由七个硅NON达林顿管组成。
ULN2003是大电流驱动阵列,多用于单片机、智能仪表、PLC、数字量输出卡灯控制电路中,可直接驱动蜂鸣器、继电器等负载。
4. 蜂鸣器相关电路
蜂鸣器通过放大电路连接到P1^5,通过控制P1^5端口的高低电平形成脉冲,触发蜂鸣器发声。
- sbit beep = P1^5;
- void ring_buzzer()
- {
- beep = 0;
- while(1)
- {
- beep = ~beep;
- delay_ms(100);
- }
- }
与流水灯综合应用,制作流水灯,灯亮蜂鸣器发出响声
- /************************************************************
- P1口接8个LED,共阳极,P37接蜂鸣器
- 制作流水灯,灯亮蜂鸣器发出响声
- ************************************************************/
- #define LEDP1 P1
- sbit beep = P3^7;
- void led_p1_beep_p37()
- {
- u8 i=0;
- u16 delay_times = 10000; // 200ms
- // 初始状态
- P1 = ~0x01;
- delay_ms(delay_times);
- while(1)
- {
- for(i=0;i<7;i++)
- {
- P1 = _crol_(P1,1); // 左移一位
- beep = ~beep;
- delay_ms(delay_times);
- }
- for(i=0;i<7;i++)
- {
- P1 = _cror_(P1,1); // 左移一位
- beep = ~beep;
- delay_ms(delay_times);
- }
- }
- }
Proteus仿真显示结果:
5. 利用蜂鸣器制作音乐
参考:STC89C52单片机蜂鸣器介绍以及《孤勇者》歌曲代码示例_牛油果爱吃小猪的博客-CSDN博客_51单片机蜂鸣器音乐代码