起源星 L0-02 · 智能夜灯守护者
第二关:用光敏电阻感知“天黑了没”,自动帮你开关小夜灯
← 返回元宇宙首页
任务:天暗了灯自动亮,天亮了灯自动灭
适龄建议:7–10 岁 · 零基础 | 预计用时:30–40 分钟 | 本关正式引入“光线强度 → 决定是否开灯”的概念。
目标:学会用“光敏电阻 + 阈值判断”实现智能夜灯 知识点:模拟输入 / 变量表示传感器数值 / 条件判断 家长角色:多问“你觉得哪里算暗到要开灯?”
积木编程区(光敏电阻 → 夜灯 的逻辑)
用变量表示“当前光线有多亮”,当亮度低于某个值时点亮 LED13,当环境变亮时自动关灯。
设备状态:未连接
夜灯 LED13
光敏 A0
运行模式: 浏览器仿真
任务:做一个“智能夜灯”。
抽象规则:
  变量 light 表示“当前光线强度”(数值越小越暗)。
  设定一个阈值,比如 30:
  如果 light < 30:打印“LED13:ON”,表示夜灯亮;
  否则:打印“LED13:OFF”,表示夜灯关。
建议积木结构:
「永远重复(while true)」→
  如果 [light < 阈值] 就 [打印“LED13:ON”]
  否则 [打印“LED13:OFF”]
虚拟 Arduino UNO · LED13 + 光敏 A0
环境光: 当前光线:80(0 = 很黑,100 = 很亮)
ARDUINO UNO L (LED13) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 3.3V 5V GND VIN A0 A1 A2 A3 A4 A5 ATmega328P
仿真 & 设备日志(夜灯亮 / 灭的判断会记录在这里)
[系统] 这里会显示“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”。
  • 能用自己的话说出:“电脑先看光线有多暗,再决定夜灯要不要亮”。
家长提示:本关从“二选一的按钮”升级到“连续数值 + 阈值判断”,这是所有智能家居/自动控制的基础模型之一。 不要求孩子立刻搞懂模拟量的细节,只要能理解“传感器 → 数字 → 和阈值比较 → 决定动作”这条链路即可。