实操任务:角度指示器
主题
角度指示器
器件
LED灯模块2个(分别为LED_A和LED_B)、电位器模块1个、SSD1306 OLED显示屏、步进电机及步进电机驱动器各1个及相应器件(也可使用分立器件结合面包板搭建)。
任务要求
-
通过电位器旋转控制步进电机的转动角度和LED灯的亮灭。
-
步进电机的转动角度范围:-90~90度。
-
将当前电位器的返回值和步进电机的当前角度显示在SSD1306 OLED显示屏上,显示格式为:电位器的返回值 -- 步进电机的当前角度值。
-
当电位器旋钮的处于中间位置时,步进电机处于0度位置,LED_A和LED_B均熄灭。
-
当电位器返回最大值时,步进电机旋转至90度位置,LED_A闪烁,LED_B熄灭。
-
当步进电机由0度旋转至90度时,LED_A由熄灭至最亮,LED_B熄灭。
-
当电位器返回最小值时,步进电机旋转至-90度位置,LED_B闪烁,LED_A熄灭。
-
当步进电机由0度旋转至-90度时,LED_B由熄灭至最亮,LED_A熄灭。
-
步进电机采用梯形加减速控制。
-
可在步进电机旋转轴粘贴胶带或其它方式,以便于观察步进电机的转动角度。
-
程序采用C代码编写。
-
未作规定处可自行处理,无明显与事实违背即可。
-
程序编写过程中不得打开库例程和其它程序,如发现,实操成绩按照0分处理。
说明
请考生在实操考试结束前,按如下要求提交程序文件。
-
将所有程序文件放在一个文件夹,并将文件夹命名为:DJKS6_身份证号;
-
将程序文件压缩为"rar或zip"格式,大小5M以下,1个文件;
-
将程序文件通过“上传附件”按钮进行上传。
参考资料
AccelStepper类库头文件和相关类库函数如下,供参考。
头文件:AccelStepper.h
类库对象:AccelStepper(mode, pin1,pin2,pin3,pin4)
成员函数:
setAcceleration(val); //设置步进电机转动时的加速度。
setMaxSpeed(val); //设置步进电机转动的最大允许速度。
setSpeed(val); //设置步进电机恒定转动时的速度值。
runSpeed(); //启动步进电机以设定的速度值恒定转动。
currentPosition(); //返回当前的位置值。
moveTo(val); //设置步进电机运转的目标位置。
run(); //启动步进电机按照设定的加速度和最大速度运转。
setCurrentPosition(val); //设置当前位置为指定值。
distanceToGo(val); //返回当前位置到目标位置之间的脉冲数。
Ssd1306Console类库头文件和相关类库函数如下,供参考。
头文件:ssd1306.h、ssd1306_console.h
类库对象:Ssd1306Console
部分成员函数:
ssd1306_128x64_i2c_init(); //初始化SSD1306显示屏。
ssd1306_clearScreen(); //清除屏幕。
ssd1306_setFixedFont(ssd1306xled_font6x8); //设置显示的字体为ssd1306xled_font6x8。 子题 填空题
请按上述要求完成实操任务