一、疯狂打地鼠
第1课 外接按键-双按键开关灯

一、任务目标
外接双按键:pin0 按下两盏灯都亮,pin1 按下两盏灯都灭。这不是「按一下亮再按一下灭」。完整代码才是松手后分别翻转 1 号/2 号灯。
二、我们要学什么
- 学习要点:一个键专管开、一个键专管关,不要写成同一个键翻转
- 本课过关:能指出体验:pin0 开两灯、pin1 关两灯;完整代码等松手后 setonoff(...,-1) 分别翻转。
- 示例对齐:体验题对应 「1-1-1 外接按键-双按键开关灯」;完整代码对应 「1-1-2 外接按键-单按键开关灯」。
三、本节要点
体验 1-1-1 是电平检测:按着 pin0 就亮、按着 pin1 就灭。翻转开关在 1-1-2。
1读场景明确真实任务
2对要点pin0 开灯,pin1 关灯
3载入运行本课积木/代码
四、解题思路
- 输入:外接 pin0、pin1(双轻触,接 U2)。
- 输出:1 号和 2 号板载 LED。
- 生活对照:墙上两个键:一个只开、一个只关。
- 验证现象:按 pin0 两灯亮;按 pin1 两灯灭。
本课主要用到:外接数字输入、板载 LED。
- 1初始化 pin0/pin1 为输入。
- 2循环里若 pin0 有电平则两灯开。
- 3若 pin1 有电平则两灯关。
- 4完整代码:等松开后再翻转对应那一盏。
流程示意(可对照左侧文字)
五、图形块功能讲解
下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。
| 图形块 | 分类 | 作用 | 本课用法 |
|---|---|---|---|
![]() | 输入/输出 | 把引脚设为输入或输出。 | 体验:pin0、pin1 设为输入。 |
![]() | 控制 | 按条件反复执行内部积木;条件为「真」时相当于 while True 无限循环。 | 载入后可在工具箱对照本课用法。 |
![]() | 控制 | 满足条件时执行对应分支,用于按键、传感阈值的判断。 | 载入后可在工具箱对照本课用法。 |
![]() | 输入/输出 | 读取引脚高低电平。 | 体验:读 pin0 开灯、读 pin1 关灯。 |
![]() | 板载执行 | 打开或关闭指定 LED。 | 体验:同时开关 1 号和 2 号灯。 |
![]() | 控制 | 先跑一遍循环体,再根据条件决定是否继续。 | 完整代码:按住时延时 1ms,直到松开。 |
![]() | 控制 | 暂停指定时间,常用于动画节奏或等待。 | 完整代码:等松手时 sleep_ms(1)。 |
![]() | 逻辑 | 把真变假、假变真。 | 完整代码:not pin.value() 表示松开。 |
六、知识点讲解
本课核心是两键分工:pin0 只负责开两灯,pin1 只负责关两灯。不是按一下翻转。
开
pin0.value() 为真时 setonoff(1,1) 和 setonoff(2,1)。
关
pin1.value() 为真时两灯都写 0。
翻转
完整代码等松手后 setonoff(1,-1)/setonoff(2,-1)。
- 过关:能对比「按着开/关」和「点一下翻转」。
先弄清本课输入与输出,再进编程练习对照现象。
七、编程练习
点「载入」打开 MixVM(board=mixgo_zero_design)。外设课会自动导入对应外接模块到右侧仿真。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。
1-1-1 外接按键-双按键开关灯.mix。载入后运行。
正在载入编程环境
正在载入 MixGo ZERO 仿真编程环境…
八、课堂练习
先完成两道判断题,再完成选择题;全部选定后点「检查」。
判断:体验程序是按一下 pin0 灯亮,再按一下同一键灯灭。
判断:pin0 有电平时,1 号和 2 号灯都会被打开。
体验里按下 pin1 会?
完整代码里 -1 表示?
九、本节小结
记住:体验是一键开、一键关;翻转要看 1-1-2。







