0020 如何编写程序控制树莓派电脑发出蜂鸣声音
这节课,来讲一个新的硬件,蜂鸣器。
上节课作业
1.将休眠时间修改为10秒
将time.sleep(3)修改为time.sleep(10)
2.增加8根线和4个led灯,5个led灯依次亮3秒,循环10次结束
首先选择8个GPIO口,其中4个是控制口,另外4个是GND
选择led灯2的正极接12号口,负极接25号口
选择led灯3的正极接13号口,负极接30号口
选择led灯4的正极接15号口,负极接34号口
选择led灯5的正极接16号口,负极接39号口
接好之后的连线情况如下:

然后将前面的led.py另存为led5.py
修改代码如下:

这样是让5个led同时亮3秒钟然后同时熄灭,这样可以检测灯和线路都没有问题。
运行结果如下:

如果看到图片里面5个灯颜色不一样很正常,因为我用的led灯是不同颜色的。
然后修改代码如下,让5个灯依次亮3秒熄灭,循环10次:

运行结果如下,看到5个led灯按照次序亮3秒熄灭:

大家可以发挥一下,看看最多可以增加到多少个led灯。注意GND是可以共用的。
如果增加到很多个,就可以利用led组成点阵,显示字母或者数字了,还可以组成各种图案,比如花朵五角星等等。
有兴趣的同学可以尝试看看如何利用led组成点阵显示字母或者数字。
蜂鸣器
蜂鸣器分两种:
一、无源蜂鸣器:
1 无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它
2 声音频率可控,可以做出“多来米发索拉西”的效果。
3 在一些特例中,可以和LED复用一个控制口
二、有源蜂鸣器:
1 有源蜂鸣器内部带震荡源,所以只要一通电就会叫
2 程序控制方便,单片机一个高低电平就可以让其发出声音,而无源蜂鸣器却做不到。
我们采用的是有源蜂鸣器:
电压:3.5—5.5V
电流:<25mA 频率:2300±500
这样控制起来比较方便。下面就是我们用的蜂鸣器:

蜂鸣器只有2个引脚,长脚是正极接GPIO控制口,短脚是负极接GND。
因此电路连接就和led灯是一样的。
我们将蜂鸣器长脚正极接7号口,短脚负极接9号口。
将树莓派关机后,连接线路如下:

注意将蜂鸣器上面的一层粘纸撕掉。
持续鸣叫
编写程序beep.py如下:

运行程序后,可以听到,蜂鸣器持续3秒钟在响。
可以修改休眠的时间,可以让蜂鸣器持续响的时间不一样。
有节奏鸣叫
我们可以修改程序,让蜂鸣器有节奏的鸣叫,这样听起来更舒服悦耳。
修改beep.py为beep2.py,程序如下:

运行程序后,可以听到蜂鸣器非常有节奏的鸣叫。
大家可以修改程序中的调用函数beepAction的参数,改为0.02或者0.2等等,让蜂鸣器的鸣叫声音不一样。
课后作业
1.网上搜索温湿度传感器DHT11的相关信息,以及引脚说明。
往期教程
因为教程是系列教程,前后关联性非常强,请大家按照微信公众号【零基础学编程】的历史消息发布时间先后次序进行阅读。