一、实操考题(共1题,共100分)
                
1) 主题:电位器控制直流电机转动
 器件:ESP32主控、码盘、光电对管、SSD1306 OLED显示屏、按键模块、直流电机驱动模块、直流电机、电位器。
 要求:
 (1)通过按键控制电机启停。当按键模块按下后,电机开始转动;当再次按下按键模块,直流电机转动停止。
 (2)通过电位器控制电机的转动范围,直流电机在转动范围内正反循环转动。
 (3)当电位器位于一侧端部时,直流电机的循环转动范围是0°~180°;当电位器位于另一侧端部时,直流电机的循环转动范围是0°~360°;当电位器位于两端中间位置时,直流电机在相应的转动范围内正反循环转动。
 (4)正反循环转动是指当马达旋转至转动范围的上限或下限时,停止并反向转动。
 (5)通过码盘和光电对管模块,采用中断控制直流电机的旋转位置。
 (6)将光电对管读取的码盘读数实时显示到OLED显示屏上。
 (7)控制程序采用C代码编写。
 (8)SSD1306 OLED显示屏可使用教材对应的库,其它程序编写均不得使用外部库调用。
 (9)直流电机、码盘及光电对管需有效固定。
 (10)为了方便展示效果,可知直流电机轴上安装车轮或其它标志物。
 (11)未作规定处可自行处理,无明显与事实违背即可。
 说明:
 请考生在考试结束前,按如下要求提交程序文件
 (1) 将所有程序放在一个文件夹,并将文件夹命名为:DJKS6_身份证号;
 (2) 将程序文件压缩为1个文件,“rar或zip”格式,大小5M以下;
 (3) 将程序文件通过“上传附件”按钮进行上传。
 参考资料
 Ssd1306Console类库头文件和相关类库函数如下,供参考。
 头文件:ssd1306.h; ssd1306_console.h
 类库对象: Ssd1306Console
 部分成员函数:
 ssd1306_128x64_i2c_init();  //初始化SSD1306显示屏
 ssd1306_clearScreen();  //清除屏幕
 ssd1306_setFixedFont(ssd1306xled_font6x8); //设置显示的文字字体
 Ssd1306Console.println(); //输出内容到SSD1306显示屏
查看答案