三、智慧家居
第10课 人体感应灯

一、任务目标
I2C 人体感应(CBR817)阈值 5000、延时 2000ms:有人则两盏灯亮,离开则灭。完整代码用 T2/T3 改「延时秒数」,点阵显示秒数,并把 delay_ms 设成秒数×1000。
二、我们要学什么
- 学习要点:先设阈值和保持时间,再按 result 开关灯
- 本课过关:能指出体验延时固定 2000ms;完整代码可调秒数。
- 示例对齐:体验题对应 「3-2-1 人体感应灯」;完整代码对应 「3-2-2 可变人体感应灯」。
三、本节要点
result() 为真才开灯。体验没有 T2/T3。
1读场景明确真实任务
2对要点有人亮、离开灭
3载入运行本课积木/代码
四、解题思路
- 输入:人体感应 result;完整代码另用 T2/T3。
- 输出:1、2 号灯;完整代码另显示延时秒数。
- 生活对照:楼道感应灯,可调保持多久。
- 验证现象:靠近灯亮,离开一段时间后灭。
本课主要用到:I2C 人体传感、板载灯;完整代码另用点阵和按键。
- 1threshold(5000)。
- 2delay_ms(2000)。
- 3result 真则两灯开。
- 4完整代码按键改延时秒数。
流程示意(可对照左侧文字)
五、图形块功能讲解
下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。
| 图形块 | 分类 | 作用 | 本课用法 |
|---|---|---|---|
![]() | 板载传感 | 设置雷达触发灵敏度。 | threshold(5000)。 |
![]() | 交互 | 查询人体感应是否触发。 | xsensor.result() 决定灯。 |
![]() | 数学 | 取两个数中的较大或较小值。 | 完整代码延时秒数下限 1。 |
六、知识点讲解
本课核心是人体感应开关灯。阈值管灵不灵,delay 管人走后还亮多久。
体验
延时写死 2000ms。
完整代码
延时秒数×1000 写回模块。
T3
秒数减 1,且不小于 1。
- 过关:能说出阈值和延时各管什么。
先弄清本课输入与输出,再进编程练习对照现象。
七、编程练习
点「载入」打开 MixVM(board=mixgo_zero_design)。外设课会自动导入对应外接模块到右侧仿真。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。
3-2-1 人体感应灯.mix。载入后运行。
正在载入编程环境
正在载入 MixGo ZERO 仿真编程环境…
八、课堂练习
先完成两道判断题,再完成选择题;全部选定后点「检查」。
判断:体验可以用 T2、T3 改感应保持时间。
判断:有人靠近且 result 为真时,1 号和 2 号灯都会开。
体验 delay_ms 的参数是?
完整代码 T3 会把延时秒数?
九、本节小结
记住:体验延时固定 2 秒;改秒数是 3-2-2。


