打印

【电子竞赛预热赛】+自动恒温控制系统的实现(3)

[复制链接]
1404|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 jinglixixi 于 2017-11-21 10:39 编辑

   前面已经实现了温度的模拟测控,这次又购置了些器件,做了进一步的完善,主要体现在以下几个方面:
1.实现温度的双通道采集
为了满足环境温度检测与恒温控制的需要,在原设计的基础上又增添了一个温度温度传感器,并对显示界面进行了相应的修改,其变化如图5所示。
新增的温度传感器占用PC6,功能函数可通过复制的方法来实现,然后更改名称即可。
5 双温度传感器检测


2.以固态继电器控制加热器
为了便于加热控制和增强控制器件的使用寿命,特购置了固态继电器来控制加热器,其连接方式如图6所示。经测试,使用GPIO口即可触发其工作,其输出端则可以直接接入~220V电路。固态继电器所占用的GPIO口为PC7
6固态继电器控制


3.加热器的选取
本来已购置了电加热管,收到后才发现其功率太大了,如图7所示,做实验实在是不安全,所以只好改用电烙铁为加热器,其线路如图8所示。
7 电加热管

8 以电烙铁为加热器


经实际检测,在不添加PID调节算法的情况下可达到+/-1.5度的控制要求,在设置上、下限后其控制效果如图9所示。其中X1为上限温度值,X2为下限温度值,temp为当前的控制温度,temp’为环境温度。由于没有配置保温箱的缘故,再停止加热后温度跌落的较快,故控制温度的上限偏差小,而控制温度的下限偏差稍大。如果时间允许,加入PID调节后精度会有一定提高,有望达到+/-0.5度的控制指标。
9 温度控制效果
(注:左图的50.5度为控制温度的最高值,右图的47.1度为控制温度的最低值。)

4. 串行通讯功能
串行通讯功能是通过USBTTL来实现的,它与MCU的引脚连接连接为:
PA9  --USB_RXD
PA10 --USB_TXD
具体连接如图10所示
10 通过虚拟串口进行串行通讯

实现串行通讯的程序如下:
Uart_Init();
While(1)
{
...
DS18B20_Convert();
tempL = DS18B20_Read_Byte(); // LSB   
tempH = DS18B20_Read_Byte(); // MSB  
j=tempH*16+tempL/16;
Uart_Put_Char(j/100+'0');
Uart_Put_Char(j%100/10+'0');
Uart_Put_Char(j%10+'0');
Uart_Put_Char('.');
Uart_Put_Char((tempL%16)*10/16+'0');
Uart_Put_Char(0x0d);
Uart_Put_Char(0x0a);
}

11 串行通讯接收数据

12 串行通讯控制发送参数  (A456设置上限温度为45.6度)

13 串行通讯控制发送参数(B312设置下限温度为31.2度)

14 串行通讯控制发送参数(C000启动加热器)

15 串行通讯控制发送参数(D000关闭加热器)

至此,在下位机已实现了双字节数据的收发,已解决数据控制问题并添加了开关指令,实现了手工与通讯设置参数兼容及主动切换。由于LabVIEW的通讯驱动尚未搞定,因此暂时还没有绘制出温度曲线及进行上下限的设置处理。

相关帖子

沙发
修一明| | 2017-11-21 11:32 | 只看该作者
老铁6666

使用特权

评论回复
板凳
caijie001| | 2017-11-21 12:10 | 只看该作者
不错哦

使用特权

评论回复
地板
jinglixixi|  楼主 | 2017-11-22 09:45 | 只看该作者
大家互相参考提高吧。

使用特权

评论回复
5
caijie001| | 2017-12-5 12:22 | 只看该作者
快结束了哦,请上传些演示视频吧:
应该包括但不仅限于
开机 ——  一系列操作(设置温度等等)——通过显示 来展示温度的变化(数据、温度曲线)及最终的温度稳定(数据/温度曲线) ——  保持一小段时间  —— 关机

使用特权

评论回复
6
jinglixixi|  楼主 | 2017-12-6 10:38 | 只看该作者
尽快解决,有几个比赛撞车了,已经忙晕了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

464

主题

2780

帖子

38

粉丝