久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10384|回復: 9
打印 上一主題 下一主題
收起左側

DIY風扇調速器 STM32F030單片機程序+PCB原理圖文件

  [復制鏈接]
跳轉到指定樓層
樓主
最近DIY了一個風扇調速器給功放機箱散熱用,支持接入4個風扇,功能較簡單,目前有兩種工作模式。
自動控制模式:當溫度高于30度,風扇開始旋轉,而且隨著溫度升高,轉速越來越快。
手動控制模式:通過EC11機械編碼器去調節PWM占空比,最大99%

制作出來的實物圖如下:














Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)



STM32單片機源程序如下:
  1. #include "stm32f0xx.h"
  2. #include "time.h"
  3. #include "led.h"
  4. #include "TM1640.h"
  5. #include "ds18b20.h"
  6. #include "delay.h"
  7. #include "encoder.h"

  8. __IO uint16_t temp1;
  9. __IO uint16_t temp2;

  10. int ten,one,zero;
  11. float temp;
  12. u16 i,pwm;
  13. u8 a=0,b=0,mode;

  14. void manual_mode();
  15. void auto_mode();
  16. int main(void)
  17. {
  18. TIM_Config();
  19. TIM_PWM_Config();
  20. TIM3_Config();     //定時器3初始化
  21. delay_init();     //延時函數初始化
  22. led_init();                 //LED初始化
  23. TM1640_Init();   //TM1640初始化
  24. ENCODER_Init(); //旋轉編碼器初始化


  25.         while(1)
  26.         {
  27.                 auto_mode();
  28.         }
  29. }

  30. void auto_mode()
  31. {
  32. mode=1;
  33. TM1640_display(0,20);        //清屏
  34. TM1640_display(1,20);
  35. TM1640_display(2,20);
  36. TM1640_display(3,20);
  37.         while(1)
  38.         {
  39.                
  40.                 temp=TemperatuerResult();
  41.                 zero=(int)(temp*10)%10;
  42.                 ten=(int)temp/10;
  43.                 one=(int)temp%10;
  44.                 b=ENCODER_READ();        //讀出旋轉編碼器值        
  45.                 if(b==3)manual_mode();  //切換為手動模式
  46.                 if(temp2>300 && temp2<500)
  47.                 {                        
  48.                         TM1640_display(0,23);        
  49.                         TM1640_display(1,24);
  50.                         TM1640_display(2,25);
  51.                         TM1640_display(3,26);
  52.                         
  53.                 }
  54.                 if(temp2>600)
  55.                 {
  56.                         temp2=0;
  57.                         TM1640_display(0,ten);        
  58.                         TM1640_display(1,one+10);
  59.                         TM1640_display(2,zero);
  60.                         TM1640_display(3,21);
  61.                 }
  62.                 switch(ten)
  63.                 {
  64.                         case 0:
  65.                         TIM_SetCompare2(TIM2, 0);   //占空比設置        
  66.                         break;
  67.                         
  68.                         case 1:
  69.                         TIM_SetCompare2(TIM2, 0);   //占空比設置        
  70.                         break;
  71.                         
  72.                         case 2:
  73.                         TIM_SetCompare2(TIM2, 0);   //占空比設置        
  74.                         break;
  75.                         
  76.                         case 3:
  77.                         TIM_SetCompare2(TIM2, 480*30);   //占空比設置        
  78.                         break;
  79.                         
  80.                         case 4:
  81.                         TIM_SetCompare2(TIM2, 480*40);   //占空比設置        
  82.                         break;
  83.                         
  84.                         case 5:
  85.                         TIM_SetCompare2(TIM2, 480*60);   //占空比設置        
  86.                         break;
  87.                         
  88.                         case 6:
  89.                         TIM_SetCompare2(TIM2, 480*80);   //占空比設置        
  90.                         break;
  91.                         
  92.                         case 7:
  93.                         TIM_SetCompare2(TIM2, 480*100);   //占空比設置        
  94.                         break;
  95.                         
  96.                         default:
  97.                         TIM_SetCompare2(TIM2, 480*100);   //占空比設置        
  98.                         break;
  99.                 }               
  100.                
  101.         }
  102. }

  103. void manual_mode()
  104. {
  105. mode=2;
  106. TM1640_display(0,27);        //清屏
  107. TM1640_display(1,27);
  108. TM1640_display(2,27);
  109. TM1640_display(3,27);
  110. TIM_SetCompare2(TIM2, 0);   //占空比設置
  111.         while (1)
  112.         {

  113.                 b=ENCODER_READ();        //讀出旋轉編碼器值        
  114.                 if(b==1){a++;if(a>100)a=0;} //分析按鍵值,并加減計數器值。
  115.                 if(b==2){if(a==0)a=101;a--;}
  116.                 if(b==3)auto_mode();  //切換為自動模式
  117.                 if(b!=0)     //如果有旋轉器的操作
  118.                         {
  119.                         if(a/100==0)
  120.                         TM1640_display(0,20);
  121.                         else
  122.                         TM1640_display(0,a/100);
  123.                         TM1640_display(1,a%100/10); //顯示數值
  124.                         TM1640_display(2,a%10);
  125.                         TM1640_display(3,22);
  126.                         TIM_SetCompare2(TIM2, a*480);   //占空比設置
  127.                         }
  128.         }
  129. }
