一、任务
设计并制作数控直流电流源。输入交流 200~240V,50Hz;输出直流电压≤10V。其原理示意图如下所示。
二、要求
1、基本要求
(1)输出电流范围:200mA~2000mA;
(2)可设置并显示输出电流给定值,要求输出电流与给定值偏差的绝对值≤给定值的1%+10 mA;
(3)具有“+”、“-”步进调整功能,步进≤10mA;
(4)改变负载电阻,输出电压在 10V 以内变化时,要求输出电流变化的绝对值≤输出电流值的 1%+10 mA;
(5)纹波电流≤2mA;
(6)自制电源。
2、发挥部分
(1)输出电流范围为 20mA~2000mA,步进 1mA;
(2)设计、制作测量并显示输出电流的装置 (可同时或交替显示电流的给定值和实测值),测量误差的绝对值≤测量值的 0.1%+3 个字;
(3)改变负载电阻,输出电压在 10V 以内变化时,要求输出电流变化的绝对值≤输出电流值的 0.1%+1 mA;
(4)纹波电流≤0.2mA;
(5)其他。
三、说明
1、需留出输出电流和电压测量端子;
2、输出电流可用高精度电流表测量;如果没有高精度电流表,可在采样电阻上测量电压换算成电流;
3、纹波电流的测量可用低频毫伏表测量输出纹波电压,换算成纹波电流。
GPT-4o给出的设计方案:
电流输出控制
测量与反馈
用户交互
通过精密可调电流源结合高精度电流采样和闭环反馈控制,保证电流输出的高精度和稳定性。MCU控制和用户交互模块提供灵活的电流调节与显示功能,使系统具有较高的实用性和易用性。
输出电流范围
输出电流精度
电流稳定性
纹波电流
电源管理
电流源与放大器
控制与显示
LT3080精密可调电流源
INA219高精度电流检测器
STM32 MCU
以下是一个实现基本电流控制和电流测量反馈的示例代码:
#include "stm32f1xx_hal.h"
#include "ina219.h"
#include "lcd.h"
// DAC输出引脚配置
#define DAC_OUT_PIN GPIO_PIN_4
// 目标电流值
uint16_t target_current_mA = 500;
void setup() {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_DAC_Init();
MX_I2C_Init();
LCD_Init();
INA219_Init();
DAC_SetValue(DAC_OUT_PIN, 0); // 初始化设定电流为0
LCD_DisplayString("Initializing...");
}
void set_current(uint16_t current_mA) {
uint16_t dac_value = current_mA / 10; // DAC输出与电流值的关系,根据具体电路调整
DAC_SetValue(DAC_OUT_PIN, dac_value);
}
void loop() {
while (1) {
uint16_t measured_current = INA219_GetCurrent_mA();
LCD_SetCursor(0, 0);
LCD_Printf("Set: %dmA", target_current_mA);
LCD_SetCursor(1, 0);
LCD_Printf("Measured: %dmA", measured_current);
if (measured_current < target_current_mA) {
target_current_mA += 10;
} else if (measured_current > target_current_mA) {
target_current_mA -= 10;
}
set_current(target_current_mA);
HAL_Delay(500); // 调整间隔时间
}
}
int main(void) {
setup();
loop();
}
本题考察的主要知识点:
本题考察了设计并制作一个数据控制直流电流源的能力,涉及以下核心知识点:
本题全面考察了硬件设计和控制系统的多方面能力,涉及电路设计、精密测量以及用户界面交互等知识点。设计的稳定性和精度是系统成功的关键,步进控制和反馈机制可提升系统整体性能。