多途径实现Arduino“声光双控灯”

来源 :电脑报 | 被引量 : 0次 | 上传用户:liuliushuang
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  楼道中的声光双控灯是一种很常见的利用声音和光线信号来控制照明的电子装置,其应用场景是在光线昏暗时对一定强度的响声做出亮灯“回应”,持续十几秒钟后再关闭灯光照明,也就是必须要同时满足光线较暗和响声达到一定程度这两个条件才会“开灯”,否则一直处于“不工作”状态。在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
  =analogRead(A2);”语句,建立变量LightSensorValue,其值是读取光线传感器通过A2模拟引脚的传输数据;再通过“int SoundSensorValue = digitalRead(SoundSensorPin);”语句,建立变量SoundSensorValue,其值是读取声音传感器通过2号数字引脚的传输数据。
  经过实验测试后发现,正常室内光线时所测得的光线数据是220左右,用手捂住光线传感器(模拟低光照条件)时测得的光线数据是930左右,而用手电照射光线传感器时测得的光线数据是20左右,这说明光线越强,数据值越小,光线越弱,数据值越大。通过调节声音传感器上的电位器,使其处于一个比较合适的检测环境周围声音强度范围内,发现“没有声音”时的检测值是1(对应HIGH高电平),“有声音”时的检测值是0(对应LOW低电平)。因此在“if…else…”选择结构中将判断条件构建为“SoundSensorVal
  ue == LOW and LightSensorValue >= 500”,也就是判断声音传感器的检测值是否为0、光线传感器的检测值是否在500以上,当这两个条件同时满足时,就应当去控制LED灯发光:“digitalWrite(led,HIGH);”,而且要让它持续发光3秒:“delay(3000);”。条件不成立的话,LED处于熄灭状态,在else分支中通过“digitalWrite(led,LOW);”语句来实现(如图2)。



  将程序编译并上传Arduino,对声光双控灯进行测试:当室内光线处于正常照明状态时,音箱中音乐的强度再大,LED灯也不会亮;如果用手捂住光线传感器,此时再播放音乐的话,LED灯就会应声而亮(如图3)。同样,当光线传感器被捂住时,保持周围环境处于比较安静的状态,LED灯也不会发光。


3.Python代碼编程实现“声光双控灯”


  借助pinpong库模块,在PythonIDLE编程环境中对Arduino进行代码编程。首先,通过“import time”和“from pinpong.board import Board,Pin”语句,导入time和pinpong库模块;“Board(“uno”).begin()”语句的作用是实现对Arduino UNO板型的初始化操作(包括连接主板端口号的自动识别);接着,分别建立led、SoundSensor和LightSensor三个变量,分别对应LED灯、声音传感器和光线传感器的声明设置,语句“led = Pin(Pin.D13, Pin.OUT)”的作用是设置连接在13号引脚的LED灯为信号输出端,语句“SoundSensor = Pin(Pin.D2, Pin.IN)”的作用是设置连接在2号数字引脚的声音传感器为信号输入端,语句“LightSensor = Pin(Pin.A2, Pin.ANALO
  G)”的作用是设置连接在A2模拟引脚的光线传感器为模拟信号端。   在“while True:”循环结构中,先建立Sound_Sensor_Value和Light_Sensor_
  Value两个变量,作用是分别存储声音传感器和光线传感器的读取数据,注意一个是数字信号、一个是模拟信号:“Sound_Sensor_Value = SoundSensor.read_digit
  al()”、“LightSensor.read_analog()”;接着,建立一个“if…else…”选择结构,判断条件是“Sound_Sens
  or_Value == 0 and Light_Sensor_Value >= 500”,即对声音传感器所监测的数据值为0(对应低电平的“有声音”状态)和光线传感器所监测的数据值大于等于500这两个条件是否同时成立进行判断,成立的话,执行LED灯发光并持续3秒钟的操作:“led.write_digital(1)”、“time.sleep(3)”;否则,通过语句“led.write_digital(0)”向LED的连接引脚写入低电平,即“熄燈”(如图4)。



  将程序保存,按功能键F5运行程序来测试“声光双控灯”,效果与使用Arduino IDE代码编程一致。

4.Mind+图形化编程实现“声光双控灯”


  运行Mind+进入图形化编程界面,根据刚才的代码编程结构进行“积木”块语句组合,其中最关键的就是构建“如果…否则…”选择分支中的判断条件,同样还是对连接在2号数字引脚的声音传感器监测数据为0、连接在A2模拟引脚的光线传感器监测数据大于等于500这两个条件是否同时满足进行判断,成立则控制LED灯发光5秒钟,不成立则控制LED灯保持熄灭的状态(如图5)。



  点击“上传到设备”项,出现“上传成功”提示后,再次测试Arduino的“声光双控灯”,效果仍然与使用代码编程是一致的。
