题库首页 › 青少年软件编程(机器人) › 题目 5413

主题:角度指示器 器件: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。

正确答案:参考实现(ESP32 C):角度指示器。电位器+步进电机+LED_A/B+SSD1306。电位器旋转控制步进-90~90°。电位器中间→0°LED全灭;最大→90°LED_A闪烁LED_B灭(0→90 LED_A渐亮);最小→-90°LED_B闪烁(0→-90 LED_B渐亮)。OLED显示电位器返回值--电机角度。步进梯形加减速。核心:电位器映射步进角度+LED渐变+OLED。

试卷来源:202106 青少年等级考试机器人实操真题六级

在线做题 同科目题库