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