多途径实现Arduino“声光双控灯”
山东省Zhaoyuan 1号Zhaoyuan的文字/MU Xiaodong
走廊中的双控制声和光控制灯是一种非常常见的电子设备,它使用声音和光信号来控制照明。它的应用方案是在光线昏暗时“响应”一定的声音强度,并且可以持续十几次。在几秒钟后关闭灯光,也就是说,您必须满足昏暗的光线和声音达到一定水平的条件,然后才能“打开灯光”,否则您将始终处于“不工作”状态。在Arduino中,我们可以使用声音传感器和光传感器来检测环境周围的声音和光强度,然后使用三种方法:Arduino IDE代码编程,Python Code编程和思维+图形编程以实现“声音和光双控制”照明功能。
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中,LED灯和声音传感器的连接引脚分别通过两个语句“ Int LED = 13”声明;和“ int soundensorpin = 2;”;然后,在setup()函数中kaiyun全站登录网页入口,传递“ pinmode(LED,输出);”;和“ Pinmode(Soundensorpin,Input);”将引脚13设置为输出模式,并将引脚2设置为输入模式。
在Loop()函数中,首先使用“ Int lightSorvalue = allageRead(a2);”;陈述创建变量LightsOrvalue,其值是读取光传感器通过A2模拟引脚传输的数据;然后使用“ int soundensorvalue = digitalread(soundensorpin);”语句建立了变量Soundensorvalue,其值是通过2个数字引脚读取声音传感器的传输数据。
经过实验测试,发现正常室内灯光期间测得的光数据约为220。用手覆盖灯传感器时测量的光数据(模拟弱光条件)约为930。带有手电筒的光传感器所获得的光数据约为20,这意味着光线越强开元棋官方正版下载,数据值越小,光较弱,数据值越大。通过调整声音传感器上的电位计以使其在检测环境周围相对合适的声音强度范围内,发现“无声”时的检测值为1(对应于高级高水平),而检测则在“ NO”时检测声音”是值为0(对应于低水平)。因此,在“如果……否则……”选择结构中,判断条件被构造为“ soundensorvalue == low and lightSorvalue> = 500”,即声音传感器的检测值是否为0,以及是否的检测值是灯传感器高于500。当同时满足这两个条件时,应控制LED灯以发出光:“ DigitalWrite(LED,高);秒:“延迟(3000);”。如果条件不正确,则LED处于偏低状态,并通过“ DigitalWrite(LED,Low)”在Else分支中实现;语句(如图2所示)。
编译和上传Arduino来测试声音和光线的双控制光:当室内灯在正常照明中,无论扬声器中的音乐有多强,LED灯都不会点亮;如果您用手覆盖灯传感器,此时,如果再次播放音乐,LED灯将相应地照亮(如图3所示)。同样,当覆盖灯传感器,使周围环境处于更安静的状态时,LED灯不会发光。
3。Python代码编程实现“声音和光双控制灯”
在Pinpong库模块的帮助下,Arduino在Python空闲编程环境中的代码编程。首先,通过“导入时间”和“从Pinpong.board进口板,PIN”语句进行导入时间和Pinpong库模块; “董事会(“ UNO”)的功能。begin()”语句是实现Arduino UNO板类型初始化操作(包括自动识别连接到主板的端口号);然后,建立了三个变量,LED,Soundensor和Lightsensor,对应于LED灯,声音传感器和灯传感器的声明设置,以及“ LED = PIN.D13,PIN.OUT的功能)的说法是设置连接到引脚13的LED灯作为信号输出端子,并且语句“ Soundensor = PIN.D2,PIN.in的功能)是将连接到数字引脚2的声音传感器设置为信号输入端子和语句的功能“ LightsenSor = PIN.A2,PIN.ANALOG)是将连接到模拟引脚A2的声音传感器设置。光传感器是一个模拟信号端子。
在“ true:”循环结构中,首先建立两个变量sound_sensor_value和light_sensor_value,它们分别用于存储声音传感器和光传感器的读取数据。请注意,一个是一个数字信号,另一个是一个模拟信号:“ sound_sensor_value = soundsensor.read_digital()”和“ lightsensor.read_analog()”;然后,创建一个“ if…else…else……”选择结构,以及判断条件是“ sound_sensor_value == 0和light_sensor_value> = 500”,也就是说,是否由声音监视的数据值监视传感器为0(对应于低级别的“声音”状态),如果是正确的kaiyun官方网站登录入口,则由光传感器监视的数据值大于或等于500。发射3秒:“ LED.WRITE_DIGITAL(1)”和“ Time.Sleep(3)”;是,“灯光”(如图4所示)。
保存程序,然后按功能键F5运行程序以测试“声音和光双控制灯”。效果与使用Arduino IDE代码编程一致。
4。思维+图形编程实现了“自动光双控制灯”
运行心态+输入图形编程接口,并基于代码编程结构组合“构建块”块语句。最重要的是要构建“如果...否则...”选择分支中的判断条件,也请参考数字2连接了PIN上声音传感器的监视数据为0,并且确定是否同时满足两个条件,确定连接到A2模拟引脚的光传感器的数据大于或等于500。如果是正确的话,将控制LED灯以散发5秒钟。如果不是真的,将控制LED灯以保持关闭。状态(如图5所示)。
单击“上传到设备”项目,并在出现“上传成功”提示后,再次测试Arduino的“声学和灯双控制灯”,并且效果仍然与使用代码编程一致。