找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 900|回复: 14
打印 上一主题 下一主题
收起左侧

问题手持风扇升压电路问题

[复制链接]
跳转到指定楼层
楼主
这个电路是PWM是3.3V  BAT是锂电池电压 这个电路是否可行。实测发现105K 调节占空比可以调速,占空比(分辨率8为 也就是0-255的范围)为120时,电压约6.5V Q3发热。但是时不时Q4关不断,单片机是ESP32. 图是否需要改进,PWM信号是否有问题,还是3.3V 与电池电压 不一致导致,如何优化 谢谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:339654 发表于 2026-7-15 23:49 | 只看该作者
Q3的体二极管续流了
回复

使用道具 举报

板凳
ID:1073939 发表于 2026-7-16 08:48 | 只看该作者
你这电路是可行的。
Q4是让风机电流为0,仅在pwm占空比不为0前打开,pwm占空比为0后断开。其它时候不要操作Q4。Q3发热量要降低,电感要使用电感量、体积更大的,或者增加pwm频率,并使用开关性能更好的nmos。
回复

使用道具 举报

地板
ID:1034262 发表于 2026-7-16 10:23 | 只看该作者
weijoyer 发表于 2026-7-15 23:49
Q3的体二极管续流了

看清楚了,这是boost。
回复

使用道具 举报

5#
ID:1034262 发表于 2026-7-16 10:25 | 只看该作者
Q3发热,是因为内阻大或速度慢。
Q4关不断,可能是因为击穿了,你没有检测输出电压,Q4关闭时,升压电压会很高的。
回复

使用道具 举报

6#
ID:1146155 发表于 2026-7-16 17:08 | 只看该作者
ydatou 发表于 2026-7-16 08:48
你这电路是可行的。
Q4是让风机电流为0,仅在pwm占空比不为0前打开,pwm占空比为0后断开。其它时候不要操 ...

有一个问题是 单片机3.3V PWM  和 这个电路的电源是锂电池电压比如4.2V吧 就有问题 关不断,发热。是不是电压不一致导致的吧
回复

使用道具 举报

7#
ID:1073939 发表于 2026-7-16 17:20 | 只看该作者
boos1234 发表于 2026-7-16 17:08
有一个问题是 单片机3.3V PWM  和 这个电路的电源是锂电池电压比如4.2V吧 就有问题 关不断,发热。是不是 ...

不是这原因。与3.3V、4.2V无关,
只和Q4的耐压有关。
回复

使用道具 举报

8#
ID:1146155 发表于 2026-7-16 17:34 | 只看该作者
ydatou 发表于 2026-7-16 17:20
不是这原因。与3.3V、4.2V无关,
只和Q4的耐压有关。

我使用PWM调速器 和 这个电路同源就没事 也不发热 也能关断
回复

使用道具 举报

9#
ID:401564 发表于 2026-7-16 22:15 | 只看该作者
Q4只要是先比PWM关断一段时间,升压电路的输出电压就会一直上升,当你再打开Q4的时候,早就超过它的耐压了,出问题是正常的
沙发也说了,PWM一直在工作的时候,电压感应到的电压是一直在上升的,理论上会无限大,但实际上一般就几十V左右,电路就开始出现问题了
所以,你要使用这类电路,一定要有硬件负反馈,不然容易出问题
光是软件控制是不行的
回复

使用道具 举报

10#
ID:96072 发表于 2026-7-17 08:45 | 只看该作者
Y_G_G 发表于 2026-7-16 22:15
Q4只要是先比PWM关断一段时间,升压电路的输出电压就会一直上升,当你再打开Q4的时候,早就超过它的耐压了,出 ...

可以的,小电流没事,我们都是这样搞的
回复

使用道具 举报

11#
ID:1073939 发表于 2026-7-17 09:48 | 只看该作者
Y_G_G 发表于 2026-7-16 22:15
Q4只要是先比PWM关断一段时间,升压电路的输出电压就会一直上升,当你再打开Q4的时候,早就超过它的耐压了,出 ...

