首页 > 其他分享 >基于STM32的多功能数控电源设计

基于STM32的多功能数控电源设计

时间:2024-10-23 21:52:44浏览次数:9  
标签:输出 过流 多功能 STM32 单片机 数控 电压 电流 ADC

基于STM32的多功能数控电源设计

摘要

本文介绍了基于STM32单片机的多功能数控电源设计。该电源具有输出电压和电流在一定区间内连续可调、实时显示参数、具备温度检测和过流保护功能等特点。采用STM32F103系列单片机作为核心控制器,通过模块化设计实现高精度调节、实时显示和安全保护。

引言

电源技术特别是稳压电源技术在工程技术方面使用性很强,在各个行业里得到了广泛的应用。数控电源是从20世纪80年代才真正发展起来的,系统的一些电力电子理论基础在那期间刚刚建立。随着电子技术的快速发展,数控直流电源在科研、教学和工业生产等领域的应用越来越广泛。为了满足现代电子设备对高精度、高稳定性直流电源的需求,本文设计了一款基于STM32单片机的多功能数控电源。

1. 总体方案设计

1.1 数控稳压电源原理

本设计以高性能单片机作为核心控制器,设计了AD电压电流检测电路、驱动电路、人机交互,MOS管电路为数控稳压电源主电路。检测电路为电压、电流值反馈回路,通过A/D采集到单片机,与预置值进行比较,作为单片机进一步调节PWM占空比的依据,单片机输出DA信号,通过控制电路控制MOS管的导通和关断时间,来获得实际所需的电压、电流值。

1.2 系统硬件设计
  1. 单片机控制电路:以STM32F103ZET6单片机作为该数控稳压电源的控制芯片,该芯片是32位基于ARM核心的带512K字节闪存的微控制器。

  2. 电压电流控制电路:选择型号为IRFP460的N-MOS作为主电路开关元件,驱动电路采用由两个小功率的NPN和PNP三极管组成的射极跟随器,通过光耦TLP521实现单片机对MOS管的直接控制,同时起到信号隔离作用。

  3. 电压控制电路:采用TL072低噪声、轨到轨、高输入阻抗的双运算放大器,构成差分运算电路,将输出电压衰减后送给单片机进行AD采样,并通过比较电路控制MOS管驱动电路,实现电压的精确控制。

  4. 电流控制电路:同样采用TL072运算放大器,通过电流采样电阻将电流值转化为电压值,再经过放大、滤波后送给单片机进行AD采样,通过比较电路控制MOS管驱动电路,实现电流的精确控制。

  5. 供电电路:整机供电变压器使用带5组绕组的大功率环牛,主绕组为6V、8V、16V、24V,副绕组为双12V。主输出电压切换使用4个继电器,继电器用ULN2803来驱动。

1.3 软件设计

系统上电后,首先进行初始化操作,包括配置单片机的输入输出端口、设置ADC和DAC的参数等。单片机通过ADC接口读取电源的输出电压和电流等参数,并进行数据处理和逻辑判断。根据用户通过按键设置的电压和电流值,控制DAC输出相应的模拟信号,调节电源的输出电压和电流。液晶显示模块采用LCD1602液晶显示屏实时显示输出电压和电流等参数。同时,通过温度传感器和过流检测电路实时监测电源的工作状态,当温度过高或电流过大时,单片机自动切断电源输出,并通过液晶显示屏显示相应的报警信息。

2. 功能特点

  1. 输出电压:范围0V~30V,输入交流220V,通过变压器将220V市电降至安全电压内。
  2. 恒压模式步进:短按0.1V,长按1V,纹波30mV。
  3. 最大输出电流:1.5A。
  4. 液晶显示:采用LCD1602液晶显示屏实时显示输出电压和电流等参数。
  5. 按键控制:通过“加、减”两键控制输出电压步进增减。
  6. 温度检测:关键器件温度检测,超过60度声光报警。
  7. 过流保护:具有输出过流保护,过流值大小通过电位器可调。
  8. 恒流输出和恒压输出:具有恒流输出和恒压输出两种模式,按键切换。

3. 系统调试与优化

在系统硬件和软件设计完成后,进行了系统的调试与优化。硬件调试主要包括各模块电路的测试与调整,确保各模块正常工作。软件调试主要包括数据采集与处理、液晶显示控制、温度检测和过流保护等功能的测试与优化,确保系统能够稳定运行。

结论

基于STM32的多功能数控电源设计,采用STM32F103系列单片机作为核心控制器,通过模块化设计实现了高精度调节、实时显示和安全保护等功能。该电源具有输出电压和电流在一定区间内连续可调、实时显示参数、具备温度检测和过流保护功能等特点,能够满足现代电子设备对高精度、高稳定性直流电源的需求。

通过系统调试与优化,验证了设计的可行性和可靠性。该设计不仅具有广泛的应用前景,也为后续的研究提供了参考和借鉴。

参考文献

[此处列出参考文献]


