kdtcf 发表于 2009-10-5 12:26:46

恒温箱温度控制器(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)

schwarz 发表于 2009-10-5 12:28:48

这个东西上市场买也就一百多块吧?Cu50探头的。

ch2003_23 发表于 2009-10-5 13:13:38

春风全才
mark

rifjft 发表于 2009-10-5 13:22:54

不错的实例,顶一个

wahaha 发表于 2009-10-5 15:34:15

东西不错

armok 发表于 2009-10-5 15:35:21

Cool 啊。

春风上次电话提到的电源项目,有什么思路?

我后来想了一下,在网上讨论肯定不会有结果的。就完全按你的想法办就行了。

chinawph 发表于 2009-10-5 20:05:51

【1楼】 schwarz
积分:147
派别:
等级:------
来自:
这个东西上市场买也就一百多块吧?Cu50探头的。

================================================================================

我用过PT100探头的温控器,进口的听他们说要1千多块钱.

我准备仿照一批,用一样的外观,内部全部自己开发,现在已经开始筹备了.

schwarz 发表于 2009-10-5 20:19:25

楼上的,这种东西已经被浙江小老板们把成本做到最低了,你很难挤进去了。

kdtcf 发表于 2009-10-5 20:19:42

【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点阵屏

ch2003_23 发表于 2009-10-5 20:23:01

期待豪华级电源

schwarz 发表于 2009-10-5 20:34:20

现在正在做一个测控项目也是用ADS1232(24位)和STM32F103VBT6(结果买到的是101,还好不影响)。因为远程测量,估计工频干扰小不了,特地配的4.9152MHz的晶体抑制工频。

lcqqcl 发表于 2009-10-5 20:43:15

记号

lovely-teddy 发表于 2009-10-5 21:01:11

是不是需要加入PID呢

zzy9903 发表于 2009-10-6 09:16:12

下载学习咯,谢谢春风好同志,呵呵

zzy9903 发表于 2009-10-6 09:20:34

希望到时候大哥的电源能推出一个套件,不过建议采用数码管作显示,这样看起来很直观,用液晶视角是个问题

rqiang 发表于 2009-10-6 09:32:16

期待!

ywl0409 发表于 2009-10-6 09:43:05

LZ又准备搞多大功率的电源呢?

kdtcf 发表于 2009-10-6 13:11:01

【16楼】 ywl0409 老黄牛

LZ又准备搞多大功率的电源呢?
-------------------------------------------
功率也就是150W左右,和原来的差不多,这一版重点提高稳定性和可靠性,重点提高设定精度和测量精度,降低功耗,更贴近实用产品。

kdtcf 发表于 2009-10-6 13:17:00

【14楼】 zzy9903 9903

希望到时候大哥的电源能推出一个套件,不过建议采用数码管作显示,这样看起来很直观,用液晶视角是个问题
-------------------------------------------
其实是考虑里面很多标定功能要操作,很多功能和参数要方便修改,才选择用19264点阵屏的,毕竟不是卖给用户直接使用的产品,不过可以考虑预留LED数码管的接口,调试好了可以拔掉液晶用LED显示

ajoe 发表于 2009-10-6 15:40:41

顶一下,很好

Swallow 发表于 2009-10-6 17:46:15

顶!!!

weq12345 发表于 2009-10-6 18:52:00

LZ怎么不用12864做啊,19264贵哦,用用便宜的试试,让大家都有的做,呵呵!!

ywl0409 发表于 2009-10-6 19:50:36

希望LZ早日成功!

chinawph 发表于 2009-10-7 22:26:47

【7楼】 schwarz
积分:195
派别:
等级:------
来自:
楼上的,这种东西已经被浙江小老板们把成本做到最低了,你很难挤进去了。
========================================================================================

我在淘宝看了一下,PT100用的温控器从45远到2K多多少钱的都有,看来搞不搞没什么意思了.

aohuahua 发表于 2009-10-10 22:55:11

MARK

shangxf 发表于 2009-10-10 23:34:02

bbi3014 发表于 2009-10-11 08:31:19

好啊

chenwoli 发表于 2009-10-15 15:23:44

春风哥!这两天我都在看你的程序!我有点不明白!

//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 结束)

shanyan 发表于 2009-10-15 17:33:59

顶!

sonic 发表于 2009-10-15 20:02:09

mark

welcomezju 发表于 2009-10-17 10:53:32

我是一个单片机爱好者,还处于入门阶段。看到你上面的帖子,原理图、源代码都有了,我想自己买一些元件来进行调试。我现在还没有开发板,想学到工程应用的程度。大侠能否推荐相应的开发工具(包括软硬件)、上述实例零件清单及大致价格和书籍等等材料。这样我可以比较快的调通实例。因为我还没入门,所以大侠推荐工具、元件的时候能否写全称,如果有购买地址也可以告诉我。

