恒温箱温度控制器(M16+DS18B20)
这几天亲戚说要做个恒温箱,叫我给做个温度控制器,我欣然答应了,挺简单的,两天就做好了,特发上来给入门的朋友做个参考。这个温度控制器通过继电器控制加热管加热,恒温设定温度要比环境温度高几摄氏度才能正常工作,需要设定两个参数,一个是上限关负载温度设定,分辨率0.1摄氏度,范围2-80摄氏度,另一个是下限开负载温度设定,分辨率0.1摄氏度,范围也是2-80摄氏度,如果下限设置比上限高,自动修改下限值,以上限减去2摄氏度做为下限。
两组数码管显示,上面的显示当前温度,下面的交替显示设置的上下限值
共有四个控制按键,从左到右依次是K1,K2,K3,K4。
1)下限设置:
按下K1,进入温度上限设置,数字闪烁,同时左第1位最上面显示一横,表示上限设置,按一次K2温度值加0.1摄氏度,按一次K3,温度值减小0.1摄氏度,设置好上限;
这时再按K1一次,进入下限温度设置,数字闪烁,同时左第1位最下面显示一横,表示是下限设置,按一次K2温度值加0.1摄氏度,按一次K3,温度值减小0.1摄氏度,设置好下限,再按一次K1,退出上下限设置,并把设置好的上下限参数保存到EEPROM中。
2)负载载控制开关控制:
有时不需要控制负载,就是待机状态,在工作状态下,按下K4,下面的数码管会关显示,什么也不显示,表示不控制负载,这时再按下K4,又回到工作状态,设置状态也保存EEPROM中,交替显示所设定的温度上下限值。
有原理图和源程序,编译环境是ICCAVR
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_488405.jpg
(原文件名:18B20.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_488406.jpg
(原文件名:温控器.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_488407.jpg
(原文件名:ALL.jpg)
http://cache.amobbs.com/bbs_upload782111/files_19/ourdev_488497.JPG
(原文件名:原理图.JPG)
点击此处下载 ourdev_488409.rar(文件大小:17K) (原文件名:原理图.rar)
点击此处下载 ourdev_488410.rar(文件大小:3K) (原文件名:源程序.rar) 这个东西上市场买也就一百多块吧?Cu50探头的。 春风全才
mark 不错的实例,顶一个 东西不错 Cool 啊。
春风上次电话提到的电源项目,有什么思路?
我后来想了一下,在网上讨论肯定不会有结果的。就完全按你的想法办就行了。 【1楼】 schwarz
积分:147
派别:
等级:------
来自:
这个东西上市场买也就一百多块吧?Cu50探头的。
================================================================================
我用过PT100探头的温控器,进口的听他们说要1千多块钱.
我准备仿照一批,用一样的外观,内部全部自己开发,现在已经开始筹备了. 楼上的,这种东西已经被浙江小老板们把成本做到最低了,你很难挤进去了。 【5楼】 armok 阿莫
Cool 啊。
春风上次电话提到的电源项目,有什么思路?
我后来想了一下,在网上讨论肯定不会有结果的。就完全按你的想法办就行了。
----------------------------------------
我的方案基本定下来了,先作出一版,大家看到实物再讨论,再改一版,这两天就能布线做板子了,
我总是觉得做得上档次一点才过瘾才有面子,用料有些奢侈
其实AD和DA都更奢侈,做到5位半测量是有些难度的,不过硬件应该做的好点,想升级都不容易啊,又耗时间又费银子。
暂时方案大致是:
包括变压器和显示屏在内整体成本控制在500-600元
输出电压:0V-30V连续可调,精度0.1%
输出电流:1mA-5A连续可调,精度0.1%
通过串口设置电压和电流,工业现场很有用
MCU:STM32F103RBT6
AD:ADS1256(24BIT/30K/4CH)
DA:DAC8534(16BIT/4CH)
基准源:AD780BR
散热:100W电脑CPU散热器,设计在板子上面
显示用19264点阵屏 期待豪华级电源 现在正在做一个测控项目也是用ADS1232(24位)和STM32F103VBT6(结果买到的是101,还好不影响)。因为远程测量,估计工频干扰小不了,特地配的4.9152MHz的晶体抑制工频。 记号 是不是需要加入PID呢 下载学习咯,谢谢春风好同志,呵呵 希望到时候大哥的电源能推出一个套件,不过建议采用数码管作显示,这样看起来很直观,用液晶视角是个问题 期待! LZ又准备搞多大功率的电源呢? 【16楼】 ywl0409 老黄牛
LZ又准备搞多大功率的电源呢?
-------------------------------------------
功率也就是150W左右,和原来的差不多,这一版重点提高稳定性和可靠性,重点提高设定精度和测量精度,降低功耗,更贴近实用产品。 【14楼】 zzy9903 9903
希望到时候大哥的电源能推出一个套件,不过建议采用数码管作显示,这样看起来很直观,用液晶视角是个问题
-------------------------------------------
其实是考虑里面很多标定功能要操作,很多功能和参数要方便修改,才选择用19264点阵屏的,毕竟不是卖给用户直接使用的产品,不过可以考虑预留LED数码管的接口,调试好了可以拔掉液晶用LED显示 顶一下,很好 顶!!! LZ怎么不用12864做啊,19264贵哦,用用便宜的试试,让大家都有的做,呵呵!! 希望LZ早日成功! 【7楼】 schwarz
积分:195
派别:
等级:------
来自:
楼上的,这种东西已经被浙江小老板们把成本做到最低了,你很难挤进去了。
========================================================================================
我在淘宝看了一下,PT100用的温控器从45远到2K多多少钱的都有,看来搞不搞没什么意思了. MARK 好 好啊 春风哥!这两天我都在看你的程序!我有点不明白!
//TIMER0 initialize - prescale:256
// desired value: 2mSec
// actual value:2.000mSec (0.0%)
void timer0_init(void)
{
CLI(); //disable all interrupts
TCCR0 = 0x00; //stop
TCNT0 = 0x83; //set count
OCR0= 0x7D;//set compare
TCCR0 = 0x04; //start timer
TIMSK = 0x01; //timer interrupt sources
SEI(); //re-enable interrupts
}
比例你用的是(定时器 /计数器0 溢出)
#pragma interrupt_handler timer0_ovf_isr:12
怎么这里的向量号用的是12(USART, Rx 结束) 顶! mark 我是一个单片机爱好者,还处于入门阶段。看到你上面的帖子,原理图、源代码都有了,我想自己买一些元件来进行调试。我现在还没有开发板,想学到工程应用的程度。大侠能否推荐相应的开发工具(包括软硬件)、上述实例零件清单及大致价格和书籍等等材料。这样我可以比较快的调通实例。因为我还没入门,所以大侠推荐工具、元件的时候能否写全称,如果有购买地址也可以告诉我。 mark 真是好东西呀
买一个这样的表一般200块内的控制精度只能在2度左右,不能再高了,这个程序的算法很值得学习> mark 留记号。
希望早日看到春风兄的新版电源。 输出电流:1mA-5A连续可调,精度0.1%
--
lz打算怎么校准5A?经常遇到这个问题。 mark! 怎么我问的问题没有回答啊?是不是程序有问题???如果有问题的话不会置COOL吧? mark! 学习 【32楼】 twtyv
积分:199
派别:
等级:------
来自:武汉
真是好东西呀
买一个这样的表一般200块内的控制精度只能在2度左右,不能再高了,这个程序的算法很值得学习>
__________________________
不知道算法哪里好?我看了一下就是位式控制呀?哪里有算法?连PID都没有,控制精度不可能高的。
市面上的表,都有位式控制的,只要不是很烂的表,PID效果都不会比位式差的。 温控方面从精度效果方面还日本鬼子做的好些。 谢谢了,学习 【27楼】 chenwoli
春风哥!这两天我都在看你的程序!我有点不明白!
比例你用的是(定时器 /计数器0 溢出)
#pragma interrupt_handler timer0_ovf_isr:12
怎么这里的向量号用的是12(USART, Rx 结束)
-------------------------------------------------------
这两天瞎忙,忘记回复了,你说的的确是个大BUG,是我偷懒直接拷贝的正在做的项目里的代码,用的是M32,拷贝过来也能用,忘记中断向量要修改的问题了,可是是到现在这个温度控制器依然运行正常,我也有些奇怪。 【40楼】 gx_huang
【32楼】 twtyv
真是好东西呀
买一个这样的表一般200块内的控制精度只能在2度左右,不能再高了,这个程序的算法很值得学习>
__________________________
不知道算法哪里好?我看了一下就是位式控制呀?哪里有算法?连PID都没有,控制精度不可能高的。
市面上的表,都有位式控制的,只要不是很烂的表,PID效果都不会比位式差的。
---------------------------------------------------------------------------------------------------
40楼说的对,的确没有什么很先进的算法,但是有人说好,不管说哪里我都没意见
我自己觉得最大特色就是简单实用,并且已经在应用了,你只要照原样做,然后烧代码就一定能工作。 收藏一下,谢谢LZ 如果换成M128,上述代码哪些地方需要修改啊? 呵呵,我并没有贬低LZ的意思。
只是技术上的不同看法而已。
现在市面上50元的温度控制仪表性能也很不错,位式控制效果都是一样的,取决于现场系统的热惯性。
自己DIY的注重乐趣,当商品卖则要考虑成本和性能了。 呵呵.如果DS18B20离线,箱内的鸡蛋会不会变成烤鸡的. 感谢楼主 mark,改天弄个 保温 请问楼主,您的控制精度达多少?给你实例是pid算法?如果不是温度控制精度应该不高吧? 【51楼】 xuysh
请问楼主,您的控制精度达多少?给你实例是pid算法?如果不是温度控制精度应该不高吧?
-------------------------
可以设定上下限来限制温度变化范围的,因为有热惯性存在,就是关掉负载后温度还会升高一点的,负载开始加热后也会又下降一点的,就是说温度会比上下限设置超出点范围,不是很多,大部分应用能应付了,没有用到pid算法的,我没有用过温度pid控制。 好东西 好东东,程序能移植至m8吗? mark~~~ 标记:) 好东西,顶 好资料,另,原理图中有两个C23,呵呵 楼主有没有搞清楚为什么你那中断向量有问题还正常工作呢?刚才看到你说很奇怪.搞得我很想笑.ICCAVR有问题? mark 上次本来也想做一个的,淘宝一搜便宜的很,买了个
可惜不是PID的, 过冲很大
回头看看能否改成PID的, DS1820+STC51,应该可以
那些定时器也是,30一个,,不过还没有看到有简单的倒计时定时器 楼主你好! 我初学AVR ,试了一下程序,数码管显示没搞明白,数码管怎么接?
我查了下编码:
----------------------------------------------------
unsigned char code distab={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, //共阴数码管段选码表,无小数点
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}
unsigned char code distab={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87, //共阴数码管段选码表,有小数点
0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1}
unsigned char code distab={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, //共阳数码管段选码表,无小数点
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}unsigned char code distab={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78, //共阳数码管段选码表,有小数点
0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e}
--------------------------------------------------
你提供的编码(//码表1
unsigned char ma[] = {0xA0,0xBB,0x62,0x2A,0x39,0x2C,0x24,0xBA,0x20,0x28,0x30,0x31,0xe4,0x23,0x64,0x70,0xfe,0xef,0xff};
//码表2 0 1 2 3 4 5 6 7 8 9 A b C d E F 上 下无)
与上面的编码不一样,一时不知道如何下手,请楼主点解。 顶一个! 学习下 mark mark 回复【62楼】pjjerry
-----------------------------------------------------------------------
已经解决! 学习学习!! mark MARK mark dddddd MARK 控制开关部分 个人觉得用固态继电器 或者是可控硅比较好 用电磁开关会电损 又有火花 无私 ,敬意 下了学习。 春风是个实干主义者! 不错,PID就更加的好了!! mark 学习中 mark! mark 回复【楼主位】kdtcf 春风
-----------------------------------------------------------------------
春风大哥太有才了! 太有才了!留名标记! 太有才了!留名标记! 好东西。 mark 收了,真是好东西 mark 原来可以这样省两个 4007 好东西! mark 正想看看温控方面的 ,谢谢咯 mark mark mark 为啥不用可控硅调呢? mark! mark 回复【96楼】1screw1
为啥不用可控硅调呢?
-----------------------------------------------------------------------
是哦,好象市面上用继电器的比较少了,可能继电器的更简单,节省成本吧
页:
[1]
2