水温控制系统报告 - 图文 联系客服

发布时间 : 星期二 文章水温控制系统报告 - 图文更新完毕开始阅读f34ecc1d02768e9951e738b4

课程设计报告 case 0x06: d[3]=0x03;d[4]=0x07;d[5]=0x05;d[6]=0x00;break;//.3750 case 0x07: d[3]=0x04;d[4]=0x03;d[5]=0x07;d[6]=0x05;break;//.4375 case 0x08: d[3]=0x05;d[4]=0x00;d[5]=0x00;d[6]=0x00;break;//.5000 case 0x09: d[3]=0x05;d[4]=0x06;d[5]=0x02;d[6]=0x05;break;//.5625 case 0x0A: d[3]=0x06;d[4]=0x02;d[5]=0x05;d[6]=0x00;break;//.6250 case 0x0B: d[3]=0x06;d[4]=0x08;d[5]=0x07;d[6]=0x05;break;//.6875 case 0x0C: d[3]=0x07;d[4]=0x05;d[5]=0x00;d[6]=0x00;break;//.7500 case 0x0D: d[3]=0x08;d[4]=0x01;d[5]=0x02;d[6]=0x05;break;//.8125 case 0x0E: d[3]=0x08;d[4]=0x07;d[5]=0x05;d[6]=0x00;break;//.8750 case 0x0F: d[3]=0x09;d[4]=0x03;d[5]=0x07;d[6]=0x05;break;//.9375 } }

经过转换后,在LCD1602上显示的是例如“25.7。C”的字样,由整数位TempH和小

数位XiaoShu[TempX]构成。

3.7 PID算法功能与实现

PID的实现有两种方法,分别是位置式PID和增量式PID。关于PID的实现方法和数

学推导在这里就不另行论述了。

此系统采用的是位置式PID,PID参数P=2,I=0,D=5。参数时参考网上的经验设置

的,并没有经过严格计算。

由于PID设置时采用的是浮点数,所以单片机中与其相关的“设置温度”参数也采

用了浮点数。因此,笔者采用共用体的方式实现了上位机与单片机的串口通信。AVR单片机ATMega16采用小端数据存储方式,与PC机相同,这一点51与之不同。

课程设计后期,将之前的继电器换为了固态继电器SSR,所以控制精度将会由于硬

件上的可操作性的提升而有提升的空间。因此可以设计其他的算法,而PID只是其中一种简单的算法。

第 17 页

课程设计报告 3.8误差与定标

3.8.1关于误差

其实误差主要是由四部分造成的。 (1)加热棒在通电后到开始加热的时间。

这部分时间较小,可以忽略

(2)加热棒加热后到温度计测定点水温开始变化的时间 (3)测定点的水温变化后传感器的反应时间

三部分时间之和就是整个系统的延时时间。我们从开始加热到看到DS18B20温度变

化的时间就是这三部分时间之和。 (4)采样周期带来的延时

因此首先要确定这个时间,以及停止加热后到DS18B20显示数据不再上升的时间。

这两个时间基本相等,都是延时时间。

图3-19 误差示意图

3.8.2关于定标

可以先用一个温度计(精确到度就可以了)大致确定加热的温度。之后再改进。定

标需要确定几个位置,如图3-20所示。

第 18 页

课程设计报告

图3-20 定标

3.9固态继电器SSR

固态继电器SSR采用5V直流电压控制220V交流电路的通断。其控制的实现方式都是通过导通或截止交流电路实现的。它与普通电磁式继电器的不同之处在于:SSR导通时间迅速,控制功率小,输入功率小,因此可以承受迅速变化的控制规律如PWM,而普通继电器会因为功率过大而使三极管受损。

关于SSR更详细的特点和使用方法有待进一步研究。 使用SSR的修改后的电路图如图3-21所示。

第 19 页

课程设计报告 C41ufVCCC51ufJ1594837261DB9-FVCC123123C1RXDTXD1ufC2MAX232ACPE(16)U11C1+VCC2V+GND3C1 -T1 OUT4C2+R1 IN5C2 -R1 OUT6V-T1 IN7T2 OUTT2 IN8R2 INR2 OUTC31ufVCC1615141312111090.1ufTXDRXDPD0PD1VCCR24.7KR34.7KR44.7K+C610UF/16VPA0VCCVCCPA1VCCPA2Q1D1IN4148R110K12PB2345MOSI6MISO7SCK8RST910VCC11XTAL112XTAL213PD014PD115PD216PD317PD4181920VCC246810PB0(XCK/T0)(ADC0)PA0PB1(T1)(ADC1)PA1PB2(INT2/AIN0)(ADC2)PA2PB3(OC0/AIN1)(ADC3)PA3PB4(!SS)(ADC4)PA4PB5(MOSI)(ADC5)PA5PB6(MISO)(ADC6)PA6PB7(SCK)(ADC7)PA7RESETAREFVCCGNDGNDAVCCXTAL2(TOSC2)PC7XTAL1(TOSC1)PC6PD0(RXD)(TDI)PC5PD1(TXD)(TDO)PC4PD2(INT0)(TMS)PC3PD3(INT1)(TCK)PC2PD4(OC1B)(SDA)PC1PD5(OC1A)(SCL)PC0PD6(ICP1)(OC2)PD7ATMEGA16VCC4039383736353433323130292827262524232221PA0PA1PA2VCCI/OGNDVCCI/OGNDVCCI/OGNDVCCR61KU2DS18B20U3DS18B20U4DS18B20 RST21LCD1VCC16151413121110987654321BL-BL+D7D6D5D4D3D2D1D0ENRWRSVLVCCGNDLCD1602J2CON2NeutralR-Live112C8XTAL22123J3CON2VCC GND12+C7KEY4KEY4234110uf22pfX2XTALC9XTAL1134X1MOSI13RST5SCK7MISO9MOSIVCCGNDRSTGNDSCKGNDMISOGNDAVRISPKEY1PD21144R-Live122pfK24433R10300RF2FUSE1OpenLCD1602R5KEY2PD31144PB21KEY3141K4PD4Neutral2211OpenSSR 5A 220VAC22KEY43322KEY43322KEY433

图3-21 最终的电路图

3.10 PCB制作

PCB使用的是Protel99SE绘制制作的。 关于PCB制作,有以下经验:

1.首先要保证原理图正确,这次制作的PCB就因为串口线PD0和PD1画反了,结果只好在背面跳了两根线。PCB跳线和一般焊接没有什么区别,将两个有电路连接需要的焊点用导线连在一起就是。另外可以用锉刀等把PCB本身错误的导线搓断。

经过这次错误,笔者把原先的原理图中的AVR单片机的第二管脚功能也画到了它的库当中,细心的读者对比上文两个电路原理图就能看出。

2.向DB9串口这样的器件,一定要注意方向。这次就把方向搞反了。另外,接入单片机的DB9都是母口的。

3.关于焊盘和焊孔的大小,不要盲目使用Protel99SE中预制的大小。一般电容、电阻、单片机(DIP)、1602(SIP)、晶振的大小可以使用预制的大小,分别是32/62mil

第 20 页