其他文献
不知道大家是否和小崔姐一样,感觉现在的手机内存越来越不够用,以前64GB内存用起来还相当充裕,现在就算不打游戏128GB都显得有些吃紧。日常清理才发现,有太多没法“断舍离”的应用占据了内存很大一部分位置,编辑部的小伙伴们似乎也是同样的情况,大家都是为什么留下这些不常用的App呢?音视频App那么多,一个都舍不得删  对于追剧达人小璐来说,手机里的音视频App占据了内存很大一部分空间,尽管这些App
期刊
摘要:目的:为了探究基因3型慢性丙型肝炎(CHC)中达诺瑞韦与长效a-干扰素联合治疗效果。方法:选取院内在2019年3月到2021年3月间收治的100名CHC患者,将其随机分成两组,每组50名。对照组采用聚乙二醇干扰素a-2a与利巴韦林联合治疗,研究组采用达诺瑞韦与长效a-干扰素联合治疗,对比二者的治疗效果。结果:在治疗12周后,对两组外周血细胞与血红蛋白进行对比,发现研究组的白细胞计数、血小板计
期刊
摘要:目的:讨论研究在儿童扁桃体炎治疗过程中运用蒲地蓝消炎口服液+口腔炎气雾剂的价值作用。方法:选择2021年1月到2021年6月期间院内的200例儿童扁桃体炎患者,运用随机分配方式设置为对照组与观察组,运用常规治疗方式开展对照组的治疗工作,运用蒲地蓝消炎口服液+口腔炎气雾剂开展观察组的治疗工作,对比两组治疗有效性。结果:观察组整体的治疗有效性明显超过对照组(P<0.05)。结论:在儿童扁桃体炎患
期刊
摘要:目的:探究比阿培南治疗慢性肝病合急性细菌性感染的临床应用。方法:研究对象为我院2019年8月-2020年8月收治的80例慢性肝病合急性细菌性感染患者,将其随机分为研究组与对照组。研究组接受比阿培南治疗,对照组接受亚胺培南-西司他丁钠治疗。对比两组治疗效果。结果:对照组治疗有效率50.0%比研究组67.5%低(P<0.05)。结论:比阿培南治疗慢性肝病合急性细菌性感染效果理想,可在临床推广应用
期刊
摘要:目的:探究孕妇产后会阴侧切伤口愈合不良原因。方法将2017年1月至2018年12月期间在我院采用会阴侧切进行生产的140例产妇作为研究对象。调查分析其伤口愈合不良的情况并分析其原因。結果会阴侧切的产妇中共有24例出现伤口愈合不良的情况,总发生率为17.1%。由表1可见,侧切伤口愈合不良的占比率中夏季的发病率较高,肥胖者、产程时间较长、应用产钳以及羊水污染都会导致伤口愈合不良情况的发生。结论
期刊
宋代都有紫草膏啦  今天给大家介绍一款神奇的中药油膏,养血润燥,消肿生肌,对于宝宝湿疹、红屁股、蚊虫叮咬、痤疮都有很神奇的疗效哦,这款药膏就是紫草膏啦。  紫草膏的历史非常悠久,严格来说可以追溯到宋代。距今八九百年前,宋代《太平惠民和剂局方》中记载了一款外用药膏,由胡麻油、黄蜡、当归组成,名为“神效当归膏”,这款药膏外用可以养血润燥、消肿生肌。明代万歷年间,著名的中医外科大家陈实功对“神效当归膏”
期刊
摘要:目的:探讨儿科治疗中抗生素的合理使用情况, 使儿科在治疗期间能够科学、合理的使用抗生素。方法:研究对象选取2018年1月2020年12月我院儿科接收治疗的500例患儿, 分析我院儿科治疗期间抗生素使用的合理性。结果:分析我院儿科治疗中的500例患儿资料, 其中主要以青霉素类、头孢素类以及大环内酯类为首位。通过联合抗生素以及静脉给药, 发生了抗生素应用不合理问题。结论:儿科在治疗期间要合理使用
期刊
开学季,不少同学都很在意,预算只有5000多元,可以选择什么样的轻薄本?  今天就来聊聊这个话题,选择了几款5000元价位各有看点的机型,有的以屏幕为卖点,有的以性能为卖点,有的以安静低噪声为卖点……总而言之,今天点评的,都是有特色有看点的机型——毕竟,平庸的机型也入不了大家的眼。而对下面牛叔推荐的机型,大家则可根据产品的最显著特点,结合自己的预算和需求来考虑。华硕无畏Pro14  锐龙7 580
期刊
长达十年制作的《神佑释放》终于以正式不删档不限号的方式展现在大家面前了。这款游戏在2011年的韩国G-star游戏展上,发行商NEOWIZ公布了最初的视频,原名为《神佑OL》,并以攻城为卖点的MMORPG游戏,在这十年经历两次回炉,多次跳票,甚至改名后,才正式上线。韩风油腻不改初心  原本来说在经过那么多次跳票、回炉还改名的情况下,很多游戏可能都会凉掉,甚至直接默默消失。但《神佑释放》却是刚好赶上
期刊
摘要:目的:探讨分析丹参酮药理作用及临床应用。方法:从近两年于我院收治的冠心病伴心绞痛患者病例中,选取80例作为研究对象,根据随机数字表法,分为治疗组和对照组,各为40例,分别予以常规西医治疗联合丹参酮ⅡA磺酸钠注射液、常规西医治疗,将临床疗效、心绞痛发作频率及硝酸甘油日消耗作为两组研究对象的评价指标。结果:治疗组、对照组的临床总有效率分别为97.50%、85.00%,前者临床总有效率明显高于后者
期刊