【毕设】基于单片机的开关电源设计(源码+电路图+全套资料+说明文档)

这篇具有很好参考价值的文章主要介绍了【毕设】基于单片机的开关电源设计(源码+电路图+全套资料+说明文档)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

主要内容

本内容是基于单片机的开关电源设计
包含:
1 设计源码
2 电路图
3 配套程序
4 全套说明资料
(私聊获取资料)

方案分析

选用STM32F407单片机作为控制芯片,前段整流部分使用直流电源给入,主控电路输出PWM波信号,即稳定的电压值,经增强驱动力后,再经BUCK电路输出需要的电压电流值,这些电压电流值经ADC转换电路发送给主控电路,在电路系统中构成电压,电流反馈系统。最后在液晶屏显示实时数据。按键电路信息直接发给主控电路,主控电路做出反应,达到按键调节的数据。

系统整体结构

单片机电源控制,单片机,stm32,嵌入式硬件
通过按键控制单片机输出PWM,由此即可控制BUCK电路的电压。本电路由单片机最小系统电路、IR2104驱动电路,整流滤波电路、BUCK降压稳压电路、按键电路、液晶显示电路、电压电流检测电路等组成。

电路原理介绍

典型BUCK电路如图2所示。
单片机电源控制,单片机,stm32,嵌入式硬件

图2 BUCK电路拓扑
图中的T就是一个开关管,可以把电流看成水流,通过不停的开关水闸,水的流量就会有很大的变化,同理,电流在这个电路里也会有很大的变化。
开关电源电压调节和线性电源的电压调节的基本原理是面积等效原理,即脉冲相同,形状不同的脉冲应用于惯性环节,效果基本相同,当想要从电源10V中获取5V的输出电压时,把10V的电压分成5个部分看,5V所占的面积大概在1/2,当PWM方波的占空比为50%时,所得到的电压就是5V,在电路的后面加上滤波电容,是电压输出的波纹变低。等效面积图如图3所示。
单片机电源控制,单片机,stm32,嵌入式硬件

图3 BUCK等效面积图
BUCK电路中的开关管闭合时,输出的电压Vin流过电感对电容进行充电并储藏电能在电感中,同时还提供着负载所需要的能量。
当开关T断开时,电感的电流不会消失而是继续给电容提供能量,继续为负载供电,这样就可以通过对电感充电的多少来控制电压。
接下来我们说下PWM波形,通过控制T2的长度就可以控制电压了,就是所谓的方波占空比,BUCK开关信号波形如图4所示。
单片机电源控制,单片机,stm32,嵌入式硬件

图4 BUCK开关信号波形

通过实时监测输出端的电压变化,反馈给单片机,单片机调整PWM方波的占空比即可达到稳定输出电压的目的,系统降压工作如图5所示.
单片机电源控制,单片机,stm32,嵌入式硬件

图5 系统降压工作原理

硬件电路图

单片机电源控制,单片机,stm32,嵌入式硬件

私聊获取各模块电路说明

主程序流程图

主程序为PWM发生和电压即电流检测,本设计所使用的STM32F407的单片机内部自带了PWM发生引脚,频率高达72kHZ,使用时先写出PWM初始化程序,电源设计中所使用的控制方式为按键控制,显示方式是OLED液晶屏显示,软件中还要初始化液晶屏和PWM。
单片机电源控制,单片机,stm32,嵌入式硬件

源程序关键代码

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "pwm.h"
#include "exti.h"
#include "OLED_I2C.h"
#include "string.h"
#include "stdlib.h"
#include "stdio.h"
#include "adc.h"
//全局变量定义区
char  buf[20];//缓存数组
int pwmval=1000;
float cs;
u16 adcx;

void System_SoftReset(void)
{
 __set_FAULTMASK(1); //关闭所有中断
 NVIC_SystemReset(); //复位
}
float volt,ys_vol=5.0;
int Alot;



int main(void)
{   
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
    delay_init(168);//初始化延时函数

    OLED_Init();//OLED初始化
    OLED_Clear();//清屏
  KEY_Init();
    LED_Init();//GPIO初始化
    Adc_Init();         //初始化ADC
    uart_init(9600);//初始化串口波特率为115200
    TIM_PWM_Init(1000,4);//PWM初始化
    PID_init();//PID初始化
    SD=0;
    sprintf(buf,"预设:%.1fV ",ys_vol);
    OLED_ShowCH(0,0,buf);   
    OLED_ShowCH(0,6,"状态:暂停");   
   while(1) //
    {
  adcx=Get_Adc_Average(ADC_Channel_5,20);//获取通道5的转换值,20次取平均
    volt=adcx/203.5;
    adcx=Get_Adc_Average(ADC_Channel_6,20);//获取通道5的转换值,20次取平均
    if(adcx<20){adcx=0;}
    Alot=adcx/4;
    if(Alot<20){Alot=0;}
    sprintf(buf,"电压:%.1fV ",volt);
    OLED_ShowCH(0,2,buf);    
    sprintf(buf,"电流:%dmA  ",Alot);
    OLED_ShowCH(0,4,buf);   

    if(KEY0==0){
            SD=!SD;
            if(SD){
                OLED_ShowCH(0,6,"状态:启动");   
            }else{
              OLED_ShowCH(0,6,"状态:暂停"); 
            }
            while(KEY0==0);
    }
    if(KEY1==0){
        ys_vol-=0.1;
        if(ys_vol<0){ys_vol=0;}
        sprintf(buf,"预设:%.1fV ",ys_vol);
      OLED_ShowCH(0,0,buf);
    }
    if(KEY2==0){
      ys_vol+=0.1;if(ys_vol>12.0){ys_vol=12.0;}
        sprintf(buf,"预设:%.1fV ",ys_vol);
      OLED_ShowCH(0,0,buf);
    }
    
    
         if(SD==1){
            pwmval-=PID_realize(ys_vol,volt);if(pwmval<1){pwmval=1;}if(pwmval>999){pwmval=999;}//PID控制输出5V
          }
      TIM_SetCompare4(TIM2,pwmval);
        LED0=!LED0;
    }
}



var foo = 'bar';

实物焊接

单片机电源控制,单片机,stm32,嵌入式硬件
私聊获取全套资料~文章来源地址https://www.toymoban.com/news/detail-809924.html

到了这里,关于【毕设】基于单片机的开关电源设计(源码+电路图+全套资料+说明文档)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开关电源测试项目大解密:如何成为合格的开关电源

    开关电源作为重要的电源供应器,在其研发生产过程中对质量的把控是非常严格的。为了保证开关电源的质量和性能,开关电源测试贯穿研发、生产的始终。那么一个合格的开关电源需要经过哪些测试呢? 一、常规功能测试 1. 过压保护 2. 短路保护 3. 过流保护 4. 过功率保护

    2024年03月22日
    浏览(45)
  • 单片机毕设 基于单片机的智能快递柜设计与实现

    Hi,大家好,这里是丹成学长,今天向大家介绍一个 单片机项目 基于单片机的智能快递柜设计与实现 大家可用于 课程设计 或 毕业设计 🧿 毕设项目分享:见文末! 一般来说,传统快递服务方式是人对人,即快递员进行揽件派送,与签收人进行面对面签收,确认无误后服务终

    2024年04月09日
    浏览(56)
  • DC/DC开关电源学习笔记(一)开关电源技术概述

    开关模式电源(Switch Mode Power Supply,简称SMPS),又称交换式电源、开关变换器,是一种高频化电能转换装置,是电源供应器的一种。其功能是将一个位准的电压,透过不同形式的架构转换为用户端所需求的电压或电流。开关电源的输入多半是交流电源(例如市电)或是直流电

    2024年02月11日
    浏览(45)
  • DC/DC开关电源学习笔记(二)开关电源的分类

    根据变换方式,电源产品有下列四大类; (1):第一大类:AC/DC开关电源; (2):第二大类:DC/DC开关电源; (3):第三大类:DC/AC开关电源; (4):第四大类:AC/AC开关电源。 鉴于传统,目前只将前两类称为开关电源,而将后两类分别称为逆变器和变频器。 在国内,还

    2024年02月10日
    浏览(52)
  • 【电源】开关电源工作原理

    1.开关电源的定义 输入交流电压(AC)经由整流滤波以后可获得一高压的直流电压(DC=1.4AC),此电压接入交换元件当做开关使用在20KHZ~100KHZ的高频状态。这时直流高压会被切割成高频的方波信号,这个方波信号经由功率隔离变压器,在二次侧可以获得事先所设定的电压值,然

    2024年02月21日
    浏览(59)
  • 线性电源,开关电源

    稳压器是这样一种电路: 无论输入电压或负载条件如何变化,它都能产生并保持固定的输出电压。 稳压器(VR)将来自电源的电压保持在其他电气组件相容的范围之内。它最常用 于DC / DC电源转 换,但有些也可用于AC / AC或AC / DC电源转换。本文将重点介绍DC / DC稳压器。 稳压

    2024年02月16日
    浏览(45)
  • 单片机毕设 基于单片机的火灾报警系统设计与实现

    Hi,大家好,学长今天向大家介绍一个 单片机项目 基于单片机的火灾报警系统设计与实现 大家可用于 课程设计 或 毕业设计 火灾是指在时间或空间上失去控制的燃烧所造成的灾害。在各种灾害中,火灾是最经常、最普遍地威胁公众安全和社会发展的主要灾害之一。人类能够

    2024年02月02日
    浏览(58)
  • 基于51单片机交通灯带紧急开关+黄灯倒计时+可调时间

    仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J000 功能说明: 采用51单片机以及单片机最小系统和三极管驱动电路以及外围的按键和数码管显示等部件,设计一个基于单片机的交通灯设计。 1.四路交通灯,带有红绿灯倒计时,绿灯倒计时结束后转黄灯

    2024年02月06日
    浏览(46)
  • 【电源设计】13开关电源仿真与应用

    本章主要是大概了解一下开关电源仿真与应用,开关电源仿真设计全过程:包括需求分析/控制/PWM。 因为本人并不是专门做电源的,此部分内容仅作了解,并不专门去学习。 便携式储能逆变器 指标 规格介绍: 输入电压:19.6~29.4V 输出范围:100 ~ 120VAC//60HZ 输出指标:Vthd 5%

    2024年02月06日
    浏览(41)
  • 【开关电源三】电源拓扑之正激

    👉个人主页: highman110 👉作者简介:一名硬件工程师,持续学习,不断记录,保持思考,输出干货内容 目录 1.1 正激电路演变 1.2 正激电路工作原理 1.2.1连续电流模式 1.2.2断续电流模式        前文我们分享了常用隔离DCDC中的反激变换器。本文继续分享另一款隔离型的DC

    2024年01月22日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包