DIY无人机--升压降压电路

DIY无人机--升压降压电路

这是无人机的电源管理核心,把电池电压一步步变成系统需要的稳定电压,我分模块给你讲清楚

1. 整体功能

  • 输入:锂电池(DC4.2V,满电电压,实际放电会到 3.7V 左右)
  • 输出
    • 5V:给电机、无线模块等供电
    • 3.3V:给 STM32、陀螺仪等精密芯片供电
  • 流程:电池 → 防反接 → 开关 → 升压到 5V降压到 3.3V

逐模块拆解

🛡️ ① 防反接 + 电源开关部分

  • JP2:电池接口,VBAT接电池正极,GND接负极
  • D5(二极管 S4):防反接保护
    • 原理:电池接反时,二极管截止,电流无法流通,保护后面电路不被烧毁
    • 正常接法:电池正极 → 二极管 → 后级电路
  • KG1(MSS22D18):双刀双掷电源开关
    • 作用:控制整个系统电源通断
    • 引脚:1/2/3 为一组,4/5/6 为一组,拨到一边时VBATVCC4.2V导通,拨到另一边断开

⚡ ② 升压电路(BL8530:4.2V → 5V)

这是一个升压 DC-DC 电路,把电池的 3.7~4.2V 升到稳定 5V:

  • L1(47UH 电感):储能元件
    • 原理:芯片内部开关管导通时,电感充电;开关管断开时,电感释放能量,抬升电压
  • U3(BL8530):升压芯片
    • IN:输入(接电池电压 VCC4.2V)
    • OUT:输出(5V)
    • GND:接地
  • D6(二极管 S4):整流二极管
    • 作用:只允许电流从电感流向输出端,防止输出电压倒灌回电感
  • C15(47UF):输出滤波电容
    • 作用:平滑 5V 输出电压,滤除纹波,让电压更稳定

🔌 ③ 降压电路(662K:5V → 3.3V)

这是一个低压差线性稳压器(LDO),把 5V 稳定降到 3.3V:

  • U4(662K):LDO 芯片
    • Vin:输入(接 5V)
    • Vout:输出(3.3V)
    • ADJ:可调引脚,这里通过内部电阻固定输出 3.3V
    • GND:接地
  • C5/C6(104 = 0.1UF):高频滤波电容
    • 作用:滤除高频噪声,防止电路自激
  • C17(47UF):输出滤波电容
    • 作用:平滑 3.3V 输出,应对负载突变(比如 STM32 突然大电流工作)

3. 完整电流流向(从电池到 3.3V)

  1. 电池正极 → JP2 → D5(防反接) → KG1(电源开关) → VCC4.2V
  2. VCC4.2V → L1 电感 → U3(BL8530)IN → 内部升压 → OUT 输出 5V
  3. 5V → D6 整流 → C15 滤波 → 得到稳定 5V
  4. 5V → U4(662K)Vin → 内部降压 → Vout 输出 3.3V
  5. 3.3V → C6/C17 滤波 → 给 STM32、陀螺仪等模块供电

4. 关键知识点

  • 为什么要先升压再降压?锂电池电压会从 4.2V 掉到 3.0V,直接给 3.3V 模块供电会不稳定;先升到稳定 5V,再降到 3.3V,能保证全放电周期内电压都稳定。
  • 二极管 D5/D6 的区别
    • D5:防反接,保护电路
    • D6:升压电路的整流管,配合电感实现升压
  • 电容的作用:所有电容都是 “滤波”,像小水库,把电压波动抹平,让芯片吃到干净稳定的电。

Read more

SpringBoot源码解析(十):应用上下文AnnotationConfigServletWebServerApplicationContext构造方法

SpringBoot源码解析(十):应用上下文AnnotationConfigServletWebServerApplicationContext构造方法

