一、任务
设计并制作一个风板控制装置。该装置能通过控制风机的风量来控制风板完成规定动作,风板控制装置参考示意图见图 1。
二、要求
1.基本要求
(1)预置风板控制角度(控制角度在 45°~135°之间设定)。由起点开始启动装置,控制风板达到预置角度,过渡过程时间不大于 10s,控制角度误差不大于 5°,在预置角度上的稳定停留时间为 5s,误差不大于 1s。动作完成后风板平稳停留在终点位置上;
(2)在 45°~135°范围内预置两个角度值(Φ1 和 Φ2)。由终点开始启动装置,在 10s 内控制风板到达第一个预置角度上;然后到达第二个预置角度,在两个预置角度之间做 3 次摆动,摆动周期不大于 5s,摆动幅角误差不大于 5°,动作完成后风板平稳停留在起点位置上;
(3)显示风板设置的控制角度。风板从一个状态转变到另一个状态时应有明显的声光提示。
2.发挥部分
用细线绳将一个重量为 10g 物体(可以用 10g 砝码代替),拴在小长尾金属夹的尾端上,小长尾金属夹与重物的总长度不小于 50mm,并整体夹在图 1 所示风板对应位置上。
(1)预置风板控制角度(控制角度在 45°~135°之间设定)。由起点开始启动装置,控制风板达到预置角度,过渡过程时间不大于 15s,控制角度误差不大于 5°,在预置角度上的稳定停留时间 5s,误差不大于 1s,最后控制风板平稳停留在终点位置上;
(2)在 45°~135°范围内预置两个角度值(Φ1和 Φ2)。由终点开始启动装置,在 15s 内控制风板到达第一个预置角度上;然后到达第二个预置角度,在两个预置角度之间做 4 次摆动,摆动周期不大于 5s,摆动幅角误差不大于 5°,动作完成后风板平稳停留在起点位置上;
(3)其他。
三、说明
1. 给出的图 1 仅作参考,风板的外形尺寸要求为:高 150mm×宽 200mm,厚度和制作材料及风板支架的机械连接方式不做限定;风板上除安装风板转动轴、角度指示针和传感器外,不能安装其他任何装置;风机数量和控制风向方式可自行设计确定;可以设置风板起始位置、终点位置的限位装置,限定风板能在与水平线成 30°~150°的夹角内摆动;
2. 风板的运动状态,都要通过控制风机的风量来完成,不能受机械结构或其它外力的控制。控制角度误差为实测角度与预置角度之差的绝对值。风板由静止开始运动到规定控制角度的时间定义为过渡过程时间。风板从一个状态转变到另一个状态时应有明显的声光提示,声光提示只作为测评计时的参考,以现场实测数据为准。
GPT-4o给出的设计方案:
设计并制作一个风极控制装置,能够通过控制风机的风量来控制风板完成规定动作,实现精确的角度控制和定点停留功能。装置包括风极、风板、角度指示器、风机和风板重量砝码等。
风板及控制组件:
风机及风量控制:
控制系统:
重量砝码:
单角度控制:
双角度控制:
显示与报警:
主控程序
#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// 角度传感器和风机驱动引脚定义
#define ANGLE_SENSOR_PIN A0
#define FAN_PWM_PIN 9
#define TARGET_ANGLE_PIN A1
// 角度和风量定义
const int MIN_ANGLE = 45;
const int MAX_ANGLE = 135;
int targetAngle = 0;
Servo fan;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
pinMode(ANGLE_SENSOR_PIN, INPUT);
pinMode(TARGET_ANGLE_PIN, INPUT);
fan.attach(FAN_PWM_PIN);
lcd.begin();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Angle Control");
}
void loop() {
targetAngle = analogRead(TARGET_ANGLE_PIN) * (MAX_ANGLE - MIN_ANGLE) / 1023 + MIN_ANGLE;
int currentAngle = analogRead(ANGLE_SENSOR_PIN) * (MAX_ANGLE - MIN_ANGLE) / 1023 + MIN_ANGLE;
lcd.setCursor(0, 1);
lcd.print("Target: ");
lcd.print(targetAngle);
lcd.print(" Current: ");
lcd.print(currentAngle);
if (abs(targetAngle - currentAngle) > 5) {
int fanSpeed = map(abs(targetAngle - currentAngle), 0, 90, 0, 255);
fan.write(fanSpeed);
} else {
fan.write(0);
delay(5000); // 稳定停留5秒
}
delay(100);
}
单角控制测试:
双角控制测试:
负载测试:
显示与报警测试:
该设计方案确保风极控制装置能够实现精确的角度控制和定点停留,并有助于用户通过显示屏和报警提示了解当前装置状态。
本题目考察的主要知识点: