刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

主题:智能自助红绿灯
器件:Atmega328P主控板1块,交通灯模块2个,电位器模块1个,超声波传感器1个,舵机1个,蜂鸣器模块1个。以上模块也可使用分立器件结合面包板搭建。
要求:
1.采用超声波传感器触发启动自助红绿灯,采用舵机实现栏杆的功能。
2.自助红绿灯未启动时,主路显示为绿灯,人行道显示为红灯。栏杆处于水平位置。
3.当行人距离超声波传感器不大于3cm时,自助红绿灯启动,此时,主路的绿灯延时1秒后由绿灯经黄灯转换为红灯。
4.当主路为红灯时,人行道的绿灯点亮并闪烁,闪烁时间间隔为500毫秒。
5.当人行道绿灯点亮时,人行道栏杆抬起,处于90度位置。
6.人行道的通行时间为8秒~12秒,可以通过电位器调整。
7.当人行道的绿灯还剩余4秒时,绿灯快速闪烁,闪烁时间间隔为250毫秒,提醒行人快速通过。
8.当人行道的绿灯还剩余4秒,绿灯快速闪烁的同时,声音提醒,声音提醒的方式选用蜂鸣器模块。当绿灯快速闪烁时,蜂鸣器发出蜂鸣的声音。
9.人行道通行时间结束,人行道红灯点亮,主路绿灯点亮,栏杆放下,蜂鸣器静音。
10.控制程序采用C/C++代码编写,不得使用图形化软件编写。
11.未作规定处可自行处理,无明显与事实违背即可。
12.考试结束,考生将代码压缩上传,程序文件命名规则为:DJKS4_身份证号。
13.程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理。
说明:舵机类库及常用成员函数如下,供参考。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

【喵呜刷题小喵解析】本题要求实现一个智能自助红绿灯系统,使用Atmega328P主控板、交通灯模块、电位器模块、超声波传感器、舵机和蜂鸣器模块。首先,在`setup()`函数中,我们需要初始化各个LED灯和舵机的引脚,设置定时器1为CTC模式,并设置定时器1的初始值为25000,即50ms。然后,设置OC1A引脚为输出,非反相PWM,设置占空比为50%,启动定时器1。在`loop()`函数中,我们使用状态机来实现交通灯的转换。状态0表示主路为绿灯,状态1表示等待行人,状态2表示主路黄灯,状态3表示人行道绿灯,状态4表示调整人行道时间,状态5表示主路绿灯。当行人距离超声波传感器不大于3cm时,状态从1跳转到2,主路的绿灯延时1秒后由绿灯经黄灯转换为红灯。当主路为红灯时,人行道的绿灯点亮并闪烁,闪烁时间间隔为500毫秒。当人行道绿灯点亮时,人行道栏杆抬起,处于90度位置。人行道的通行时间可以通过电位器调整,当绿灯剩余4秒时,绿灯快速闪烁,蜂鸣器发出声音提醒行人快速通过。人行道通行时间结束后,人行道红灯点亮,主路绿灯点亮,栏杆放下,蜂鸣器静音。由于本题未给出超声波传感器和舵机的具体型号和驱动方式,所以在代码中,我们只给出了函数声明,具体实现需要根据实际硬件进行编写。另外,蜂鸣器的控制也需要根据具体硬件进行编写,这里也只是给出了函数声明。最后,我们需要在程序编写过程中注意,不得打开库例程和其它程序,否则实操成绩按照0分处理。
创作类型:
原创

本文链接:主题:智能自助红绿灯 器件:Atmega328P主控板1块,交通灯模块2个,电位器模块1个,超声

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share