一、实操题
1、一、实操考题
主题:四位数码管串口交互数字闪烁显示
器件:ESP32主控板、按键模块、四位数码管、74HC595移位寄存器芯片(或模块)及相关器件。以上模块也可以采用分立器件结合面包板进行搭设。
任务要求:
使用74HC595移位寄存器芯片控制四位数码管显示数字。解析串口监视器输入的报文数据,将数据显示到四位数码管,并控制闪烁的频率。
报文的格式为:m:n,其中m表示数码管显示的数据,范围1~9999;n表示数据闪烁显示的时间间隔,范围100~1000,单位毫秒。报文示例:
1234:500,表示在四位数码管显示数字“1234”,如图1所示,并以500毫秒的时间间隔闪烁。
具体要求如下:
(1)装置启动前,四位数码管不显示任何内容;
(2)当按键按下后,任务装置开始启动;
(3)装置启动后,在四位数码管上倒计时显示 5、4、3、2、1,时间间隔为1秒;
(4)倒计时显示完毕,在串口监视器中输入数据,并点击发送按键;
(5)在串口监视器输入框输入上述格式的报文后,将解析后的相应报文内容输出到串口监视器窗口。以报文1234:500为例,串口监视器窗口输出的内容为Data:1234 -- Interval:500;
(6)四位数码管显示解析后的报文数据,并以指定的时间间隔闪烁。以报文123:100为例,四位数码管显示数字123,如图2所示,并以100毫秒的时间间隔闪烁,直至输入新的报文数据;
(7)程序采用C代码编写,不得使用外部库调用;
(8)程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理;
(9)未作规定处可自行处理,无明显与事实违背即可。
说明:请考生在考试结束前,按照如下要求提交相关文件:
(1)将程序放在一个文件夹中,并将文件夹命名为:DJKS5_身份证号;
(2)将程序文件夹压缩为1个“rar或zip”格式文件,大小5M以下;
(3)将程序文件通过“上传附件”按钮进行上传。
参考资料:
数组NUM[] 保存的是0~9和'.'十六进制形式的数码管显示的段位信息。编程时可参考使用。
// 保存0~9
byte NUM[] = {0xFC, 0x60, 0xDA, 0xF2, 0x66, 0xB6, 0xBE, 0xE0, 0xFE, 0xF6};
解析:【喵呜刷题小喵解析】:本题要求使用ESP32主控板、按键模块、四位数码管和74HC595移位寄存器芯片实现数字闪烁显示的功能。主要涉及到串口通讯、按键输入、数码管显示和移位寄存器的控制。程序的主要流程是:初始化硬件设备 -> 启动倒计时 -> 解析报文并显示 -> 串口通讯。在编程过程中,需要注意以下几点:1. 初始化硬件设备:包括ESP32的串口配置、按键模块的初始化、数码管和移位寄存器的初始化。2. 解析报文:需要按照指定的格式解析输入的报文,提取出要显示的数据和闪烁的时间间隔。3. 控制数码管显示:使用74HC595移位寄存器芯片控制四位数码管的显示,根据解析后的数据更新数码管的显示内容。4. 设置闪烁频率:根据输入的时间间隔设置数码管的闪烁频率。5. 串口通讯:将解析后的报文内容输出到串口监视器窗口,以便用户查看。在编写程序时,需要按照题目要求使用C语言编写,不得使用外部库调用。同时,需要注意程序的规范性和可读性,确保程序能够正确运行并满足题目的要求。
2、一、实操考题
主题:步进电机转动控制
器件:ESP32主控1块、步进电机1个、步进电机驱动器1个及相关器件,以上模块也可以采用分立器件结合面包板进行搭建。
任务要求:
步进电机转动控制主要模仿3D打印机的归零及G代码位置控制,具体任务要求如下:
(1)装置通电启动前,步进电机处于静止状态;
(2)当第一次触摸主控板电容触摸传感器时,步进电机逆时针转动;
(3)当第二次触摸该电容触摸传感器时,步进电机立即停止转动,板载LED灯点亮,该位置为零点位置;
(4)在串口监视器中输入字符串数据来控制步进电机的转动。字符串格式为:G00 XXXX,其中XXXX为基于零点位置顺时针方向对应的步数。当输入字符串并点击发送后,步进电机旋转指定步数后停止。步进电机的转动采用梯形加减速控制;
(5)将解析后字符串数据中的步数数据输出到串口监视器;
(6)通过输入字符串数据分别实现控制步进电机转动到半圆、整圆、以及零点位置后停止;
(7)当步进电机位于零点位置时,板载LED灯点亮,转动到其他位置时,板载LED灯熄灭;
(8)程序采用Arduino C/C++代码编写;
(9)未作规定处可自行处理,无明显与事实违背即可;
(10)程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理;
说明:请考生在考试结束前,按照如下要求提交相关文件:
(1)将程序放在一个文件夹中,并将文件夹命名为:DJKS6_身份证号;
(2)将程序文件夹压缩为1个“rar或zip”格式文件,大小5M以下;
(3)将程序文件通过“上传附件”按钮进行上传。
参考资料:
AccelStepper类库头文件和相关类库函数如下,供参考。
头文件:AccelStepper.h
类库对象:AccelStepper(mode, pin1,pin2,pin3,pin4)
成员函数:
setAcceleration(val); //设置步进电机转动时的加速度
setMaxSpeed(val); //设置步进电机转动的最大允许速度
setSpeed(val); //设置步进电机恒定转动时的速度值
runSpeed(); //启动步进电机以设定的速度值恒定转动
currentPosition(); //返回当前的位置值
moveTo(val); //设置步进电机运转的目标位置
run(); //启动步进电机按照设定的加速度和最大速度运转
setCurrentPosition(val); //设置当前位置为指定值
distanceToGo(val); //返回当前位置到目标位置之间的脉冲数
解析:【喵呜刷题小喵解析】:本题要求使用ESP32控制步进电机转动,模拟3D打印机的归零及G代码位置控制。首先,需要包含AccelStepper.h头文件,这是用于控制步进电机的库。然后,定义步进电机对象,设置步进电机的模式、引脚等参数。在`setup()`函数中,初始化串口,设置步进电机的加速度和最大速度,设置步进电机的初始位置,并设置LED灯的初始状态。在`loop()`函数中,检查串口输入,如果输入字符串为G00 XXXX格式,解析步数,控制步进电机转动到指定位置,并输出步数到串口。同时,检查触摸传感器是否被按下,如果是第一次按下,步进电机逆时针转动,等待步进电机停止后点亮LED灯;如果是第二次按下,步进电机停止,并点亮LED灯。程序使用Arduino C/C++代码编写,采用梯形加减速控制步进电机的转动。在编写程序时,需要注意控制步进电机的速度和位置,以及处理串口输入和触摸传感器输入。同时,需要将程序放在文件夹中,并压缩为rar或zip格式文件,大小不超过5M,上传到指定位置。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!