SpringBoot源码系列文章 SpringBoot源码解析(一):SpringApplication构造方法 SpringBoot源码解析(二):引导上下文DefaultBootstrapContext SpringBoot源码解析(三):启动开始阶段 SpringBoot源码解析(四):解析应用参数args SpringBoot源码解析(五):准备应用环境 SpringBoot源码解析(六):打印Banner SpringBoot源码解析(七):应用上下文结构体系 SpringBoot源码解析(八):Bean工厂接口体系 SpringBoot源码解析(九):Bean定义接口体系 SpringBoot源码解析(十):应用上下文AnnotationConfigServletWebServerApplicationContext构造方法 目录 * 前言 * 源码入口 * 一、初始化注解Bean定义读取器 * 1、BeanDefinitionRegistry(Bean定义注册接口) * 2、获取环境对象Environment * 3、注

前端实现交互式3D人体肌肉解剖图:基于 Three.js + React Three Fiber 的完整方案

本文将详细介绍如何在前端实现一个交互式的3D人体肌肉解剖展示工具,用户可以旋转、缩放模型,点击任意肌肉查看中英文名称。 为什么要做这个? 传统的肌肉解剖学习通常依赖静态图片或昂贵的3D软件。作为健身爱好者,我希望能有一个免费、易用的在线工具来学习肌肉解剖知识。于是我决定自己动手,基于开源的 Z-Anatomy 项目,在浏览器中实现一个交互式的3D肌肉解剖图。 如果你想先体验效果,可以试试这个在线的3D肌肉功能解剖工具。 技术架构概览 ┌─────────────────────────────────────────────────────────────┐ │ 用户浏览器 │ ├─────────────────────────────────────────────────────────────┤ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ │ │ GLB 模型 │ -> │ Three.js │ -> │ React Three │ │ │ │ (Draco) │ │ 场景渲染 │ │ Fiber

什么是Webhook?工作原理?如何实现?缺点?

什么是Webhook?工作原理?如何实现? 背景 在使用钉钉机器人配置Stream推送 - 钉钉开放平台,qq机器人(微信没有机器人),企业微信机器人、飞书机器人、GitHub WebHook、腾讯问卷这些应用时, 这些应用都提供了Webhook,它允许系统之间在事件发生时主动传递信息,而无需持续轮询。 有的人一开始可能很困惑,什么是Webhook?如何使用? 什么是 Webhook? 通俗一点就是,你(自己的服务器提供一个webhook)在手机(其它支持webhook的平台注册)上定了一个明天早上6点的闹钟(将自己的webhook注册在其它平台上),当时间来到第二天早上6点时候,手机(其它支持webhook的平台)闹钟响起(触发你注册的webhook),你(自己的服务器提供一个webhook)就会听到铃声响起来(自己的服务器上的webhook触发)。 Webhook 是一种简单的 HTTP 回调机制,它允许一个应用程序在事件发生时自动通过 HTTP 请求通知另一个应用程序。这意味着 Webhook 在某个特定事件发生时,自动向指定的 URL

前端错误处理最佳实践:别让你的应用崩溃了!

前端错误处理最佳实践:别让你的应用崩溃了! 毒舌时刻 错误处理?听起来就像是前端工程师为了显得自己很专业而特意搞的一套复杂流程。你以为随便加个try-catch就能解决所有错误?别做梦了!到时候你会发现,错误处理的代码比业务代码还多,维护起来比业务代码还麻烦。 你以为console.error就能记录所有错误?别天真了!console.error只会在控制台打印错误,用户根本看不到,也无法帮助你分析错误原因。还有那些所谓的错误监控工具,看起来高大上,用起来却各种问题。 为什么你需要这个 1. 提高用户体验:良好的错误处理可以避免应用崩溃,提高用户体验。 2. 减少生产环境问题:及时捕获和处理错误可以减少生产环境中的问题。 3. 便于调试:良好的错误处理可以帮助你更快地定位和解决问题。 4. 提高代码可靠性:错误处理可以提高代码的可靠性,减少意外情况的发生。 5. 监控和分析:错误处理可以帮助你监控和分析应用的运行状态,发现潜在问题。 反面教材 // 1. 忽略错误 function fetchData() { fetch('/api/data') .the