6046| 1
|
[教程] 第6课 声控灯 |
本帖最后由 dafeng388 于 2019-11-9 20:22 编辑 第6课 声控灯 星火课程团队 欢迎来到树莓派课堂。这节课的案例是声控灯。 生活中声控灯应用范围非常广泛。它给我们的日常生活带来了不少的便利,既节约了电能,又很好地满足了我们的需要。那么它是怎么工作的呢?让我们一起走进声控灯。 知识点:1、声控灯的工作原理 2、光敏传感器 3、 声音传感器 4、数模转换器 当夜幕降临,我们走在昏暗的走廊上,这时,我们拍手或咳嗽,走廊上方的灯就会亮起来。而白天即使我们高歌一曲,走廊上方的灯也没反应。我们来梳理下声控灯的工作原理: 当光线强度达到一定值时,这时环境声音达到一定的值时,LED灯亮起;如果光线强度到不一定的值,即使环境声音再大,led灯也不会亮的。 我们先来认识下光敏传感器 光敏二极管模块对环境光强敏感,一般用来检测周围环境的亮度和光强,光敏二极管模块方向性较好,可以感知固定方向的光源,信号从输出针脚输出。 正极接3.3V-5V 灵敏度调节电位器用来调节光敏传感器的灵敏程度的。 我们再来认识下声音传感器。 声音传感器与光敏传感器结构上很相似。 声音传感器的作用相当于一个话筒(麦克风),它用来接收声波。该传感器内置一个对声音敏感的电容式驻极体话筒。声波使话筒内的驻极体薄膜振动,导致电容的变化,而产生与之对应变化的微小电压,信号通过输出信号针脚输出。 电位器:可以调节灵敏度。 其他的一带而过就可以。 现在我们将声音传感器插在第24号上,将光敏传感器插在第25号上,如下图所示 现在我们来测试下声音传感器,没有声音时,输出0,有声音无论声音大小都输出1。 我们再来测试下光敏传感器,没有光线时输出0,有光线无论光线的强度都输出1。绝对的黑暗很难做到。 如果我们现在用测试的结果来编写声控灯,会发现无论发出怎样大的声音,灯也不会亮的。 这是为什么呢?条件中,光线=0,意味着声控灯要处于绝对黑暗中,这在实际生活中是太现实的。 在实际生活中,声控灯在光线昏暗的时候,声音值达到一定数值,就会亮灯。而不是绝对黑暗。 那我们没有办法创作声控灯了吗? 现实生活中的声控灯的光敏传感器的值和声音的值达到某个数值时,灯才会亮的。现在的这两个传感器只能输出0和1,怎样能拓展输出数值的范围呢?这需要用到另一个模块——数模转换器。 数模转换器连接在扩展板的右侧,它有10个针脚,将针脚插在这里。 为什么要使用数模转换器? 因为我们连接到扩展板上的传感器都默认是数字传感器,数字传感器输出的只有两个值:0和1。数模转换器的作用是将数字传感器转换为模拟传感器。模拟传感器能输出一个区间范围的数值,输出的数值远远多于2个。 因为安装了数模转换器,声音传感器需要重新连接,正极和负极与原来连接不变,信号输出针脚,需要连接到A0号上, 我们用杜邦线来链接。 连接完硬件,我们来测试下声音传感器的取值范围。因为传感器已经有数字传感器转变为模拟传感器,所以我们要使用模拟积木来测试。 编好程序后,运行程序,轻轻吹传感器。你会发现数值不断变化。 通过不断测试发现,声音传感器获取环境的值范围是1300+——32767(2的15次幂)。声音越大数值越大。 我们再来测试下光敏传感器的取值范围,此时光敏传感器的接口为A1。 通过不断测试,我们发现,光敏传感器的取值范围,500——30000多,实际取值范围是0——32767,我们很难做到两个绝对黑暗和绝对亮度,所以数值并没有显示0 和32767。我也不知道怎么表述好。随着光线增强数值变小。 我们设定光线值大于25000,环境的声音值大于20000时,点亮5号灯,否则5号灯熄灭。下面我们来编写程序。 建立变量,命名为“声音值”和“光线值”,将获取模拟信号的积木赋值给变量。并更改接口,如图 再找到如果——否则命令,当光线值大于25000,并且声音值大于20000时,就点亮5号LED灯,否则就熄灭5号LED灯。每隔0.1秒检测一次,再加上循环。好了程序编写完了,我们来试试效果。 编写完成程序,我们来测试下吧。这节课就到这里,下期见! 声控灯硬件连接图 课程由星火课程团队制作,版权归杭州古德微机器人有限公司所有。 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed