电磁炮设计

news2024/11/16 7:33:41

视频链接:

电磁炮视频

项目简介

    这个项目电磁炮主要是,测试电磁炮原理部分的简易制作,对原理有初步认识,升压电路采用的是boost电路,IGBT作为开关管,电解电容作为储能元件。

项目功能

    本设计是基于STM32F407单片机设计的电磁炮;设置有两个独立按键,功能分别为子弹发射,复位重置。电源开关按下时,STM32开始工作,boost升压电路供给60V电压。当拨码开关开启时60V电压给电容充电。充电大约10s后断开拨码开关后才可按下按键发射子弹。实现简易的单片机控制发射功能。

项目参数

此处可填写项目的相关功能参数介绍,示例:

  • 本设计采用STM32F407作为控制部分;
  • 本设计采用LGS6302B5,Legend-Si(棱晶半导体)芯片作为boost电路60V供电芯片;
  • 本设计采用MP2225GJ-Z buck电路芯片供给5V电源;
  • 本设计采用MP2225GJ-Z buck电路芯片供给3.3V电源;
  • 本设计采用PC817C光耦芯片进行控制电路与发射电路电压隔离;
  • 发射电路导通器件采用的是IGBT(FGH60N60SMD)onsemi(安森美)

原理解析(硬件说明)

整体设计的关键部分分为3部分,升压电路部分,降压电路部分,控制电路部分。

在这里插入图片描述

1–boost_60V升压电路

在这里插入图片描述
在这里插入图片描述

    Boost电路采用的是LGS6302 ,其是一种集成功率开关的异步升压转换器,具有 3V 到 60V 的宽输入电压范围,集成了软起动,从而最大限度地减少对外部浪涌抑制组件的需求,使其成为宽输入电源范围升压转换器的理想选择。输出电压可以通过外部不同阻值的电阻配置。
在这里插入图片描述
本人使用的是5脚设计。

引脚名称说明
SW内部功率开关节点。外部连接功率电感、肖特基二极管
GND接地引脚
FB反馈输入引脚。连接至外部电阻器,输出电压由𝑅𝑅𝐹𝐹 和𝑅𝑅𝐺𝐺 共同决定
ENBOOST 的使能输入引脚
VIN驱动器电源输入引脚,使用 4.7uF 或更大的陶瓷贴片尽量近旁路VIN和GND

设定输出电压

    LGS6302 输出电流可通过外置电阻分压器调节输出电压的大小。建议的输出电阻取值见下表。分压网络由 RG 和 RF 组成,请保证 RG小于等于30K。转换器通过保持 FB 引脚上的电压等于内部参考电压 VREF来调节输出电压。
一旦选择 RG 则可根据 VFB 选择 RF的值,VFB典型值是1.2V:

输出电压公式:
在这里插入图片描述
当我输出电压为60V时, RG=8K时可以得到,RF为392K(但是这个电阻网上没得买当时,最后买的390K)

CIN 选取建议与经验考虑
    单独使用一个 10uF 陶瓷电容足以旁路 LGS6302,并处理纹波电流。但前提是它足够靠近 LGS6302,直接放在从 VIN(引脚 5)和 GND(引脚 2)引出的走线上,以获得更好的性能并且应用占位面积的增加却极小。
输入电压纹波公式:
在这里插入图片描述

从公式中看出CIN越大输入纹波越小,条件支持的情况下可以选择较为大的电容。


电感值的选取
    经验表明,电感纹波电流的最佳值为最大负载电流的40%。请注意,当为最大负载远小于设备最大可用负载的应用选择纹波电流时,请使用最大设备电流。常数 K 是电感电流纹波的百分比。对于大多数应用,电感器值可以从以下等式计算:
在这里插入图片描述
设计时满足的条件,VIN=12V,VOUT=60V,纹波K未知,电流I为0.2A。
带入公式得:
在这里插入图片描述

    而K对于典型的升压转换器,K 值在 20% 到 30% 之间是常见的选择。当K取值为0.2时,得电感感值为8uh(最终我还是用了手册的10uh,下次试试8uh)。


输出电容选取
输出电压纹波的大小取决于具体应用。下面的公式可用于估计总输出电容的下限和电容 ESR 的上限:
在这里插入图片描述
此公式只是对输出电容的最小值进行了限制,所以尽量往大的取。
小结:以上就为升压电路理论部分,理论准备好后开始实际设计。

1–buck 5V、3.3V降压电路

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以下是工科男孙老师的B站视频链接,他对MP225的讲解就是本人的启蒙。
https://www.bilibili.com/video/BV1XQ4y1Q74n/?spm_id_from=333.999.0.0&vd_source=0b4cc24ad65b13e07dc6d81b704f71cf

1–控制电路

(1)发射部分
核心器件1:IGBT

在这里插入图片描述
IGBT(绝缘栅双极型晶体管,Insulated Gate Bipolar Transistor)是一种广泛应用于电力电子设备中的半导体器件。它结合了MOSFET(场效应晶体管)的优点和BJT(双极型晶体管)的优点。以下是对IGBT的基本介绍:

  1. 结构与工作原理
    结构:IGBT由三个主要部分组成:发射极(Emitter)、集电极(Collector)和栅极(Gate)。它结合了MOSFET的栅极控制和BJT的电流放大功能。
    工作原理:当栅极施加适当的电压时,IGBT会在发射极和集电极之间形成导电通道。栅极电压控制这个通道的开启与关闭,从而控制电流的流动。
  2. 主要特点
    高输入阻抗:IGBT的栅极控制特性类似于MOSFET,具有高输入阻抗,不需要很大的驱动电流。高电流承载能力:IGBT可以承载高电流,并具有较低的导通压降,类似于BJT的特性。开关速度:相较于BJT,IGBT的开关速度较快,但通常不如MOSFET快。
    主要关注的特性也是以下:
    在这里插入图片描述
    VGE = 4.5V:这是栅极-发射极电压,指示IGBT开启所需的最低栅极电压。较低的VGE意味着它可以在较低的栅极电压下开启,有利于驱动电路设计。
    VCE = 1.9V:这是集电极-发射极电压,表示在导通状态下的导通电压降。较低的VCE意味着IGBT在导通时损耗较少,有助于提高整体效率。



    核心器件2:光耦
    在这里插入图片描述

  光耦(也称为光隔离器或光电耦合器)是一种用于电气隔离和信号传输的电子组件。它主要用于将两个电路隔离开来,同时在它们之间传递信号。这种隔离可以保护敏感电路不受高电压或噪声的影响,提高系统的稳定性和可靠性。

光耦的主要作用
  电气隔离:光耦可以有效地隔离输入和输出电路,防止高电压对低电压电路造成干扰或损坏。这对于保护低电压控制电路尤其重要。
  信号传递:光耦可以在隔离的两个电路之间传递信号。输入电路中的信号通过光耦的光电隔离装置被转换成光信号,再通过光接收装置转换回电信号,完成信号的传递。

在这里插入图片描述
    主要关注的也是它的开关时间,从而决定电容释放时间。NPN三极管架构,就决定了我的输出方式。

了解完器件的大致理论部分后开始设计发射部分工作原理,如下图所示。
图1

    控制部分如图所示,通过PB5引脚进行控制,当PB5为低电平时,光耦(PC817)导通,控制内部三极管NPN导通,节点3的电压=节点4电压为12V,12V/100欧姆=0.12A,IGBT导通,本人测试时发现IGBT导通时万用表蜂鸣档测不出来。可能是由于未达到VCE的阈值,所以本人的测试方式是用一节锂电池(4.0V)模拟电容(电压大于VCE阈值),当给线圈通电时,铁质炮弹可以发射判断出IGBT功能正常。

当PB5高电平时
在这里插入图片描述

检测R22处电压为0V。

当PB5低电平时
在这里插入图片描述

检测R22处电压为12V。

(2)电容充电部分
在这里插入图片描述
    此为简单的充电电路,拨码开关打开时,led灯亮正在充电(尽量选择大功率的LED,理论上选择一个不低于20ma的二极管没问题),电容充电电压为60V。
在这里插入图片描述
在这里插入图片描述

电容充电时,60V在电容口两端如图所示。

控制部分

在这里插入图片描述
    整体设计思路如图所示,按键采用上拉电阻接法,后续通过舵机控制其左右转(后续开发),串口与机器视觉模块通讯(后续开发),PB5输出引脚连接电磁炮,控制大炮的发射。

软件代码

1.时钟本人选用的是外部时钟
在这里插入图片描述


2.系统烧录方式
在这里插入图片描述


3.输入输出引脚配置,PB5输出,PB8、PB9采用外部中断
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
    本人设计时只用到了上述部分,后续PWM以及串口部分等二代(又不知道托更到什么时候)开发时讲述,也可以参考本人的前述文章了解这方面知识。


4.时钟树
在这里插入图片描述


代码部分
stm32f4xx_it.c增加了以下代码

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{

    if(GPIO_Pin == KEY1_Pin) 
		{
        HAL_GPIO_WritePin(launch_GPIO_Port, launch_Pin, GPIO_PIN_RESET);
			  for(uint64_t j=0;j<150000;j++)
			  for(uint64_t i;i<100000;i++);
			  HAL_GPIO_WritePin(launch_GPIO_Port, launch_Pin, GPIO_PIN_SET);
			  for(short i;i<30000;i++);

    }
    if(GPIO_Pin == KEY2_Pin) 
		{
        // 处理GPIO_PIN_0中断
			 HAL_GPIO_WritePin(launch_GPIO_Port, launch_Pin, GPIO_PIN_SET);
			 for(short i;i<25000;i++);
    }
}

最开始i,j很小时,示波器显示低电平时间为70ns,检测光耦是否有70ns的高电平输出时,没有反应,后来看手册才注意到上文那一点,它的关断时间必须大于5us。

在这里插入图片描述
不断调整j,i后,致使其保持在了10.7ms(多次测量都是在10.7ms)
在这里插入图片描述

主函数部分

int main(void)
{

  /* USER CODE BEGIN 1 */
  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_TIM2_Init();
  MX_USART1_UART_Init();
  MX_USART2_UART_Init();
  /* USER CODE BEGIN 2 */
  key1=HAL_GPIO_ReadPin(GPIOB,KEY1_Pin);
	key2=HAL_GPIO_ReadPin(GPIOB,KEY2_Pin);
	HAL_GPIO_WritePin(launch_GPIO_Port, launch_Pin, GPIO_PIN_SET);
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		 key1=HAL_GPIO_ReadPin(GPIOB,KEY1_Pin);
	     key2=HAL_GPIO_ReadPin(GPIOB,KEY2_Pin);
  }
  /* USER CODE END 3 */
}

实验测试及结果

5V电压输出图
在这里插入图片描述

3.3V电压输出图
在这里插入图片描述


60V电压输出图
在这里插入图片描述

实物图

在这里插入图片描述
在这里插入图片描述
希望这篇文章对你有所帮助,有不足之处本人水平有限请谅解。

嘉立创PCB设计链接:https://oshwhub.com/roudragon/dian-ci-pao-she-ji
百度网盘存放的是数据手册以及测试时的代码
百度网盘链接: https://pan.baidu.com/s/1xCu2zZRUdmRiDcGImz5NjQ?pwd=f6pn
提取码: f6pn

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2066901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Chapter 02 Vue指令(上)

欢迎大家订阅【Vue2Vue3】入门到实践 专栏&#xff0c;开启你的 Vue 学习之旅&#xff01; 文章目录 前言一、v-text指令二、v-html指令三、v-show指令四、v-if指令五、v-else指令六、v-else-if指令 前言 在 Vue.js 中&#xff0c;指令是带有 v- 前缀的特殊属性&#xff0c;不…

【大数据】数据仓库的定义、数据模型及其建设与设计

1. 数据仓库 1.1 定义 数据仓库不是数据的简单堆积&#xff0c;而是从大量的事务型数据库中抽取数据&#xff0c;并将其清理、转换为新的存储格式,即为决策目标把数据聚合在一种特殊的格式中。公认的数据仓库之父 W.H. Inmon 将其定义为&#xff1a;“数据仓库是支持管理决策…

【秋招笔试】8.19蔚来秋招-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收…

git submodule

文章目录 环境准备用法添加子模块添加b添加c提交总结 其它用户获取子模块其它总结 更新子模块内容方式1&#xff1a;独立更新其它 方式2&#xff1a;在主模块嵌套下更新总结 总结参考 写的有点乱&#xff0c;凑合理解一下吧。另外常用命令总结一下&#xff1a; git submodule …

开发者空间实践指导:基于华为云3大PaaS主流服务轻松实现文字转换语音

案例简介 开发者将在云主机中&#xff0c;基于CodeArts API设计语音合成接口&#xff0c;基于API Explorer调试接口&#xff0c;并利用CodeArts IDE实现数据流转换为音频。在此过程中&#xff0c;开发者可体验API设计、开发、调试等全生命周期&#xff0c;对华为云产品API体系…

vue文件打包后怎么运行

找到打包后的文件 并在此处打开cmd控制台 输入 npm run serve 按住" ctrl " 再点击网址及可访问。 ------------------------------

代码行数计数器

做了个记录代码函数的小程序&#xff0c;后缀名记得设置为.pyw&#xff0c;如果你装了python的话可以直接拿来用&#xff0c;免费自取。 功能说明&#xff1a; 1.记录总行数、当前行数、目标行数三个值 2.具有进度条功能 3.行数的多少能激发不同的反馈&#xff0c;如great&am…

基于分数Talbot效应的阵列光学涡旋产生matlab模拟与仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于分数Talbot效应的阵列光学涡旋产生matlab模拟与仿真&#xff0c;分别测试正方形&#xff0c;旋转正方形以及六边形三种阵列形状下的光学涡旋。 2.测试软件版…

(论文研读)解决transform训练的不稳定性问题:SAMformer(时序预测)

