首页资讯科技 声光双控灯泡

声光双控灯泡

晓东楼道中的声光双控灯是一种很常见的利用声音和光线信号来控制照明的电子装置,其应用场景是在光线昏暗时对一定强度的响声做出亮灯“回应”,持续十几秒钟后再关闭灯光照明,也就是必须要同时满足光线较暗和响声达到一定程度这两个条件才会“开灯”,否则一…

声光双控灯泡

晓东

楼道声光双控灯是一种非常常见的利用声、光信号控制照明的电子设备。它的应用场景是在光线较暗的情况下,对一定强度的噪音做出“反应”,十几秒后再关闭照明,即必须同时满足光线较暗和一定程度的噪音这两个条件,才能开灯,否则将保持“非工作”状态。在Arduino中,我们可以使用声音传感器和光线传感器分别检测周围环境的声音和光线强度,然后通过Arduino IDE代码编程、Python代码编程、Mind+图形化编程三种方式实现“声光双控灯”的功能。1.实验设备和电路连接

设备:Arduino UNO主板一块,声音传感器一块,光线传感器一块,红色LED灯一块,面包板一块,各种颜色的杜邦线若干。

首先,将LED灯的长腿插入13号插脚,短腿插入GND接地插脚;然后将Arduino的5V和GND连接到面包板的边缘槽(红色和蓝色标记),再将声音传感器和光传感器的VCC阳极和GND接地通过杜邦线连接到面包板。然后将声音传感器的OUT信号输出端连接到Arduino的2号数字引脚,光传感器的AO模拟信号输出端连接到Arduino的A2模拟引脚;最后,通过数据线将Arduino与电脑的USB接口连接起来(如图1)。2.Arduino IDE代码编程实现“声光双控灯”

首先,在Arduino IDE中,使用“int led = 13”和“int SoundSensorPin = 2;”两个语句,分别声明LED灯和声音传感器的连接引脚;然后,在setup()函数中,传递“pinMode(led,OUTPUT);”和“pinMode(SoundSensorPin,INPUT);”两个语句,设置引脚13为输出模式,引脚2为输入模式。

在loop()函数中,首先传递“int LightSensorValue”

= analog read(A2);”语句,建立了变量LightSensorValue,其值是通过A2模拟引脚读取光传感器的传输数据;然后“int soundsensorvalue = digital read(soundsensorpin);”语句,变量SoundSensorValue建立,其值是通过2号数字引脚读取声音传感器传输的数据。

经过实验测试,发现在正常室内光线下测得的光线数据为220左右,用手遮挡光线传感器(模拟弱光条件)时为930左右,用手电筒照射光线传感器时为20左右。这说明光线越强,数据值越小,光线越弱,数据值越大。通过调节声音传感器上的电位器,可以使其处于检测环境周围合适的声强范围内。没有声音时,检测值为1(对应高电平),有声音时,检测值为0(对应低电平)。因此,在“if…else…”选择结构中,判断条件被构造为“SoundSensorVal”

Ue = = low且光传感器值> = 500”,也就是说判断声音传感器的检测值是0还是大于500。当这两个条件同时满足时,要控制LED灯发光:“digitalWrite(led,高);”,并让其持续发光3秒:“延时(3000);" .如果条件不满足,则LED处于关闭状态,“digitalWrite(led,LOW);“是在else分支中传递的。语句(如图2所示)。

将程序编译上传到Arduino,对声光双控灯进行测试:室内灯光处于正常照明状态时,无论音箱里的音乐多强,LED灯都不会亮;如果你将手放在光传感器上,此时播放音乐,LED灯就会亮(如图3)。同样,当光传感器被覆盖时,周围环境保持相对安静的状态,LED灯也不会发光。3.Python代码编程实现“声光双控灯”

在pinpong库模块的帮助下,Arduino在PythonIDLE编程环境下进行编码。首先通过“import time”和“from pinpong.board import Board,pin”语句导入时间和Pinpong库模块;“董事会(“uno”)。begin()"语句用于初始化Arduino UNO板卡类型(包括自动识别连接到主板的端口号);然后分别建立led、声音传感器、光传感器三个变量,分别对应LED灯、声音传感器、光传感器的申报设置。语句" led = Pin(Pin。D13,引脚。OUT)”是将13号引脚连接的LED灯设置为信号输出端。语句“SoundSensor = Pin(Pin。D2,平。在)"用于设置声音传感器连接到2号数字引脚作为信号输入,以及语句" LightSensor = Pin(Pin。A2,Pin。阿纳洛

g)"用于设置连接到A2模拟引脚的光传感器作为模拟信号端子。

在“while True:”的循环结构中,首先建立声音传感器值和光线传感器

两个变量值分别用于存储声音传感器和光传感器的读数数据。注意,一个是数字信号,一个是模拟信号:“sound _ sensor _ value = sound sensor . read _ digit”

al()" 、" light sensor . read _ analog()";然后,建立一个“if…else…”选择结构,判断条件为“Sound_Sens”

Or _ value = = 0且light _ sensor _ value > = 500”,即同时判断声音传感器监测到的数据值是否为0(对应低电平“声音”状态)和光传感器监测到的数据值是否大于等于500。如果为真,led灯亮,持续3秒:“led.write_digital(1)否则,通过语句“led.write_digital(0)”向LED的连接引脚写入低电平,即“熄灯”(如图4)。

保存程序,按功能键F5运行程序,测试“声光双控灯”。效果和用Arduino IDE代码编程是一样的。4.思维+图形化编程实现“声光双控灯”

运行Mind+进入图形化编程界面,根据刚才的代码编程结构组合“积木”语句。最重要的是在“if … otherwise …”选择分支中构造判断条件,还要判断2号数字引脚连接的声音传感器的监测数据是否为0,A2模拟引脚连接的光传感器的监测数据是否大于等于500。如果成立,控制LED灯发光5秒;否则,LED灯将被控制。

点击“上传到设备”项,出现“上传成功”提示后,再次测试Arduino的“声光双控灯”,效果依然与代码编程一致。

本文来自网络,不代表管理窝立场。转载请注明出处: https://www.guanliwo.com/a/zx/63710.html
上一篇曹冲称象的动画故事视频
下一篇 虚拟世界的物理学:刚体效果教程
管理窝

作者: 管理窝

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部