找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14708|回復: 11
打印 上一主題 下一主題
收起左側(cè)

暴力改電風扇PWM調(diào)速

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:190152 發(fā)表于 2018-9-18 16:44 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
不是我寫的程序,網(wǎng)上的程序小小改變了一下芯片用的STC15F104
風扇淘寶買的,賣家將調(diào)速線剪了。我重新上。
程序不完美的地方,速度反饋線沒有利用。調(diào)速按鍵不好使。歡迎大神指點。

制作出來的實物圖如下:


單片機源碼:
  1. //晶振12MHz
  2. //在P1_0輸出20KHz,0-255級可調(diào)占空比 每一級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;//記錄中斷次數(shù)
  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.         }
復制代碼


               



評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:399799 發(fā)表于 2018-9-19 08:35 | 只看該作者
我前一陣鼓搗開關電源,一直有個想法,就是利用廢舊開關電源IC調(diào)節(jié)占空比,通過取壓反饋來調(diào)節(jié),用開關電源上自帶的開關管控制風扇, 感覺可行嗎?最近天天看孩子,沒時間試。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:399834 發(fā)表于 2018-9-19 09:37 | 只看該作者
很給力
回復

使用道具 舉報

地板
ID:190152 發(fā)表于 2018-9-19 13:20 來自手機 | 只看該作者
wangxindir 發(fā)表于 2018-9-19 08:35
我前一陣鼓搗開關電源,一直有個想法,就是利用廢舊開關電源IC調(diào)節(jié)占空比,通過取壓反饋來調(diào)節(jié),用開關電源 ...

用TL494應該可以。不用單片機可以接可調(diào)調(diào)占空比。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

5#
ID:190152 發(fā)表于 2018-9-20 13:39 來自手機 | 只看該作者
perfect123 發(fā)表于 2018-9-19 15:07
這么大一點的風扇你是用來吹蚊子的嗎?如果真的想搞,直接網(wǎng)上買那個pwm的功率模塊啊,叫大功率mos管,才2 ...

別看風扇小,風力可不小。實測電流達2a。噪音想飛機,出門帶上還是挺實用的
回復

使用道具 舉報

6#
ID:408833 發(fā)表于 2018-10-13 11:36 | 只看該作者
樓主有圖嗎想做一個玩玩
回復

使用道具 舉報

7#
ID:48813 發(fā)表于 2020-12-16 16:43 | 只看該作者
感謝樓主的分享。收藏、值得學習
回復

使用道具 舉報

8#
ID:232366 發(fā)表于 2021-1-3 21:00 | 只看該作者
兄弟為什么編譯不過呢     那個while(){}里面是不是少了點什么?
回復

使用道具 舉報

9#
ID:830831 發(fā)表于 2021-1-4 17:13 | 只看該作者
我以為是交流呢
回復

使用道具 舉報

10#
ID:872598 發(fā)表于 2021-1-12 15:04 | 只看該作者
些標題只能搏人眼球:暴力改電風扇PWM調(diào)速,一看不到啥暴力在哪,二電風扇只是一個散熱小風扇,沒啥實用價值,三還花一堆時間寫一堆代碼,不如花一兩塊錢直接買一片PWM IC芯片實際。
回復

使用道具 舉報

11#
ID:102800 發(fā)表于 2021-1-21 10:56 | 只看該作者
DIY精神,不錯。五年級的學生玩的東西。大神出來一頓猛損。各玩各的。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表