论文链接&#xff1a;https://arxiv.org/abs/2402.10198 作者团队&#xff1a;华为诺亚方舟实验室&#xff08;华为巴黎研究中心&#xff09;&#xff0c;Laboratory of Informatics Paris Descartes (LIPADE) 巴黎笛卡尔大学&#xff08;第五大学&#xff09;信息学实验室 文…

【笔记篇】Davinci Configurator SomeIpXf模块

目录 1 简介1.1 架构概览2 功能描述2.1 特性2.2 初始化2.3 状态机2.4 主函数2.5 故障处理3 集成4 API描述5 配置1 简介 本文主要描述了AUTOSAR SomeIpXf模块的功能。 SomeIpXf主要用途是对数据进行SOME/IP格式的序列化和反序列化。 1.1 架构概览 SomeIpXf在AUTOSAR软件架构…

环绕音效是什么意思,电脑环绕音效怎么开

Boom 3D是一款专业的音效增强软件&#xff0c;它拥有先进的音效处理技术和丰富的音效设置选项&#xff0c;可以为用户打造出高度定制化的音频体验&#xff0c;Boom 3D还拥有简洁直观的界面&#xff0c;操作简单易懂&#xff0c;即使是音频技术的新手也能轻松上手。本篇文章就将…

Mybatis实现员工管理系统

文章目录 1.案例需求2.编程思路3.案例源码4.小结 1.案例需求 在上次做的父子模块的maven以及Ajax实现人工管理系统的基础上使用Mybatis实现员工管理系统的增删改查&#xff0c;具体运行效果如下&#xff1a; 2.编程思路 Mybatis框架的一般执行流程&#xff1a; 创建MyBati…

基于改进字典的大数据多维分析加速实践

一、背景 OLAP场景是大数据应用中非常重要的一环&#xff0c;能够快速、灵活地满足业务各种分析需求&#xff0c;提供复杂的分析操作和决策支持。B站主流湖仓使用Iceberg存储&#xff0c;通过建表优化可以实现常规千万级的指标统计秒级查询&#xff0c;这样就能快速搭建可视化报…

WRF输出结果的可视化展示与分析:以风速为例

1.前言 天气研究与预报 (WRF) 模型是一种功能强大的数值天气预报系统&#xff0c;用于模拟各种尺度的大气现象。WRF 生成大量输出数据&#xff0c;可为气象和气候研究、天气预报和环境管理提供宝贵信息。 WRF 输出数据通常存储在 netCDF 文件中&#xff0c;其中包含具有不同单位…

AI生成PPT怎么用?5款AI PPT工具助你轻松制作演示文稿

当你站在山西应县木塔之下&#xff0c;仰望这座千年古塔的雄伟与震撼&#xff0c;心中不禁涌起一股对历史与建筑艺术的敬畏之情。 想象一下&#xff0c;如果将这份震撼与敬仰融入到你的演示文稿中&#xff0c;那将是多么引人入胜的体验。而这一切&#xff0c;只需借助AI生成PP…

Kubernetes 运维工程师必备:K8s 基础面试题精编(三)

Kubernetes 运维工程师必备:K8s 基础面试题精编(三) 1. 在Kubernetes集群中如何查看Pod的日志?2. 如何将一个已经部署的应用程序从一个命名空间迁移到另一个命名空间?3. 如何更新Kubernetes集群中的应用程序镜像版本?4. 如何通过Kubernetes进行自动扩容?5. 如何手动扩容…

震惊!!大模型玩转JS逆向

不知道大家有没有被JS代码混淆折磨过&#xff0c;我之前搞爬虫的时候&#xff0c;也经常被OB代码混淆搞到心态崩溃&#xff0c;但是自从接触了大模型&#xff0c;腰不疼了&#xff0c;腿不酸了&#xff0c;OB代码直接交给大模型&#xff0c;简直不要太爽 这是一段经过OB混淆之…

盘点12个国内外主流CRM系统,哪一个能免费试用?

客户关系管理&#xff08;CRM&#xff09;系统已成为企业成功的关键工具。它们不仅帮助企业改善客户关系&#xff0c;还提高了销售效率和业务分析能力。在众多选择中&#xff0c;我们特意盘点了12个国内外主流的CRM系统&#xff0c;从地位、业务应用以及特点三方面进行解析&…

车牌号字符检测系统源码分享 # [一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

车牌号字符检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 研究背景与意义 随着智能交通系统的快速发展&#xff0c;车牌号字…

代码随想录算法训练营第 50 天 |98. 所有可达路径

代码随想录算法训练营 Day50 代码随想录算法训练营第 50 天 |98. 所有可达路径 目录 代码随想录算法训练营前言LeetCode98. 所有可达路径 一、图论基础概念1、图的种类2、度3、连通性&#xff1a;节点的连通情况4、图的构造5、图的遍历方式 二、深度优先搜索1、深度优先搜索的…