一、实操题
1、主题:通过串口控制步进电机转动
器件:ESP32主控、步进电机控制器、步进电机、LED灯2个等相关元器件。
要求:
1、通过串口监视器控制步进电机转动的位置。使用两个LED灯(LED_A和LED_B),
指示转动的方向。
2、系统通电后,步进电机的当前位置为初始零位。串口监视器出现“Inputnew
position:”的提示。
3、在串口监视器输入框中输入数值1024,点击【发送】。此时步进电机转动半周
后停止。转动过程中,串口监视器实时显示步进电机转动过程中当前的位置数值,LED_A
点亮,LED_B熄灭。
4、在串口监视器输入框中输入输入数值-1024,点击【发送】。此时步进电机反向
转动一周后停止。转动过程中,串口监视器实时显示步进电机转动过程中当前的位置
数值,LED_A熄灭,LED_B点亮。
5、当步进电机旋转到指定位置后,LED_A和LED_B均熄灭,串口监视器窗口显示
“End”和“Inputnewposition:”的提示。
6、程序中使用步进电机类库AccelStepper通过梯形加减速来控制步进电机的转
动。控制程序采用C/C++代码编写。
7、为了方便识别步进电机旋转,可以将车轮或纸片固定在马达转轴上。
8、未作规定处可自行处理,无明显与事实违背即可。
9、编写程序文件命名规则为:DJKS6_身份证号,考试完毕拷贝上交备案。
10、程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理。
参考答案:
略
解析:【喵呜刷题小喵解析】该代码基于Arduino平台,使用C/C++语言编写。代码的主要功能是通过串口控制步进电机的转动,并使用两个LED灯指示转动的方向。1. 首先,通过`SoftwareSerial`库定义了一个软件串口,用于与电脑进行串口通讯。2. 然后,使用`AccelStepper`库定义了一个步进电机对象,用于控制步进电机的转动。3. 定义了两个LED灯,用于指示步进电机的转动方向。4. 在`setup()`函数中,初始化串口、步进电机和LED灯。5. 在`loop()`函数中,不断读取串口输入,根据输入值控制步进电机的转动。如果输入值大于0,则步进电机正向转动,LED_A点亮,LED_B熄灭;如果输入值小于0,则步进电机反向转动,LED_A熄灭,LED_B点亮。6. 在步进电机转动过程中,实时更新步进电机的位置,并在到达目标位置后熄灭两个LED灯,并在串口显示“End”和“Input new position:”的提示。该代码实现了题目要求的功能,并且使用了梯形加减速来控制步进电机的转动。在编写程序时,需要注意代码的命名规范和注释,以便于理解和维护。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!