软件能确保Q4晚关断。
以下是伪代码
  1. u8 gPwmDuty=120;//记录风扇最后的duty
  2. #define FAN_PIN_GET IO_H_L
  3. #define FAN_PIN_SET(b) do{IO_H_L=(b);}while(0)
  4. //风扇开启后,pwm按duty输出,否则仅修改gPwmDuty
  5. void fanSpeepAdj(u8 duty)
  6. {
  7.         if(duty)
  8.                 gPwmDuty=duty;
  9.         if(FAN_PIN_GET)
  10.         {
  11.                 PWM_DUTY(duty);//如果duty为0,关闭pwm并使PWM引脚为低电平,否则开启pwm并按duty输出pwm。
  12.         }
  13. }

  14. void fanOnoff(bit b)
  15. {
  16.         if(b){
  17.                 FAN_PIN_SET(1);
  18.                 fanSpeepAdj(gPwmDuty);
  19.         }else{
  20.                 fanSpeepAdj(0);
  21.                 FAN_PIN_SET(0);
  22.         }
  23. }
复制代码
回复

使用道具 举报

12#
ID:1073939 发表于 2026-7-17 10:41 | 只看该作者
占空比(分辨率8为 也就是0-255的范围)为120时,电压约6.5V Q3发热。

假如BAT+楼主实测是3.6V时,计算输出电压为6.476V,和楼主实测差不多。
说明电感电流是连续的,电感选型是合理的。
看来解决Q3发热主要是更换型号,推荐用AO3400试试。
回复

使用道具 举报

13#
ID:1073939 发表于 2026-7-17 15:56 | 只看该作者
Y_G_G 发表于 2026-7-16 22:15
Q4只要是先比PWM关断一段时间,升压电路的输出电压就会一直上升,当你再打开Q4的时候,早就超过它的耐压了,出 ...

纯软件控制是可行的。
伪代码如下
  1. u8 gPwmDuty=120;//记录风扇最后的duty
  2. #define FAN_PIN_GET IO_H_L
  3. #define FAN_PIN_SET(b) do{IO_H_L=(b);}while(0)
  4. //风扇开启后,pwm按duty输出,否则仅修改gPwmDuty
  5. void fanSpeepAdj(u8 duty)
  6. {
  7.         if(duty)
  8.                 gPwmDuty=duty;
  9.         if(FAN_PIN_GET)
  10.         {
  11.                 PWM_DUTY(duty);//如果duty为0,关闭pwm并使PWM引脚为低电平,否则开启pwm并按duty输出pwm。
  12.         }
  13. }

  14. void fanOnoff(bit b)
  15. {
  16.         if(b){
  17.                 FAN_PIN_SET(1);
  18.                 fanSpeepAdj(gPwmDuty);
  19.         }else{
  20.                 fanSpeepAdj(0);
  21.                 FAN_PIN_SET(0);
  22.         }
  23. }
复制代码
回复

使用道具 举报

14#
ID:1146155 发表于 2026-7-18 10:12 来自触屏版 | 只看该作者
Y_G_G 发表于 2026-7-16 22:15
Q4只要是先比PWM关断一段时间,升压电路的输出电压就会一直上升,当你再打开Q4的时候,早就超过它的耐压了,出 ...

实际电路中我发现 Q4.的D接了一个电阻压1k到G,是不是就是防止过压,还有就是,如果不接电机,升压电路工作几秒就停了 是不是可能加入了反馈电路
回复

使用道具 举报

15#
ID:1146155 发表于 2026-7-18 10:13 来自触屏版 | 只看该作者
ydatou 发表于 2026-7-17 10:41
假如BAT+楼主实测是3.6V时,计算输出电压为6.476V,和楼主实测差不多。
说明电感电流是连续的,电感选型 ...

图中的实际电路两个mos都是丝印A09T
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表