所有分类
主题 主题
平台 平台
我的工作台
userHead
注册时间 [[userInfo.create_time]]
创造力 [[userInfo.creativity]]
[[userInfo.remark]]
[[d.project_title]]
articleThumb
[[d.material_name]]
timelineThumb
进入工作台
折叠
所有分类 我的工作台
展开
Arduino轻松学Mixly编程第10课红外报警装置
ASH腻 2019-04-28 14:29:02
0
0
简单

Arduino轻松学Lesson 10 红外报警装置

1. 课程简介
今天课程为大家讲解程序中断函数的应用。认真完成第8课作业的同学会发现,只有在灯的呼吸效果亮度最低时按下按键,才能触发切换操作,而在呼吸效果的其他环节按下按键,灯效并未改变。这是因为一次完整的呼吸效果实现需要持续数秒,此时UNO板并不读取外部传感器信号,也就无法对按键交互做出即时反馈。而今天要为大家介绍的程序中断,将赋予程序较高优先级,让程序可以在UNO板执行其他普通优先级代码时也可实时检测高优先级的外界交互并实时处理。本节课的案例将使用人体红外接近模块和蜂鸣器制作一个红外入侵报警器。


本节课所需硬件:Arduino UNO、IO扩展板、红外接近传感器、蜂鸣器

projectImage


2. 本节知识点:程序中断函数


3. 元件介绍红外接近模块套件中的红外接近模块是基于热释电原理的人体红外检测设备。人体恒温37℃左右,会向周围环境中释放波长为10μm左右的红外线,检测设备内的热释电晶体检测到检测到该特定波长的红外线后,会在晶体两端产生数量相等而符号相反的电荷,后续电路检测到该电荷后将模块对外输出的电平信号由高电平切换为低电平


4.Mixly模块中断模块

projectImage

模块位置:“输入输出”栏模块功能:为程序增加中断,对传感器输入进行实时处理


函数声明模块

projectImage

模块位置:“函数”栏模块功能:将一段程序代码封装在一起,可直接通过函数名invasion()调用。


函数调用

projectImage

模块位置:“函数”栏模块功能:调用自定义的函数“invasion()”。


5.程序及流程图程序图

projectImage


流程图

projectImage

6.关联知识讲解
中断:中断可以简单的理解为程序运行时的“插队”。我们所编写的程序再Arduino UNO上的CPU中具有不同的优先级,中断程序具有高优先级,CPU会优先执行。一旦外部端口触发中断操作,主控板上的CPU会暂停正在执行的程序,转而执行中断程序,待中断程序执行完毕后,再返回中断前暂停的程序继续执行。

projectImage


ArduinoUNO板上只有数字引脚2、3端口可以触发中断,并且引脚2对应的中断优先级要高于引脚3对应的中断。


UNO的中断有4种模式,但Mixly只提供3种模式支持:上升: 外部传感器输入信号由低电平切换为高电平,比如按键按下;下降: 外部传感器输入信号由高电平切换为低电平,比如红外接近模块触发、按键弹起;改变: 外部传感器输入信号发生改变,高变低或低变高。


7.课堂练习

更改程序,将报警器变为持续报警,即检测到人开始报警并持续直至人离开。


8.作业及挑战

将第8课的状态切换灯作业使用中断完成,对比两者的实现效果有何不同。上传形式:程序截图+效果(图片+视频或动图),使用压缩包上传。修改第10课的课程案例:白天时是入侵报警器,有人靠近时,发出声音警报,延时3s;夜晚时变身小夜灯,检测到有人靠近时,点亮LED灯,延时5s关闭。


 纸模.pdf


课程简介
《Arduino轻松学》是科技学堂制作的在线系列创客教学视频之一。《轻松学》是一套Arduino开发的基础入门课程,适合还没有过硬件开发和编程经验的人群做入门学习使用。本课程中,每节课带你制作一个趣味小项目,在学到技术的同时,也开动想象发挥创造。

课程案例

《轻松学》课程中使用非常适合初学者的DFRobot的米思齐(Mixly)编程积木入门套装,软件选用图形化编程的Mixly。课程以视频+图文的呈现形式,深入浅出。既有操作演示,又方便学习者自主观看查询,轻松完成Arduino的入门学习。



下一课:Arduino轻松学Lesson11智能声控灯

Makelog作者原创文章,未经授权禁止转载。
0
0
评论
[[c.user_name]] [[c.create_time]]
[[c.parent_comment.count]]
[[c.comment_content]]