标题:
开源基于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(参考论坛上的资料)
原理图
145747blsbqqsszrk1nsml.jpg
(57.29 KB, 下载次数: 260)
下载附件
2014-12-21 01:46 上传
单片机源程序如下:
#include "PID.h"
int tempset,tempnow,tempctrl; //温度设置,现在温度,温度控制量
int PID_Init(void)
{
int DisTemp;
DisTemp = EEPROM_Read(0);
if(DisTemp >= 127) DisTemp = -1 - (0xFF - DisTemp);
if(DisTemp < -20)DisTemp = -20;
else if(DisTemp > 40)DisTemp = 40;
tempset = DisTemp*10; //将温度值转换为PID值;
return DisTemp;
}
unsigned int DOPID(void)
{
static int err = 0,err1 = 0,err2 = 0; //本次、上次、上上次误差
signed int add; //增量
tempnow = ReadTemperature(); //获取温度值
err = tempset*10 - tempnow; // 比设定值高出0.5℃
if(err >= 100)
{
tempctrl = 5400; //全速升温
}
else if(err <= -100)
{
tempctrl = 100; //全速降温
}
else
{
add = KP*(err - err1) + KI*err + KD*(err - 2*err1 + err2); //计算增量
tempctrl = tempctrl + add;
}
if(tempctrl > 5400) // 0x1D45 / 2= 3746
{
tempctrl = 5400; //限幅
}
if(tempctrl < 100)
{
tempctrl = 100;
}
err2 = err1; //保存误差
err1 = err;
return tempctrl;
}
void CtrlTemp(void)
{
static unsigned int PWM_Value = 0;
PWM_Value = DOPID();
//PWM_Timet1(5400);
PWM_Timet1(PWM_Value);
}
复制代码
本人初学,仅供参考,如有错误,请大家回帖多多指教,代码工程下载:
程序 原理图.zip
(712.49 KB, 下载次数: 460)
2014-12-21 01:29 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
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