找回密码
 立即注册

QQ登录

只需一步,快速开始

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

暴力改电风扇PWM调速

  [复制链接]
跳转到指定楼层
楼主
不是我写的程序,网上的程序小小改变了一下芯片用的STC15F104
风扇淘宝买的,卖家将调速线剪了。我重新上。
程序不完美的地方,速度反馈线没有利用。调速按键不好使。欢迎大神指点。

制作出来的实物图如下:


单片机源码:
  1. //晶振12MHz
  2. //在P1_0输出20KHz,0-255级可调占空比 每一级0.39%
  3. #include<at89x51.h>
  4. sbit L1=P3^3;//档位显示LED
  5. sbit L2=P3^4;
  6. sbit L3=P3^5 ;
  7. unsigned char PWM=0x01;//PWM的百分比,开机默认风力
  8. unsigned int cnt;

  9. void InitT0(void)
  10. {
  11. TMOD=0x02;//定时器0工作方式2 8位自动重装
  12. TH0=206;//pwm 50us 20khz
  13. TL0=206;
  14. TR0=1;//开始计时
  15. ET0=1;//允许定时器中断
  16. EA=1;//开启总中断
  17. }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
  18. void main(void)
  19. {
  20. InitT0();//初始化T0定时器
  21. IT0=1;
  22. EX0=1;
  23. while(1)
  24. {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 -
  25. }
  26. }
  27. void Timer0(void) interrupt 1//用于PWM的定时器
  28. {
  29. static unsigned char counter=0;//记录中断次数
  30. counter++;
  31. if(counter >= PWM) P3_1 = 0; else P3_1 = 1;
  32. }

  33. void INTERR(void) interrupt 0
  34.         {
  35.         cnt++;
  36.                 {
  37.                 switch(cnt)
  38.                         {
  39.                          case 1:PWM=25;L1=0;L2=1;L3=1;break;
  40.                          case 2:PWM=100;L1=1;L2=0;L3=1;break;
  41.                          case 3:PWM=255;L1=1;L2=1;L3=0;cnt=0;break;
  42.                          default:break;
  43.                         }
  44.                 }
  45.         }
复制代码


               



评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:399799 发表于 2018-9-19 08:35 | 只看该作者
我前一阵鼓捣开关电源,一直有个想法,就是利用废旧开关电源IC调节占空比,通过取压反馈来调节,用开关电源上自带的开关管控制风扇, 感觉可行吗?最近天天看孩子,没时间试。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:399834 发表于 2018-9-19 09:37 | 只看该作者
很给力
回复

使用道具 举报

地板
ID:190152 发表于 2018-9-19 13:20 来自触屏版 | 只看该作者
wangxindir 发表于 2018-9-19 08:35
我前一阵鼓捣开关电源,一直有个想法,就是利用废旧开关电源IC调节占空比,通过取压反馈来调节,用开关电源 ...

用TL494应该可以。不用单片机可以接可调调占空比。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:190152 发表于 2018-9-20 13:39 来自触屏版 | 只看该作者
perfect123 发表于 2018-9-19 15:07
这么大一点的风扇你是用来吹蚊子的吗?如果真的想搞,直接网上买那个pwm的功率模块啊,叫大功率mos管,才2 ...

别看风扇小,风力可不小。实测电流达2a。噪音想飞机,出门带上还是挺实用的
回复

使用道具 举报

6#
ID:408833 发表于 2018-10-13 11:36 | 只看该作者
楼主有图吗想做一个玩玩
回复

使用道具 举报

7#
ID:48813 发表于 2020-12-16 16:43 | 只看该作者
感谢楼主的分享。收藏、值得学习
回复

使用道具 举报

8#
ID:232366 发表于 2021-1-3 21:00 | 只看该作者
兄弟为什么编译不过呢     那个while(){}里面是不是少了点什么?
回复

使用道具 举报

9#
ID:830831 发表于 2021-1-4 17:13 | 只看该作者
我以为是交流呢
回复

使用道具 举报

10#
ID:872598 发表于 2021-1-12 15:04 | 只看该作者
些标题只能搏人眼球:暴力改电风扇PWM调速,一看不到啥暴力在哪,二电风扇只是一个散热小风扇,没啥实用价值,三还花一堆时间写一堆代码,不如花一两块钱直接买一片PWM IC芯片实际。
回复

使用道具 举报

11#
ID:102800 发表于 2021-1-21 10:56 | 只看该作者
DIY精神,不错。五年级的学生玩的东西。大神出来一顿猛损。各玩各的。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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