标题: 开源基于STM8的增量式PID制冷片温控器 [打印本页]

作者: jiujiu    时间: 2014-12-21 01:29
标题: 开源基于STM8的增量式PID制冷片温控器
原创开源
此电路和程序已经过实际测试,性能稳定,我用的是6A的制冷片,没有啥问题哈,IRF530稍微有些暖而已。
电源:LM2596
CPU:STM8S103K3T6(内部16MHz RC)
测温装置:DS18B20
制冷片驱动电路:PC923+IRF530
编译环境:IAR FOR STM8 V1.3
程序框架:500ms时间片
控制算法:PWM的增量式PID(参考论坛上的资料)
原理图


单片机源程序如下:
  1. #include "PID.h"


  2. int tempset,tempnow,tempctrl;   //温度设置,现在温度,温度控制量

  3. int PID_Init(void)
  4. {
  5.   int DisTemp;
  6.   DisTemp = EEPROM_Read(0);
  7.   if(DisTemp >= 127) DisTemp = -1 - (0xFF - DisTemp);
  8.   if(DisTemp < -20)DisTemp = -20;
  9.   else if(DisTemp > 40)DisTemp = 40;
  10.   tempset = DisTemp*10;      //将温度值转换为PID值;
  11.   return DisTemp;
  12. }

  13. unsigned int DOPID(void)
  14. {
  15.   static int err = 0,err1 = 0,err2 = 0;    //本次、上次、上上次误差
  16.   signed int add;   //增量
  17.   tempnow = ReadTemperature();    //获取温度值
  18.   err = tempset*10 - tempnow;     //  比设定值高出0.5℃
  19.   if(err >= 100)
  20.   {
  21.     tempctrl = 5400;    //全速升温
  22.   }
  23.   else if(err <= -100)
  24.   {
  25.     tempctrl = 100;     //全速降温
  26.   }
  27.   else
  28.   {
  29.     add = KP*(err - err1) + KI*err + KD*(err - 2*err1 + err2);    //计算增量
  30.     tempctrl = tempctrl + add;
  31.   }
  32.   if(tempctrl > 5400)     // 0x1D45 / 2= 3746
  33.   {
  34.     tempctrl = 5400;   //限幅
  35.   }
  36.   if(tempctrl < 100)
  37.   {
  38.     tempctrl = 100;
  39.   }
  40.   err2 = err1;    //保存误差
  41.   err1 = err;
  42.   return tempctrl;
  43. }

  44. void CtrlTemp(void)
  45. {
  46.   static unsigned int PWM_Value = 0;
  47.   PWM_Value = DOPID();
  48.   //PWM_Timet1(5400);
  49.   PWM_Timet1(PWM_Value);
  50. }
复制代码


本人初学,仅供参考,如有错误,请大家回帖多多指教,代码工程下载: 程序 原理图.zip (712.49 KB, 下载次数: 460)



作者: c8112499    时间: 2014-12-22 22:36
收藏了,谢谢。。。。。。。。。。。。。。。
作者: heyonlin1979    时间: 2014-12-24 18:59
收藏!!!!!!!!!!!!!!!!!!!!
作者: barons    时间: 2015-1-28 11:34
收藏下先,谢谢
作者: cqh757128    时间: 2015-4-19 18:17
谢谢楼主的资料
作者: 一本正经说胡话    时间: 2016-8-30 20:01
很好  先收藏了  最近在学这个。
作者: 黑色芯片    时间: 2017-4-4 13:25
楼主可以的,谢谢啊
作者: xllin    时间: 2017-4-9 22:43
收藏下先,谢谢
作者: xllin    时间: 2017-4-9 22:43
收藏下先,谢谢
作者: lw082273    时间: 2017-6-8 17:26
谢谢  刚好需要
作者: zhnagrui95    时间: 2017-6-13 11:29
学习了  收藏了  谢谢
作者: andersonleo    时间: 2017-6-18 19:32
我来看看
作者: adee    时间: 2017-6-20 22:24
谢谢,学习中!
作者: zhnagrui95    时间: 2017-7-18 10:01
学习学习              51黑有你更精彩!!!!!!
作者: 易晓勇121    时间: 2017-7-20 13:31
学习学习、、、、、
作者: zhyum1    时间: 2017-11-6 00:37
正在研究温度控制,参考下感谢分享
作者: mmhkshh    时间: 2017-11-21 13:23
收藏,不错的资料
作者: ziuny    时间: 2017-11-22 12:56
pid值得学习
作者: stlong    时间: 2017-11-28 09:41

收藏了,谢谢。。。。。。。。。。。。。。。
作者: ailexy    时间: 2018-4-3 16:31
谢谢楼主的资料,收藏了
作者: Akon4    时间: 2018-4-3 17:12
学习一下 谢谢
作者: 自由电子    时间: 2018-4-4 11:09
前来学习,感谢分享!
作者: czwang    时间: 2018-4-6 23:49
谢谢分享!
作者: swt233    时间: 2018-4-8 18:24
收藏学习
作者: whs123456    时间: 2018-4-14 12:47
谢谢分享
作者: 294411253    时间: 2018-5-21 14:27
谢谢  刚好需要
作者: jiqingming    时间: 2018-8-13 09:58
收藏学习
作者: wo51hei    时间: 2018-8-15 17:14
谢谢  刚好需要
作者: flyingcool    时间: 2018-10-11 21:26
没有bi啊,观看
作者: cooldog123pp    时间: 2019-3-12 13:52
问下 论坛上资料链接在哪里
作者: xia61881    时间: 2019-3-17 21:03
谢谢楼主的资料
作者: xia61881    时间: 2019-3-17 21:08

谢谢分享!
作者: xia61881    时间: 2019-3-18 10:43
学习一下 谢谢
作者: xia61881    时间: 2019-3-19 16:35
谢谢分享!
作者: cool900    时间: 2019-4-28 08:10

收藏下先,谢谢
作者: hq987333864    时间: 2019-5-16 15:24
感谢分享!
作者: jovew    时间: 2019-11-28 09:07
好东西,试试看!
作者: jovew    时间: 2019-11-28 09:15
原理图不清楚,为什么不提供电子文档?
作者: taotao123    时间: 2021-8-18 10:03
图纸看不清,而且图纸放大了看见这控制原理也是不对。
作者: nmgbtzyf    时间: 2021-8-23 01:02
想知道制冷片的散热问题,你是怎么处理的?




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