多途径实现Arduino“红外感应灯”

来源 :电脑报 | 被引量 : 0次 | 上传用户:hzau1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  在Arduino开源硬件编程中,常规实现方法是在Arduino IDE环境中进行C语言(包括C++)式的代码编程,代码精简、效率比较高。中小学生通常是从图形化编程入手,通过将高度集成编译好的“积木”式模块进行组合来实现同样的编程效果,比如Mind+、Mixly等等。除此之外,我们还可以在Python中借助PinPong库模块的引入进行代码编程,也能够让Arduino控制各种外设来实现非常丰富的功能。以“红外感应灯”为例——当有物体靠近(默认为2~30cm范围)时,Arduino控制LED灯发光;否则,LED灯保持熄灭状态。

1.实验器材与电路连接


  实验器材:Arduino UNO主板一个,红外线传感器一个,红色LED灯一支,三色公对母杜邦线各一根。首先将LED灯长腿(正极)插入13号引脚,短腿(负极)插入与之相邻的GND接地引脚;接着将三根杜邦线一端与红外传感器相连,红色线将VCC引脚与Arduino的5V引脚连接,黑色线负责接地(两端均连接GND),黄色线将红外传感器的OUT信号输出端与Arduino的7号引脚相连;最后,通过数据线将Arduino与计算机USB接口连接,准备开始编程(如图1)。


2.常规Arduino IDE代码编程实现“红外感应灯”


  首先,在Arduino IDE中进行两个变量的定义与赋值,语句“int led = 13;”对应插接在13号引脚的红色LED灯,语句“int irSensorPin = 7;”对应插接在7号引脚的红外传感器;接着,在setup()函数中写入两个语句:“pinMode(led,OUTPUT);”的作用是声明LED灯的引脚(13号)为输出模式,而“pinMode(irSensorPin, INPUT);”的作用是声明红外传感器引脚(7号)为输入模式。
  最后,在loop()函数中写入一个“if…else…”选择结构,其中的判断条件是“digitalRead(irSensorPin) == HIGH”,即判断从红外传感器中读取的数字信号是否为HIGH高电平;高电平是对应“没有物体进入检测范围”的情况,因此后面要写一个“digitalWrite(led,LOW);”语句,控制LED灯处于低电平的熄灭状态;如果条件不成立,说明红外传感器检测到“有物体进入”,则在else后面写一个“digitalWrite(led,HIGH);”语句,控制LED灯处于高电平的发光状态(如图2)。



  将程序编译并上传,对红外感应灯进行检测:当没有物体靠近时,LED灯熄灭;而当有物体进入检测范围时,LED灯开始发光(如图3),直到物体移出后又熄灭。


3.Python代码编程实现“红外感应灯”


  借助于PinPong第三方库模块,我们可以非常方便地在Python中对Arduino进行代码编程。首先需要在Python中进行PinPong库模块的安装,方法是在Python的脚本安装目录(比如:C:\Users\ZYYZ-BJ\AppData\Local\Programs\Pyth
  on\Python38\Scripts)中按住Shift键的同时,在空白处点击右键并选择“在此处打开命令窗口”;接着在弹出的CMD窗口中输入命令“pip install pinpong”,回车后即可开始安装,成功后会显示“Successfully installed”的提示信息(如图4)。



  首先,进入Python IDLE编程环境后新建一个Python文件,导入time和pinPong库模块:“import time”和“from pinpong.board import Board,Pin”;接着,通过语句“Board(“uno”).begin()”來实现对Arduino uno板型的初始化操作,同时还会自动识别端口号(比如COM9);然后,建立led和irSensor两个变量,语句“led = Pin(Pin.D13, Pin.OUT)”的作用是设置连接在13号引脚的LED灯为信号输出端,语句“irSensor = Pin(Pin.D7, Pin.IN)”的作用是设置连接在7号数字引脚的红外传感器为信号输入端。
  最后,在“while True:”循环结构中先建立变量Sensor_Value,并为其赋值为“irSensor.read_digital()”,作用是读取红外传感器所监测到的数字信号;然后建立一个“if…else…”选择结构,对变量Sensor_Value的值进行“是否等于1”的判断,条件成立的话,说明未检测到有物体进入,则执行语句“led.write_digital(0)”,向LED灯的13号引脚写入低电平0,即保持熄灭状态;反之,则通过语句“led.write_digital(1)”向13号引脚写入高电平1,控制LED灯发光。语句“time.sleep(0.1)”的作用是控制每次循环运行均延迟0.1秒,防止消耗过多的系统资源而造成“死机”。
  将程序保存后按功能键F5运行程序,Arduino红外感应灯开始“工作”:有物体靠近,亮灯;反之,熄灭。

4.Mind+图形化编程实现“红外感应灯”


  运行Mind+进入图形化编程界面,难度比较低,直接通过“积木”块语句的拖动和组合:
  首先在左侧通过点击“扩展”项添加“主控板”下的“Arduino Uno”,返回后在“循环执行”中建立一个“如果…那么执行…否则…”选择结构,同样是对插接在7号引脚的红外传感器进行数字信号读取;如果值为1,说明没有物体进入有效检测范围,则控制插接在13号引脚的LED灯熄灭——“输出为低电平”;反之,则“输出为高电平”,即控制LED灯发光(如图5)。



  程序编写完毕后点击“上传到设备”项,当出现“上传成功”提示后,Arduino红外感应灯可以根据对物体的监测进行“熄灭、发光”的自动切换,与之前使用Arduino IDE和Python代码编程所实现的效果完全一致,大家不妨一试。
