一、实操考题 主题:模拟摆头风扇 器件:ATmega328控制板1个,电位器模块1个, 按键模块1个, LED灯模块1个,舵机1个,电机1个,结构件若干(也可使用普通电子元器件结合面包板搭建)。 任务要求: (1)本项目由电位器、按键、LED灯、舵机及电机组成,模拟摆头风扇效果; (2)控制板上电,LED灯保持熄灭状态,舵机角度为0度,电机不转动; (3)按下按键(按下后手从按键上松开),装置执行(4)~(7)条所描述的任务。 (4)舵机角度在30~150度之间反复摆动,模拟风扇摆头装置; (5)电机开始转动,模拟风扇开始工作; (6)LED灯保持点亮状态,模拟风扇指示灯; (7)旋转电位器调节电机的转速,模拟风扇调节器; (8)再次按下按键,舵机转到0度,LED灯熄灭,电机停止转动; (9)可使用任意结构件搭建,建议根据以上要求搭建风扇模型(模型结构便于评分时作品的展示,但不作为计分项目); (10)电机程序不可使用库函数; (11)未作规定处可自行处理,无明显与事实违背即可。 说明:请考生在考试结束前,按照如下要求提交相关文件: (1)将程序放在一个文件夹中,并将文件夹命名为:DJKS4_身份证号; (2)将程序文件夹压缩为1个“rar或zip”格式文件,大小5M以下; (3)将程序文件通过“上传附件”按钮进行上传。
【喵呜刷题小喵解析】本题要求模拟摆头风扇的效果,使用ATmega328控制板、电位器模块、按键模块、LED灯模块、舵机和电机。由于控制板没有特定库函数可用,需要使用裸机编程,代码实现较复杂。代码中首先定义了引脚、变量等。`setup()`函数中进行了引脚模式的设置。在`loop()`函数中,使用`digitalRead()`函数读取按键值,如果按键被按下,则根据风扇是否开启进行不同的操作。风扇开启时,设置舵机角度为0度,开启LED灯,开启风扇,并使用电位器调节风扇转速。风扇关闭时,设置舵机角度为0度,关闭LED灯,关闭风扇。舵机角度的读取和设置使用了`servo.read()`和`servo.write()`函数。电位器值的读取使用了`analogRead()`函数。风扇转速的调节使用了`map()`函数将电位器值映射到风扇转速。在代码中,使用了一个舵机对象`servo`,并在`servoSetup()`函数中将其与数字引脚绑定。在`setup()`函数中调用了`servoSetup()`函数进行舵机对象的初始化。以上代码只是一个示例,由于控制板没有特定库函数可用,实际编程需要根据控制板的寄存器和引脚进行操作,实现较为复杂。因此,本题需要考生具备一定的电子技术和编程基础,理解电路原理,熟悉控制板的寄存器和引脚操作,以及掌握C语言编程技巧。