二、可调台灯
第6课 入侵灯光报警

一、任务目标
双红外 A 路读数大于 40000 就把「入侵」锁成真,之后彩灯红色 pin16 闪灯。体验不会自动解除。完整代码里 A 或 B 大于 40000 就报警,两路都小于 40000 就停止,并在闪灯时蜂鸣。
二、我们要学什么
- 学习要点:用锁存记住「已经入侵」,不要只在接近那一瞬间亮一下
- 本课过关:能指出体验 A 路大于 40000 后会一直闪;完整代码在 A、B 都小于 40000 时停止报警,并加蜂鸣。
- 示例对齐:体验题对应 「2-2-1 入侵灯光报警」;完整代码对应 「2-2-2 入侵声光报警」。
三、本节要点
变量「入侵」一旦为真,体验没有清零分支。
1读场景明确真实任务
2对要点锁存后闪灯报警
3载入运行本课积木/代码
四、解题思路
- 输入:双红外 A、B 两路;任一大于 40000 报警,两路都小于 40000 停止。
- 输出:彩灯红色 pin16 闪灯;完整代码加蜂鸣。
- 生活对照:安防一旦触发就持续报警,直到复位。
- 验证现象:靠近后灯开始闪,拿开仍闪。
本课主要用到:U2 双红外测距、U3 彩灯;完整代码另加蜂鸣,A 或 B 超阈值报警,两路都低于阈值则停。
- 1入侵先设为假。
- 2A 路>40000 则入侵=真。
- 3入侵为真则彩灯红色 pin16 闪。
- 4完整代码两路都小于 40000 则入侵=假。
流程示意(可对照左侧文字)
五、图形块功能讲解
下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。
| 图形块 | 分类 | 作用 | 本课用法 |
|---|---|---|---|
![]() | 板载传感 | 读取双红外测距的模拟量。 | adc0.read_u16() > 40000。 |
![]() | 板载执行 | 按音调与时长播放一声。 | 完整代码:pitch_time(988, 100)。 |
六、知识点讲解
本课核心是锁存:条件成立后把变量写成真,后面每圈都按变量报警,而不是只在超过阈值的那一瞬间亮一下。
触发
A 路 > 40000。
保持
if 入侵: 闪灯。
解除
完整代码 A 或 B 大于 40000 则入侵=真,否则为假。
- 过关:能解释拿开手后为什么还闪。
先弄清本课输入与输出,再进编程练习对照现象。
七、编程练习
点「载入」打开 MixVM(board=mixgo_zero_design)。外设课会自动导入对应外接模块到右侧仿真。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。
2-2-1 入侵灯光报警.mix。载入后运行。
正在载入编程环境
正在载入 MixGo ZERO 仿真编程环境…
八、课堂练习
先完成两道判断题,再完成选择题;全部选定后点「检查」。
判断:体验里 A 路掉到 40000 以下后,闪灯会立刻停止。
判断:A 路大于 40000 会把变量「入侵」设为真。
体验报警时点亮的是?
完整代码用什么解除入侵?
九、本节小结
记住:体验锁存后一直闪;完整代码要 A、B 都小于 40000 才停,并加蜂鸣。