其他文献
确定精彩瞬间动作  就体育摄影来说,有很多类型的图像包含故事性,从静止的、情绪化的时刻到庆祝活动的快照,都是精彩的瞬间。没有什么比将比赛“封装”在一张图像中的动作镜头更能说明“这就是体育”。  要捕捉到最佳动作镜头,需要了解运动、主题以及良好的时机。但在后期拍摄工作流程中,尤其是刚开始时,要确定哪些镜头是“瞬间动作”,哪些不是,可能会出现选择性困难,这里用例图来说明。  在这个投篮中,世界顶级篮球
期刊
养猪行业,正在上演比惨大会。  近期,A股养猪的公司纷纷发布了2021年半年报业绩预告,头部选手、腰部选手的生存状态都不乐观。  毫不夸张地说,亏损成为行业的关键词。  遥想一两年前,互联网公司、地产公司等纷纷跨界养猪,如今声量渐弱,养猪赛道到底发生了什么?惨就一个字  头部猪企盈利状况为“一降三亏”。  2021年上半年,正邦科技预计亏损12亿~14.5亿元、温氏股份预计亏损22.6亿~25.6
期刊
“内裤干净程度对于身体健康是非常重要的,手洗很有必要,但要用内衣专用的清洗液才有用”。轻松去污,顽渍自动分解  上面那句话不专指女生,而是在座的所有人。特别是夏天,每天被汗液浸泡的小内内要是不洗干净,那我劝你还是扔了吧。  师姐从前两年就开始接触内衣专用清洗液了,从“小林制药”用到“芝芙莲”,大大小小也用过好几个牌子了。今天要说的这款是我目前用下来觉得性价比最高的,即使只是想入手来试试也不会心疼哦
期刊
四川攀枝花,一块风水宝地  朋友,你还在为小芒果的皮厚核大肉少而烦恼吗?你想体验一下甜甜芒果肉吃到饱的快乐吗?那只有有着“大脸芒”之称的凯特芒能满足你了。它可是芒果界里出了名的重量级选手,最大的特点就是大,单果重量400g左右,吃起来格外爽快!  重点是它不仅个大,肉还厚,核也不大,可食用率高达80%,果皮一扒基本全是肉肉肉。嘴巴小的可能一口都咬不到边的。香甜味随着体积一起膨胀加倍,催熟后糖度高达
期刊
在八方救援河南灾情的时候,短视频平台上却有不少人在利用灾情制造热度,以此来博取关注。创作者在水中假扮溺水的求生者,表情夸张,声泪俱下,还有不少效仿者趋之若鹜,不以为耻反以为荣,拿灾情中的受害者抖机灵,短视频的低俗程度再次刷新下限。除了这类低俗内容之外,视频平台上还有不少虚假宣传。利用大家的爱美之心,各种美容神器、养颜偏方在短视频平台也是讨论得风生水起。而实际上,很多結论都是站不住脚的。如今各大平台
期刊
Tokyo 2020东京奥运会正在进行中,运动员们的精彩表现以及背后的故事,感动着所有人。虽然时间已经来到2021年,这届奥运会依然固执地叫作Tokyo 2020奧运会,这场迟来的体育盛会带给大家的依然是那一股叫作“坚持”与“勇气”的奥运精神。不能去现场观战,编辑们竟围在一起聊奥运“冷”知识了。  百通:拔河也曾是奥运会比赛项目。拔河在1900年(第2届)、1904年(第3届)、1908年(第4届
期刊
重塑想象,嚼着吃益生菌  干饭时有多爽,肠道消化起来就有多忙。为了肠道健康着想,热爱高油高脂美食的干饭人,饮食不规律的打工人,以及消化不良的所有人,请自觉补充益生菌哦。  每天花式投喂,肠道表示很累,赶快补充益生菌,帮助腸道做运动啦!一般的益生菌都是通过“喝”来获取,但今天师姐按头推荐的Bio-E益生菌多多片对益生菌展开了新的探索与再创作,最终重新定义了益生菌的服用方式——“嚼”。  话说Bio-
期刊
颓势已现,选择原谅还是“分手”?  互联网时代,蹿红很容易,跌落神坛更容易。  据Wind數据显示,2021年上半年,基金涨幅TOP 10中无一是百亿基金,也几乎不见顶流基金经理的身影,昔日王者易方达蓝筹精选涨幅仅为5.2%,而1084只百亿基金的涨幅中位数为5.8%,至于易方达中小盘非但没有上涨,反而上半年收益为负。  不可否认,“张坤们”的颓势肉眼可见。  “现在卷成这样了?以前都是年报认错,
期刊
《迷雾侦探》是一款横版的像素冒险游戏,游戏有着引人入胜的故事剧情,复古的像素风,搭配上精美的特效,再以多元化的谜题将玩家带入一个奇幻且迷离的赛博朋克世界,让玩家们如同欣赏一部精彩的侦探电影一般,慢慢拨开迷雾,发现背后所隐藏的真相。像素风的赛博朋克  《迷雾侦探》采用了8bit的像素风,看到这样的画面可以说很多玩家都能勾起儿时的回忆,当然如今也有不少的游戏都采用8bit的像素风,在看惯了各种3A大作
期刊
成语接龙是中华传统的文字游戏,有着悠久的历史和广泛的社会基础,是我国文字、文化、文明的一个缩影。传统的成语接龙的规则是用四个字的成语的最后一个字与下一句成语的第一个相同的字(音同也可以),首尾相接不断延长,形成长龙。在成语接龙中,第一句的成语称为龙头句,该成语的第一个字称为龙头字,首尾相接的字称为关节字。  讲了这么多关于成语接龙的知识,我们能不能做一个成语接龙的小游戏呢?答案是当然可以,让我们一
期刊