本文详细阐述了基于STM32的多功能数控电源设计的整体方案、硬件设计、软件设计以及功能特点,通过系统调试与优化验证了设计的可行性和可靠性。该设计具有广泛的应用前景,并为后续的研究提供了参考和借鉴。

项目概述

本项目旨在设计一款基于STM32的多功能数控电源,具有电压和电流的可调输出、实时显示、温度监测以及过流保护等功能。我们将使用STM32F103系列单片机作为核心控制器,结合ADC(模数转换)、DAC(数模转换)、LCD显示、按键输入、温度传感器以及过流检测等模块来实现这些功能。

硬件连接

  1. STM32F103单片机:作为核心控制器,负责数据处理和控制逻辑。
  2. ADC:用于采集输出电压和电流,以及温度传感器的数据。
  3. DAC:用于生成控制电压,调节电源输出。
  4. LCD显示:实时显示输出电压、电流和温度等信息。
  5. 按键输入:用于设置输出电压和电流的值,以及切换工作模式。
  6. 温度传感器:监测电源内部温度,防止过热。
  7. 过流检测:通过电流传感器监测输出电流,防止过流损坏电源。

代码框架

1. 初始化
void System_Init(void) {  
    // 初始化系统时钟  
    SystemInit();  
      
    // 初始化GPIO  
    GPIO_Config();  
      
    // 初始化ADC  
    ADC_Init();  
      
    // 初始化DAC  
    DAC_Init();  
      
    // 初始化LCD显示  
    LCD_Init();  
      
    // 初始化按键输入  
    Key_Init();  
      
    // 其他初始化(如定时器、中断等)  
    // ...  
}
2. ADC采集
uint16_t ADC_GetValue(ADC_TypeDef* ADCx, uint16_t Channel) {  
    // 启动ADC转换,并等待转换完成  
    // 读取ADC转换结果  
    // 返回转换结果  
    return ADC_ConvertedValue;  
}
3. DAC输出
void DAC_SetValue(DAC_TypeDef* DACx, uint16_t Value) {  
    // 设置DAC输出值  
    // 启动DAC转换  
}
4. LCD显示
void LCD_Display(float Voltage, float Current, float Temperature) {  
    // 将电压、电流和温度转换为字符串  
    // 在LCD上显示这些字符串  
}
5. 按键处理
void Key_Scan(void) {  
    // 扫描按键状态  
    // 根据按键状态执行相应的操作(如设置电压、电流值,切换工作模式等)  
}
6. 温度监测与过流保护
void Monitor_Temperature_And_Overcurrent(void) {  
    // 读取温度传感器的值  
    uint16_t TempSensorValue = ADC_GetValue(ADC1, TEMP_SENSOR_CHANNEL);  
      
    // 将温度传感器的值转换为实际温度  
    float Temperature = ConvertTempSensorValueToTemp(TempSensorValue);  
      
    // 判断是否过热,如果过热则执行保护措施(如关闭输出)  
    if (Temperature > MAX_TEMPERATURE) {  
        // 执行过热保护措施  
    }  
      
    // 读取电流传感器的值  
    uint16_t CurrentSensorValue = ADC_GetValue(ADC1, CURRENT_SENSOR_CHANNEL);  
      
    // 将电流传感器的值转换为实际电流  
    float Current = ConvertCurrentSensorValueToCurrent(CurrentSensorValue);  
      
    // 判断是否过流,如果过流则执行保护措施(如关闭输出)  
    if (Current > MAX_CURRENT) {  
        // 执行过流保护措施  
    }  
}

主程序

int main(void) {  
    // 初始化系统  
    System_Init();  
      
    // 主循环  
    while (1) {  
        // 读取电压和电流值  
        float Voltage = ConvertADCValueToVoltage(ADC_GetValue(ADC1, VOLTAGE_CHANNEL));  
        float Current = ConvertADCValueToCurrent(ADC_GetValue(ADC1, CURRENT_CHANNEL));  
          
        // 监测温度和过流  
        Monitor_Temperature_And_Overcurrent();  
          
        // 显示电压、电流和温度  
        LCD_Display(Voltage, Current, /*Temperature from Monitor function*/);  
          
        // 处理按键输入  
        Key_Scan();  
          
        // 根据需要调节DAC输出值以控制电源输出  
        // ...  
          
        // 延时一段时间(如100ms)  
        Delay_ms(100);  
    }  
}

注意事项

  1. 库函数:在实际开发中,你需要使用STM32的HAL库或标准外设库来初始化和管理硬件外设。
  2. 转换函数ConvertADCValueToVoltageConvertADCValueToCurrentConvertTempSensorValueToTempConvertCurrentSensorValueToCurrent等函数需要根据你的硬件连接和传感器特性进行实现。
  3. 保护机制:在过热和过流保护中,你需要确保电源能够安全地关闭输出,并可能需要设置一些恢复机制。
  4. 实时性:由于电源控制需要较高的实时性,你可能需要使用中断或定时器来定期读取ADC值和处理按键输入。
  5. 校准:在实际应用中,你可能需要对ADC和DAC进行校准,以确保测量的准确性和输出的稳定性。