hyl175 发表于 2009-10-17 10:59:42

mark

twtyv 发表于 2009-10-17 20:35:37

真是好东西呀
买一个这样的表一般200块内的控制精度只能在2度左右,不能再高了,这个程序的算法很值得学习>

sange 发表于 2009-10-17 22:22:10

mark

jljhma2000 发表于 2009-10-18 15:06:35

留记号。
希望早日看到春风兄的新版电源。

shichen717 发表于 2009-10-18 15:26:53

输出电流:1mA-5A连续可调,精度0.1%
--
lz打算怎么校准5A?经常遇到这个问题。

yyn853 发表于 2009-10-20 14:21:21

mark!

chenwoli 发表于 2009-10-20 17:45:35

怎么我问的问题没有回答啊?是不是程序有问题???如果有问题的话不会置COOL吧?

kevinsong 发表于 2009-10-20 18:37:12

mark!

w418781840 发表于 2009-10-20 18:45:15

学习

gx_huang 发表于 2009-10-20 19:14:26

【32楼】 twtyv
积分:199
派别:
等级:------
来自:武汉
真是好东西呀
买一个这样的表一般200块内的控制精度只能在2度左右,不能再高了,这个程序的算法很值得学习>
__________________________

不知道算法哪里好?我看了一下就是位式控制呀?哪里有算法?连PID都没有,控制精度不可能高的。
市面上的表,都有位式控制的,只要不是很烂的表,PID效果都不会比位式差的。

m-aaaa 发表于 2009-10-20 20:16:57

温控方面从精度效果方面还日本鬼子做的好些。

chao1977 发表于 2009-10-20 21:32:05

谢谢了,学习

kdtcf 发表于 2009-10-21 08:35:40

【27楼】 chenwoli

春风哥!这两天我都在看你的程序!我有点不明白!
比例你用的是(定时器 /计数器0 溢出)
#pragma interrupt_handler timer0_ovf_isr:12
怎么这里的向量号用的是12(USART, Rx 结束)
-------------------------------------------------------
这两天瞎忙,忘记回复了,你说的的确是个大BUG,是我偷懒直接拷贝的正在做的项目里的代码,用的是M32,拷贝过来也能用,忘记中断向量要修改的问题了,可是是到现在这个温度控制器依然运行正常,我也有些奇怪。

kdtcf 发表于 2009-10-21 08:41:58

【40楼】 gx_huang

【32楼】 twtyv
真是好东西呀
买一个这样的表一般200块内的控制精度只能在2度左右,不能再高了,这个程序的算法很值得学习>   
__________________________

不知道算法哪里好?我看了一下就是位式控制呀?哪里有算法?连PID都没有,控制精度不可能高的。
市面上的表,都有位式控制的,只要不是很烂的表,PID效果都不会比位式差的。
---------------------------------------------------------------------------------------------------
40楼说的对,的确没有什么很先进的算法,但是有人说好,不管说哪里我都没意见
我自己觉得最大特色就是简单实用,并且已经在应用了,你只要照原样做,然后烧代码就一定能工作。

j1361829 发表于 2009-10-21 09:32:43

收藏一下,谢谢LZ

welcomezju 发表于 2009-10-21 11:37:47

如果换成M128,上述代码哪些地方需要修改啊?

gx_huang 发表于 2009-10-21 13:13:14

呵呵,我并没有贬低LZ的意思。
只是技术上的不同看法而已。
现在市面上50元的温度控制仪表性能也很不错,位式控制效果都是一样的,取决于现场系统的热惯性。
自己DIY的注重乐趣,当商品卖则要考虑成本和性能了。

water1120211 发表于 2009-10-23 16:27:56

呵呵.如果DS18B20离线,箱内的鸡蛋会不会变成烤鸡的.

xyang18 发表于 2009-10-23 16:46:05

感谢楼主

qilin3 发表于 2009-10-26 14:12:08

mark,改天弄个 保温

xuysh 发表于 2009-10-26 15:49:09

请问楼主,您的控制精度达多少?给你实例是pid算法?如果不是温度控制精度应该不高吧?

kdtcf 发表于 2009-10-26 20:41:01

【51楼】 xuysh
请问楼主,您的控制精度达多少?给你实例是pid算法?如果不是温度控制精度应该不高吧?
-------------------------
可以设定上下限来限制温度变化范围的,因为有热惯性存在,就是关掉负载后温度还会升高一点的,负载开始加热后也会又下降一点的,就是说温度会比上下限设置超出点范围,不是很多,大部分应用能应付了,没有用到pid算法的,我没有用过温度pid控制。

