单片机中的蜂鸣器

1. 三极管

三极管是一种控制电流的半导体器件,作用是把微弱信号放大成幅度值较大的电信号(射频方法),也用作无触点开关(用作开关)。放大的原理参考:三极管原理-导通条件_坚持努力,冲~的博客-CSDN博客_三极管导通条件

简单来说,三极管具有电流放大作用

三极管全称为半导体三极管,或双极型晶体管、晶体三极管,有两种封装方式:直插式和贴片式。

三极管的工作原理:三极管内部有两种电路排布,一种是PNP型,一种是NPN型,二者之间只是电流流向不同。

三极管有三个引脚,分别是BASE(基极)、EMITTER(发射极)、COLLECTOR(集电极)。三极管内部电路如下,左边是NPN型,右边是PNP型。

在电路图中区分基极、集电极、发射极的方法:横杠是基极,带箭头的是发射极,剩下的就是集电极。

PNP型:当B极(基极)电流大于1mA时,或基极电压小于发射极电压时,集电极与发射极之间导通,有电流通过。E到B有小电流时,E到C会有大电流通过,即导通。

NPN型:当基极电位高于发射极点为零点几伏时,发射结处于正偏状态,而集电极电位高于基极电位几伏时,集电结处于反偏状态,集电极电源要高于基极电源。B到E有小电流时,C到E有大电流,即导通。

对于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单片机蜂鸣器音乐代码

【单片机】【让蜂鸣器发声】认识蜂鸣器,让蜂鸣器发出你想要的声音相关推荐

  1. 【先楫HPM6750系列】PWM驱动蜂鸣器发声

    [先楫HPM6750系列]PWM驱动蜂鸣器发声 本篇将介绍如何使用HPM6750输出PWM信号,并使用PWM信号驱动蜂鸣器发声. PWM简介 PWM 的全称是 脉冲宽度调制 ( Pulse-width ...

  2. 51单片机蜂鸣器演奏《小苹果》C语言程序,51单片机C语言蜂鸣器发声生日快乐播放程序...

    <51单片机C语言蜂鸣器发声生日快乐播放程序>由会员分享,可在线阅读,更多相关<51单片机C语言蜂鸣器发声生日快乐播放程序(4页珍藏版)>请在人人文库网上搜索. 1.按键发音/ ...

  3. STM32单片机开发之让蜂鸣器发声

    本篇文章依旧是按照之前的stm32f10x系列单片机进行开发,但博主会教大家如何去看电路原理图以及如何去看开发手册,并且本系列文章不使用stm32提供的库函数,完全从0开始编写,这样能带大家更好的认识 ...

  4. 关于郭天祥51单片机教程视频课后题《同时用两个定时器控制蜂鸣器发声》

    题目为:同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800, 1k(hz)的方波. 给出的代码为: ...

  5. 单片机蜂鸣器发声,首先是让他一直响

    打开Keil 建好我们的工程,和程序文件,并把程序文件添加到工程里面. 这次我们要做一个蜂鸣器,首先先了解蜂鸣器 我们用到的是P3^6这个脚,所以我们在写程序的时候,首先定义的就是蜂鸣器的引脚 #in ...

  6. 51单片机驱动蜂鸣器发声教程(扫盲)

    51单片机 蜂鸣器 蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此 ...

  7. 8051单片机(STC89C52)之改变蜂鸣器发声频率

    由于定时器0的中断处理程序为50ms触发一次, 故改变tcount归零时的临界值即可改变蜂鸣器发声的频率. 当tcount = 40 进行电平翻转时, 发出的声音类似于公交车转向灯开启时的效果声音. ...

  8. uln2003驱动蜂鸣器_让蜂鸣器发声

    预备知识:蜂鸣器介绍 开发板原理图上面蜂鸣器的电路图是这样的,根据视频知道它是一个无源蜂鸣器. 可以看到蜂鸣器的一端和电阻相连,另一端和引脚BZ相连,注意这个BZ并不是元气名称,有图可知,元气名称都是 ...

  9. 【STC单片机学习】第十一课:蜂鸣器

    [朱老师课程总结 侵删] 第一部分.章节目录 1.11.1.蜂鸣器的原理​​                                            1.11.2.让蜂鸣器响起来 1.1 ...

最新文章

  1. arcgis xml 下载 切片_vue/cli3整合Cesium,加载离线arcgis 切片
  2. JHipster开发环境安装
  3. 基于WeUI的Angular2开发
  4. python一个类调用另一个类的方法_python 类静态方法实例化另一个类对象的问题?...
  5. SAP gateway CSRF token的获取调试办法
  6. 如何写单片机的寄存器,这篇文章带你入门。
  7. 云原生时代业务架构的变革:从单体迈向Serverless
  8. IList对象排序算法
  9. Android studio 升级指定dradle
  10. 编译异常例子java_Java中异常发生时代码执行流程
  11. Redis项目应用场景与实例汇总
  12. Java 9 : 从零开始实现模块化(一)
  13. android adb命令安装apk的步骤
  14. 计算机操作系统之CPU架构和原理(二)
  15. 2022年要知悉的9大互联网前沿科技
  16. 自学java后都是怎么找的工作?
  17. Google guava之SortedMultiset简介说明
  18. python3 全局热键_python3注册全局热键的实现
  19. 干货!5招搞定问卷调查差异化分析
  20. 协众技术教你玩转电商海报设计

热门文章

  1. Origin 2018部分使用说明
  2. $(function() {})是什么?
  3. 迅雷5.5.4.268去广告版
  4. java web开发(学习路线)
  5. 阿里巴巴Java开发手册1.3.0(终极版)
  6. 四个热点事件营销技巧
  7. 架构图到底怎么画?老彭带你走一波!
  8. SonarQube-代码质量检测工具
  9. android++日历示例,Android控件之CalendarView 日历对话框(示例代码)
  10. 【Unity】Rigibody——刚体加力、刚体加扭矩力、刚体加力的几种模式