请根据你的具体硬件和需求,在上述框架的基础上进行详细实现。

标签:输出,过流,多功能,STM32,单片机,数控,电压,电流,ADC
From: https://blog.csdn.net/qq_58404700/article/details/143194686

相关文章

  • stm32入门教程--UART协议详解
    目录简介UART串口协议串行通信并行通信串行通信与并行通信的区别单工通信半双工全双工同步和异步的区别UART帧结构简介STM32是意法半导体公司推出的一款32位ARMCortex-M系列微控制器。UART、SPI和I2C是STM32中常用的串行通信协议。UART(通用异步收发器):UART是一......
  • STM32中U8, U16 ,U32啥意思
    1.unsigned int 32 (C语言标准表达方法)        2.uint32_t ;            3.u32;  这三种方式都是在表达同一个意思。可为什么ST的开发人员要搞的这么乱呢? 其实ST 搞这么多花样,无非是想开发人员在写代码时定义数据类型能少写几个符号,然后又因为前后版本......
  • STM32基于CubeMX与Simulink的模块开发——Keil相结合(未解决)
    说明将Simulink和外置IDE结合起来,是方便习惯了代码开发的同学能更清晰和舒服的调试参考资料:Simulink自动代码生成电机控制:基于Keil软件集成-CSDN博客STM32CubeMX、keil、simulink联合开发MCU教程_simulinkinvalidindex-CSDN博客【Clion/keil+CubeMX+simulink模型化......
  • 数控机床导轨主要有几种?
    数控机床导轨的种类多样,根据不同的分类标准,可以划分为多种类型。一、按摩擦性质分类1、滑动导轨:两导轨面间的摩擦性质是滑动摩擦,大多处于边界摩擦或混合摩擦的状态,适用于低速、低负荷的数控机床,其结构简单,接触刚度高,阻尼大和抗振性好,但起动摩擦力大,低速运动时易爬行,摩擦表面易磨损,......
  • 64MHz - STM32WB06CCV6 STM32WB06CCV7 STM32WB06KCV6 STM32WB06KCV7无线MCU支持蓝牙®
    STM32WB0x蓝牙®低功耗5.432位MCU采用紧凑、节能的设计,可实现可靠的无线性能。STM32WB06MCU基于运行频率为64MHz的Arm®Cortex®-M0+内核,具有高达256Kb的闪存和32Kb的RAM。STM32WB06通过蓝牙®低功耗5.4认证,具有同类最佳的功耗、无线电和低功耗特性,非常适合用于成本和能......
  • STM32蓝牙插座项目(hal)
    这是一个非常简单的蓝牙小项目项目要求,能够在手机上发送开启闸门时,继电器相应的打开,在手机上发送关闭闸门时,继电器相应关闭,且在开始时,发送“hello,帅气的雷先生”使用PIN脚:蓝牙:RX2TXDTX2RXDGNDGND5V5V继电器:PB6INGNDGND3.3VVCC 代码实现:1、串口蓝牙通信我们这里的蓝牙......
  • STM32 第16章STM32中断应用概览
    时间:2024.10.23一、学习内容1.异常类型1.1中断简介STM32中断非常强大,每个外设都可以产生中断,因此中断是一个公共的部分。在本章讨论中,如无特别说明,异常就是中断,中断就是异常。1.2中断类型系统异常,体现在内核水平(Cortex-M3)外部中断,体现在外设水平有关系统异常和中断的......
  • STM32第15章 RCC-使用HSE/HSI配置时钟
    时间:2024.10.21-10.23参考资料:《零死角玩转STM32》“RCC-使用HSE/HIS配置时钟”章节TIPS:从前面的历程中我们知道,程序在启动的时候会执行汇编文件,汇编文件里会调用System_Init(固件库编程的函数),它里面会把时钟初始化成72M,因此前面我们在用固件库写程序的时候,有关时钟这一部......
  • 【触想智能】工业一体机在数控设备上应用的要求分析
    工业一体机是一种集成了计算机、运动控制、人机界面和各种输入输出接口的设备。它广泛应用于数控设备,如数控机床、机器人、自动化生产线等。触想工业一体机TPC-W400系列在数控设备上应用工业一体机可以提高生产效率、降低成本和改善生产质量,但是你知道工业一体机在......
  • 2024上门家政服务系统优势?如何去开发一个多功能线上服务系统?
    搭建前的准备需求分析:明确陪玩系统的目标用户群体(如游戏玩家、技能服务需求者等)。确定系统需要支持的功能(如用户注册与管理、陪玩者资料展示、预约与匹配、实时通讯、支付与结算、评价与反馈等)。技术选型: 前端:可以采用ReactNative、Flutter等跨平台框架,以确保在不同操......