任务:天暗了灯自动亮,天亮了灯自动灭
积木编程区(光敏电阻 → 夜灯 的逻辑)
用变量表示“当前光线有多亮”,当亮度低于某个值时点亮 LED13,当环境变亮时自动关灯。
任务:做一个“智能夜灯”。
抽象规则:
变量
设定一个阈值,比如 30:
如果
否则:打印“LED13:OFF”,表示夜灯关。
建议积木结构:
「永远重复(while true)」→
如果 [light < 阈值] 就 [打印“LED13:ON”]
否则 [打印“LED13:OFF”]
抽象规则:
变量
light 表示“当前光线强度”(数值越小越暗)。设定一个阈值,比如 30:
如果
light < 30:打印“LED13:ON”,表示夜灯亮;否则:打印“LED13:OFF”,表示夜灯关。
建议积木结构:
「永远重复(while true)」→
如果 [light < 阈值] 就 [打印“LED13:ON”]
否则 [打印“LED13:OFF”]
虚拟 Arduino UNO · LED13 + 光敏 A0
环境光:
当前光线:80(0 = 很黑,100 = 很亮)
仿真 & 设备日志(夜灯亮 / 灭的判断会记录在这里)
[系统] 这里会显示“LED13:ON/OFF”等逻辑模拟结果;
以后连接真实光敏电阻和夜灯电路后,也可以把串口输出同步到这里。
房间 · 智能夜灯场景
窗外从白天变成黑夜时,小夜灯会随之亮起。
右侧场景只做“感觉上的日夜变化”,真正的“亮 / 灭决策”在左侧积木和下方日志中完成。
任务剧情 & 操作步骤
1. 剧情:小工程师的“夜灯守护塔”
起源星的孩子晚上需要一盏小夜灯守护睡眠,但早上太阳升起后又不想浪费电。
你的任务是:让开发板通过光敏电阻自动判断“天黑了没”,自己决定夜灯要不要亮。
2. 操作步骤(给孩子看的版本)
- (1)在“变量”里创建一个变量,取名
light(表示光线强度)。 - (2)在“循环 / 流程”里拖出 while true 的循环,表示“永远检测光线”。
- (3)在循环里面放一个带“否则”的 如果 … 那么 … 否则 … 积木。
- (4)条件里比较:
light < 阈值,比如 30(你也可以自己调)。 - (5)如果“很暗”(条件为真),打印
LED13:ON;否则打印LED13:OFF。 - (6)点击「运行仿真」,再用下方滑块模拟“变暗 / 变亮”,看日志里夜灯是否会自动亮 / 灭。
- (7)切到「代码模式」,观察 Arduino C++ 中的
if (light < ...)结构。
3. 给家长的引导脚本(照读即可)
- 先问:“你觉得房间有多暗的时候,小夜灯应该自动亮起来?”
- 孩子卡住时,只提示:“我们是不是要告诉电脑:如果 light 这个数字小于某个值,那就把灯打开?”
- 可以引导孩子调不同的阈值,体会“太敏感”和“太迟钝”的区别。
4. 本关完成标准
- 能用变量
light表示光线强度,并用if (light < 阈值)决定夜灯亮 / 灭。 - 在仿真中,当滑块调到“暗”区域时,程序会连续打印“LED13:ON”;调到“亮”区域时,连续打印“LED13:OFF”。
- 能用自己的话说出:“电脑先看光线有多暗,再决定夜灯要不要亮”。
家长提示:本关从“二选一的按钮”升级到“连续数值 + 阈值判断”,这是所有智能家居/自动控制的基础模型之一。
不要求孩子立刻搞懂模拟量的细节,只要能理解“传感器 → 数字 → 和阈值比较 → 决定动作”这条链路即可。