本人从事青少年编程教育领域多年,精通 Scratch、C++、Python 等教学语言。凭借丰富的教学经验与对行业的深刻洞察,自主开发了专业面向青少年编程学习的 网站 ——etdati.cn 。
该网站功能丰富且实用,设有编程题在线阅览及提交代码自动判对错的 OJ 系统,方便同学们检验学习成果;同时还精心整理了历年 CCF 等级考试、CSP、蓝桥杯、GESP 等权威赛事的真题,并附上详尽答案与解析,所有资源均免费对外开放。
欢迎广大青少年及家长、教育工作者前来浏览使用,一同开启编程学习的精彩旅程 。
2025-03 青少年等级考试三级实操真题
《智能自助红绿灯》
器件:Atmega328P主控板1块,交通灯模块2个,按键模块1个,蜂鸣器模块1个,舵机1个。以上模块也可使用分立器件结合面包板搭建。
任务要求:
自助红绿灯为行人横穿主路时使用,人行道的总通行时间为10秒。为了安全起见,在人行道安装自动栏杆,本项目通过舵机来模拟栏杆。具体要求如下:
- 自助红绿灯未启动时,主路显示为绿灯,人行道显示为红灯,蜂鸣器保持静音,舵机旋转至0度,表示栏杆放下。
- 当人行道按键被按下后,主路的绿灯延时2秒后由绿灯经黄灯转换为红灯,黄灯时长2秒。
- 当主路为红灯时,人行道的绿灯点亮并闪烁,闪烁时间间隔为500毫秒,舵机旋转至90度,表示栏杆抬起,蜂鸣器保持静音。
- 当人行道的绿灯还剩余4秒时,绿灯快速闪烁,闪烁时间间隔为250毫秒,同时蜂鸣器发出提示音,提醒行人快速通过。
- 人行道通行时间结束,人行道红灯点亮,主路绿灯点亮,蜂鸣器保持静音,舵机旋转至0度,表示栏杆放下。
- 根据上述要求,绘制流程图。
- 未作规定处可自行处理,无明显与事实违背即可。
- 编写程序文件命名规则为:DJKS3 身份证号,考试完毕上传备案。
- 程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理。
参考流程图:
解释:
- 图中主要需要展示判断按钮状态的分支结构,分为按下和没按下两种状态;
- 其次需要体现loop()函数的循环结构,循环检测按钮状态。
接线参考:
解释:
- 分为两个红绿灯(行人的黄灯无需用上),分别接在8、9、10接口(主路)和5、6、7接口(人行道),共用一个电阻;
- 按键模块采用下拉电阻,默认低电平,按下高电平,连接4号引脚;
- 蜂鸣器连接2号引脚;
- 舵机连接3号(需要PWM功能的引脚)引脚;
参考代码:
setup()函数:定义所有接口连线
loop()函数:主要判断按键是否按下
解释:
- 按键没按下,自助红绿灯未启动时,主路显示为绿灯,人行道显示为红灯,蜂鸣器保持静音,舵机旋转至0度,表示栏杆放下。
- 人行道的总通行时间为10秒。当人行道按键被按下后,主路的绿灯延时2秒后由绿灯经黄灯转换为红灯,黄灯时长2秒。
- 人行道绿灯闪烁分为两个阶段:慢闪烁,亮500ms和暗500ms,一个操作为1s,所以循环6次,共6s;快闪烁,亮250ms和暗250ms,一个操作为500ms,所以循环8次,共4s。