标题: 852D热风器改造 附MAX6675+STM32源程序 [打印本页]

作者: ksljxxq    时间: 2020-5-16 14:48
标题: 852D热风器改造 附MAX6675+STM32源程序
跟随着我有8年的852D热风器温差相差太大了,有一次维修把人家主板差点焊坏了于是决定改造,经过了一个星期时间改造完成,主控是STM32F103RC是买的小板再焊到万能板上,一块板子也没必要打样,温度采集模块MAX6675这个模块也不错有冷端补偿,原来的电源开关改成二位按键,上按是电源开关,下按是功能可能调节PID参数,调节温度用E11编码开关,编码开关按一下可以保存温度和数据。


拆下来的旧板扔了


都拆光了,只用外壳和气泵


改好的主板正面,只用原来的调压一部分电路


在网上买的STM32F103RT主控板


关机时冷却


温差也很小还稳定


关机显示,关机也可以调温度,然后再开机
下面有程序,原理图大概了一下,你们可以跟程序再定义一下;

STM32单片机源程序如下:
  1. #include "1602.h"
  2. #include "max6675.h"
  3. #include "time_init.h"
  4. #include "display.h"
  5. #include "pid.h"
  6. #include "pidout.h"
  7. #include "24c02.h"
  8. #include "key.h"
  9. #include "led.h"
  10. u8 STATUS=0;

  11. u8 rtc[3];  //实时时钟
  12. u16 Kms10;
  13. u16 sec;
  14. u16 pidcalcms;
  15. void delay_ms(u16 x)
  16. {
  17.         u16 i=0;
  18.   while(x--)
  19.         {
  20.     i=12000;           //1.5ms
  21.     while(i--);               
  22.         }        
  23. }

  24. void delay_us(u16 us)
  25. {
  26.          u8 i;
  27.   while(us--)
  28.         {
  29.           for(i=0;i<6;i++)
  30.                 {
  31.                
  32.                 }
  33.         }
  34. }

  35. void run_clock()
  36. {
  37. rtc[2]++;
  38.         if(rtc[2]>=60)
  39.         {
  40.           rtc[2]=0;
  41.                 rtc[1]++;
  42.                 if(rtc[1]>=60)
  43.                 {
  44.                   rtc[1]=0;
  45.                         rtc[0]++;
  46.                         if(rtc[0]>=24)
  47.                         {
  48.                           rtc[0]=0;
  49.                         }
  50.                 }
  51.         }
  52. }
  53. void TIM4_IRQHandler() //10ms
  54. {                                          
  55.         static u8 tsec; u8 st;
  56.         st=TIM_GetFlagStatus(TIM4, TIM_IT_Update);
  57.         if(st!=0)
  58.         {  TIM_ClearFlag(TIM4, TIM_IT_Update);
  59.                 Kms10++;

  60.                 if(tsec++>=100)
  61.                 {
  62.                   tsec=0;
  63.                          run_clock();
  64.                         if(rtc[2]%2)  ;//led_on ;
  65.                         else          ;//led_off;
  66.                 }
  67.         }
  68. }

  69. void TIM3_IRQHandler() //1ms
  70. {                                          
  71.   u8 st;
  72.         st=TIM_GetFlagStatus(TIM3, TIM_IT_Update);
  73.         if(st!=0)
  74.         {
  75.                 TIM_ClearFlag(TIM3, TIM_IT_Update);
  76.                 pidcalcms++;
  77.                 pwm_out();
  78.         }
  79. }

  80. void Isr_Init()
  81. {
  82.                 NVIC_InitTypeDef NVIC_InitStructure;
  83.                 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
  84.                 NVIC_InitStructure.NVIC_IRQChannel =TIM4_IRQn;// TIM4_IRQChannel;
  85.                 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  86.                 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
  87.                 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  88.                 NVIC_Init (&NVIC_InitStructure);

  89.                 NVIC_InitStructure.NVIC_IRQChannel =TIM3_IRQn;// TIM3_IRQChannel;
  90.                 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  91.                 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
  92.                 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  93.                 NVIC_Init (&NVIC_InitStructure);
  94.         
  95. }

  96. u8 a;
  97. int main()
  98. {
  99.                 SystemInit();  //将主频调整到72M
  100.                 GPIO_Configuration();
  101.                 AT24CXX_Init(); //24CXX初始化
  102.                 Max6675_Init();
  103.                 PIDParament_Init();  //
  104.                 PWM_init();
  105.                 Timer4_init();        //T4 10ms时钟        
  106.                 Timer3_init();        //T3 1ms时钟        
  107.                 Isr_Init();
  108.                 key_Init();
  109.     LED_Init();
  110.           LCD1602_Init();
  111.                 LCD1602_ClearScreen();
  112.    while(1)
  113.    {
  114.                   pid_calc();  //pid??
  115.                   Display();
  116.                   read_temper();//??????
  117.                   key_scan();
  118.       E11();
  119.                
  120.    }
  121. }
复制代码

所有资料51hei提供下载:
温控.7z (214.26 KB, 下载次数: 243)
stm32与风量调节原理图.rar (270.02 KB, 下载次数: 195)


作者: 20768797    时间: 2020-5-16 15:04
很好  很实用的改造,这回不怕过温吹黑了。
作者: slyt    时间: 2020-5-16 23:18
有创意,学习了!
作者: zmc5354    时间: 2020-5-18 13:37
改得有点失望!
作者: wangniuliu    时间: 2020-5-30 00:34
厉害大神
作者: wangniuliu    时间: 2020-5-30 01:19
我的快克857想改一下 大神能指点一下吗
作者: ksljxxq    时间: 2020-6-18 06:59
画的原理图供大家下载

852D热风.pdf

425.52 KB, 下载次数: 132, 下载积分: 黑币 -5


作者: xiesonny    时间: 2020-7-5 22:47
有一说一,楼主有点东西呀
作者: xiesonny    时间: 2020-7-5 22:48
好东西呀,学到了
作者: nihao121    时间: 2021-3-13 22:25
这个真不错,有空跟着楼主学习也改一下!
作者: zhousisiwuqing    时间: 2021-3-17 14:59
好东西,下了改造我的850.
作者: cooleaf    时间: 2021-3-22 15:32
看来玩单片机的坛友们,好象喜欢植物的挺多的,至少照片周围看到的挺多。
作者: ziuny    时间: 2021-3-24 09:18
diy乐趣多,支持折腾
作者: makeking    时间: 2021-6-4 10:31
谢谢楼主分享,打算把我的850升下级。
作者: hj2008ss    时间: 2021-7-22 19:30
这个帖子真是太好了,我刚好有一个852D的老热风器,放在有两年没有使用了,正准备扔了来着,这下好了,可以废物利用了哈,,感谢楼主的分享哈,。。。
作者: liwenying    时间: 2022-7-25 20:06
有点黑看不清那个
作者: 王士起    时间: 2022-11-28 07:17
我的也是这个型号,一开机就高温,但实际温度正常,能正常吹焊,就显示温庋高
作者: weinile    时间: 2023-1-1 23:51
我的也是。用久了现在温飘很大
作者: a4681748    时间: 2023-1-4 14:55
都上stm单片机了,应该搞个高大上的彩屏来显示。
作者: largosoft    时间: 2023-7-20 22:05
非常感谢,我有一台 852D,我将通过这个项目对其进行升级。
作者: 巨人卡奥    时间: 2024-8-14 08:35
我的852D可以升级了
作者: jz701209    时间: 2024-9-24 09:45
谢谢楼主分享




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1