weixintec 发表于 2009-10-26 22:58:47

好东西

wu111111mi 发表于 2009-10-30 14:29:07

好东东,程序能移植至m8吗?

super373 发表于 2009-11-1 12:53:50

mark~~~

XQGG 发表于 2010-1-8 12:55:45

标记:)

sitongwl 发表于 2010-1-10 21:45:24

好东西,顶

maomaofu 发表于 2010-1-10 22:14:16

好资料,另,原理图中有两个C23,呵呵

xnliuxiwen 发表于 2010-3-29 10:37:16

楼主有没有搞清楚为什么你那中断向量有问题还正常工作呢?刚才看到你说很奇怪.搞得我很想笑.ICCAVR有问题?

guhenggao 发表于 2010-3-29 12:14:10

mark

tyou 发表于 2010-3-29 12:20:08

上次本来也想做一个的,淘宝一搜便宜的很,买了个
可惜不是PID的, 过冲很大

回头看看能否改成PID的, DS1820+STC51,应该可以

那些定时器也是,30一个,,不过还没有看到有简单的倒计时定时器

pjjerry 发表于 2010-4-6 07:27:03

楼主你好! 我初学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    上    下无)
与上面的编码不一样,一时不知道如何下手,请楼主点解。

chen3bing 发表于 2010-4-6 08:57:40

顶一个!

chinalcy1989 发表于 2010-4-6 10:37:56

学习下

gpzdc986 发表于 2010-4-6 11:50:16

mark

gxy508 发表于 2010-4-6 12:49:24

mark

pjjerry 发表于 2010-4-10 15:17:30

回复【62楼】pjjerry
-----------------------------------------------------------------------

已经解决!

l.htlht 发表于 2010-6-3 12:54:02

学习学习!!

shouqiang_zhang 发表于 2010-6-3 17:33:53

mark

lwu_2008 发表于 2010-7-3 17:27:57

MARK

bluefeel 发表于 2010-7-3 18:51:57

mark

kelos3000 发表于 2010-7-9 20:45:48

dddddd

guo126101 发表于 2010-7-9 21:52:24

MARK

keton_cxc 发表于 2010-7-11 15:24:12

控制开关部分 个人觉得用固态继电器 或者是可控硅比较好 用电磁开关会电损 又有火花

wdmfhvk 发表于 2010-7-23 11:18:04

无私 ,敬意

qiufeng 发表于 2010-7-23 21:30:26

下了学习。

chengyang79 发表于 2010-7-23 22:30:15

春风是个实干主义者!

automation 发表于 2010-8-14 13:50:14

不错,PID就更加的好了!!

0331631 发表于 2010-8-31 12:51:51

mark   学习中

zhenke 发表于 2010-8-31 13:58:45

mark!

feixuehanyi 发表于 2010-10-1 00:05:32

mark

electricdream 发表于 2010-10-19 23:36:13

回复【楼主位】kdtcf 春风
-----------------------------------------------------------------------

春风大哥太有才了!

sc09009033 发表于 2010-10-24 23:55:08

太有才了!留名标记!

sc09009033 发表于 2010-10-25 00:06:45

太有才了!留名标记!

kexiao 发表于 2010-10-25 00:33:07

好东西。

lydxbzw 发表于 2010-11-2 19:02:04

mark

jiongeyes 发表于 2010-11-3 16:25:46

收了,真是好东西

lsy5110 发表于 2010-11-7 14:32:18

mark

starli 发表于 2010-11-9 23:06:50

原来可以这样省两个 4007

oycx.com 发表于 2010-11-28 22:35:36

好东西!

cuikai12345 发表于 2010-12-27 21:33:35

mark

heroling 发表于 2010-12-31 23:41:33

正想看看温控方面的 ,谢谢咯

z417078485 发表于 2011-1-1 10:29:05

mark

xinxinEC 发表于 2011-1-2 23:20:52

mark

wpnx 发表于 2011-1-4 10:51:44

mark

1screw1 发表于 2011-1-10 13:54:25

为啥不用可控硅调呢?

464736921 发表于 2011-1-10 16:15:30

mark!

wchhywizd 发表于 2011-1-10 17:03:21

mark

tuowai 发表于 2011-2-23 13:31:33

回复【96楼】1screw1
为啥不用可控硅调呢?
-----------------------------------------------------------------------

是哦,好象市面上用继电器的比较少了,可能继电器的更简单,节省成本吧
页: [1] 2
查看完整版本: 恒温箱温度控制器(M16+DS18B20)