在讲解蜂鸣器之前我们还需拿LED硬件连接做另一个知识讲解,假如我们的LED这样接
此时即使单片机IO端口输出高电平5V,灯的亮度是很低的,因为单片机IO端口流出来的电流太少,无法驱动LED正常发光,大家不要停留在中学的物理常识中认为电压电阻都一样电流就一样了,这个是关联到单片机内部的集成电路原因的,这里请大家今后积累一些关于驱动负载的一些知识,也可参考《手把手教你学51单片机》文档3.3.3节和9.2节。
但是如果这样接
这时单片机IO端口输出低电平时灯却很亮,原因这是电源供给的5V,电流比较大,所以可以使LED发光较亮。拿我们所熟悉的充电宝来说,虽然它的接口输出电压也是5V,但是它流出的电流大,所以给手机充电就快,反而用电脑USB口充电(USB口电压为5V)就会很慢,原因是USB口电流太小。
那我们先这样总结:单片机IO端口电流的流向为“外流”时电流很低,但是用电源5V作为电流流入单片机IO端口时电流可以很大,但不能大到烧坏单片机的IO口。我们初学单片机只能先记住这些知识先,后面积累的知识多了再回过头来学就能理解了。
蜂鸣器分 有源蜂鸣器和无源蜂鸣器,两者表面长相相同,有源蜂鸣器有正负极之分,正极接5V,负极接地就可以响。
与单片机IO端口简单接法如下
R1起到限流保护作用,单片机IO端口输出低电平时有源蜂鸣器就响,反之不响。如果用三极管控制驱动有源蜂鸣器,常见接法如下,单片机IO端口输出低电平就响
图一
本教程的开发板所用的是无源蜂鸣器,开发板中无源蜂鸣器硬件连接除了一个续流二极管外就如图一所示了,无源蜂鸣器实物可以不分正负极接,但它也标有“+”符号,也许是为了在我们不知道这是有源蜂鸣器还是无源蜂鸣器的情况上统一规定接法吧。
要让无源蜂鸣器发声,需要我们在单片机IO端口上输出500Hz~4.5kHz的脉冲频率信号。
用时间表示就是要输出周期为0.22ms~2ms((1/4500s)~(1/500s))范围的方波,这个周期内高电平时间和低电平时间各占一半。
对频率,信号,脉冲,方波这些概念比较模糊的初学者我们下一讲用图来举一个比较直观的例子。
本文固定URL:https://www.dotcpp.com/course/187
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程