復制代碼

所有資料51hei提供下載:
調試器2程序.7z (147.49 KB, 下載次數: 233)
原理圖 PCB.rar (11.03 MB, 下載次數: 206)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:679233 發表于 2020-1-1 22:52 | 只看該作者
一直想找這種資料
回復

使用道具 舉報

板凳
ID:163153 發表于 2020-3-5 22:11 | 只看該作者
ER2019 發表于 2020-1-1 22:52
一直想找這種資料

感謝支持。。
回復

使用道具 舉報

地板
ID:688693 發表于 2020-3-7 18:11 | 只看該作者
很全,謝謝樓主啦
回復

使用道具 舉報

5#
ID:239822 發表于 2020-10-31 21:16 | 只看該作者
太坑了,就不能兩個文件放一起嗎,要扣兩次分,參考作用也不大
回復

使用道具 舉報

6#
ID:97678 發表于 2020-11-1 12:15 | 只看該作者
有沒有 STC 單片機的程序?
想找一個STC 的程序!!!!!!!!!
回復

使用道具 舉報

7#
ID:370590 發表于 2020-11-2 12:55 | 只看該作者
這個不錯,也學習一下。
回復

使用道具 舉報

8#
ID:724172 發表于 2020-11-4 16:29 | 只看該作者
太感謝了,終于找到這東西了
回復

使用道具 舉報

9#
ID:194844 發表于 2020-11-19 02:55 | 只看該作者
很全,謝謝樓主啦
回復

使用道具 舉報

10#
ID:337808 發表于 2021-4-9 17:58 | 只看該作者
PWM調壓調速
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩综合精品 | 国产精品视频不卡 | 欧美一级片在线 | 蜜桃精品视频在线 | www.av7788.com | 久久伊人影院 | 亚洲婷婷六月天 | 九色网址| 日日拍夜夜 | 无码国模国产在线观看 | 毛片网站在线观看 | 香蕉国产在线视频 | 精品一区二区三区在线观看 | 国产粉嫩尤物极品99综合精品 | 日韩超碰| 在线亚洲免费 | 一级黄色片一级黄色片 | 精品一区国产 | 欧美二区三区 | 欧美一级黄视频 | 毛片网站在线观看视频 | 日韩国产高清在线观看 | 日日操夜夜操天天操 | 日韩成人免费视频 | 久久久久久久国产 | 97久久精品午夜一区二区 | 中文字幕亚洲区一区二 | 99免费视频 | 98久久| 九九热免费看 | 天天影视色综合 | 日韩欧美手机在线 | 在线免费毛片 | 欧美一区二区 | 福利视频网 | 亚州午夜精品 | 日韩一区二区三区在线观看 | 亚洲精品久久久久中文字幕二区 | 国产一级成人 | 天天夜夜人人 | 91视频免费视频 |