自动控制系统工程案例DOCWord下载.docx

上传人:b****7 文档编号:22356165 上传时间:2023-02-03 格式:DOCX 页数:17 大小:108.90KB
下载 相关 举报
自动控制系统工程案例DOCWord下载.docx_第1页
第1页 / 共17页
自动控制系统工程案例DOCWord下载.docx_第2页
第2页 / 共17页
自动控制系统工程案例DOCWord下载.docx_第3页
第3页 / 共17页
自动控制系统工程案例DOCWord下载.docx_第4页
第4页 / 共17页
自动控制系统工程案例DOCWord下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

自动控制系统工程案例DOCWord下载.docx

《自动控制系统工程案例DOCWord下载.docx》由会员分享,可在线阅读,更多相关《自动控制系统工程案例DOCWord下载.docx(17页珍藏版)》请在冰豆网上搜索。

自动控制系统工程案例DOCWord下载.docx

该温室大棚的控制需要满足以下要求:

当温室大棚内的温度和湿度发生变化时,该系统能够进行实时的调节,控制电机带动卷帘门和通风口的大小,来调节棚内的温度和湿度,来维持作物的正常生长。

本系统利用单片机作为主控机,对温室内的温度和湿度进行实时的监测和调控,以满足温室内植物生长的环境要求。

1、温湿度实时、准确的显示。

通过单总线数字式温度传感器DS18B20进行温度采集,采用湿敏电容HS1100对适度参数进行采集,通过单片机AT89C51对采集到的数据进行处理,由LCD显示屏对当前的温度值和湿度值进行显示。

2、键盘输入并显示。

操作人员可根据不同作物的不同时期的最适宜生长环境将温度值和湿度值由键盘输入并且由显示器进行显示。

便于调节作物在不同生长期所需的最适宜生长环境,以满足不同用户的需求。

3、超限报警功能。

报警模块具有两项功能,即为报警灯和声音报警。

当采集到的温度、湿度值与标准值之间存在较大差异时,及时启动报警装置进行报警,并采取相应的措施,实现通信功能。

配有通信接口可方便的与计算机进行通信,将采集到的温度值和湿度值传送到计算机上,以便进行实时的监控。

三、温室控制系统的硬件设计

大棚温湿度控制原理图

1、温度调节模块

方案一电路图

如图所示,由PWM控制温度调节模块,当PWM端输入高电平时,电流经Q1放大,光耦导通,光耦输出电流经Q2放大后,使双向可控硅导通,M4QA045电机运转,当PWM端输入低电平时,双向可控硅控制端输入电流为0,交流电过零以后,双向可控硅截止,M4QA045电机停止运转。

方案二电路图

如图所示,由PWM控制温度调节模块,当PWM端输入高电平时,电流经Q4放大,常开端5闭合,M4QA045电机运转,当PWM端输入低电平时,常开端5断开,M4QA045电机停止运转。

方案一采用光耦隔离强电,方案二采用继电器隔离强电,但方案一没有实现强电与直流源的隔离,且方案一环节复杂,计算难度大,过多的环节延长响应时间,从而影响温度调整模块的性能,所以选择方案二。

2、报警电路的设计

如图所示,单片机在BUZZER端输入信号控制湿度报警模块。

当湿度大于65%RH或者小于45%RH时,BUZZER端输入高电平,电流经Q3放大,使蜂鸣器工作;

当湿度处于45%RH和65%RH之间时,BUZZER端输入低电平,蜂鸣器不工作。

四、控制系统设备的选型

1、单片机的选择:

由于温室大棚所控制的量比较少,且所要求实现的功能也不是很多,所以最后选择了8位的51系列单片机。

AT89C51片内喊有28字节的数据存储器RAM,主要用工作寄存器、堆栈、软件标志和数据缓冲器。

对于简单的测控系统,用它存放运算的中间结果,容量是够用的。

但是对于大量数据采集处理系统,则需要在片外扩展RAM。

由于本设计采用大量温湿度传感器,所以一片AT89C51芯片是不够用的,所以要对AT89C51的数据存储器进行扩展,因此,选用6264数据存储器一片。

单片机的测量过程如下:

测量过程是先温度后湿度的顺序,首先对温度进行采样,每一个温度点采样5次,计算平均值作为采样值送入显示和存储的相应单元进行存储和传感器的编号和温度的显示,然后判断温度是否超过设定温度,如果温度超标则报警并根据传感器的位置判断启动通风设备还是加热设备,如果不超标就继续检测下一个点的温度,知道整个大棚的多个点温度全部测试完成,然后计算和显示大棚的平均温度,然后对8个点的湿度进行测量并且显示,也是按照每个点测量5次然后取平均值的方法计算,来减少干扰因素带来的误差,8个点的湿度测量完成后计算并显示大棚的平均湿度。

同样与设定的湿度值比较如果超标就报警,并启动风扇进行通风处理。

然后系统返回再进行温度和湿度的巡回测量和显示。

2、传感器的选择:

本设计中使用DS18B20来实现对大棚内温度的采集,该传感器与传统的热敏电阻温度传感器不同,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

使用DS18B20可使系统结构更简单,可靠性更高。

芯片的耗电量很小,一般不用独立的电源进行供电。

该芯片在检测点已把被测信号数字化了。

因此在单总线上传输的是数字信号,这使得系统的抗干扰性好、可靠性高、传输距离远。

3、显示器的选择:

当传感器采集回来的温度和湿度经过单片机处理后,要送到显示器显示出来。

显示器由LED和LCD液晶显示器两种。

LED显示器主要有使用寿命长、响应速度快、可视距离远、规格品种多、数字化程度高、亮度高、可视角度大,功耗低等优点。

LCD显示器分辨率比较高,但是价格比较高。

所以综合考虑,本系统中采用LED作为显示器来显示温室内的湿度和温度。

既满足了工程设计的要求,又节省了成本。

4、为了方便工作人员实时的对温室内的温度和湿度进行监视,本设计还将传感器采集回来的数据通过RS232串口传到计算机中的上位机上,来进行监视。

五、系统的软件设计

1、整体方案设计:

2、PWM程序设计:

如图所示,进行中断程序初始化,设置定时器T0中断时间为1ms,中断100次,即100ms作为一个脉冲周期,每中断一次,由变量T0_number进行计数,当变量T0_number大于100时,给变量T0_number赋值0,重新开始计数,当变量T0_number小于变量PWM_width_H时,输出高电平,当变量T0_number大于变量PWM_width_H时,输出低电平,以此控制脉宽。

#include<

reg52.h>

intrins.h>

#defineLCD_DBP2

sbitDQ=P1^0;

sbitBUZZER=P1^1;

sbitPWM=P1^2;

sbitLCD_RS=P1^4;

sbitLCD_RW=P1^5;

sbitLCD_E=P1^6;

sbitHEAT=P1^7;

voidinitial(void);

voidread_DHT11(void);

voidLCD_write_command(unsignedcharcom);

voidLCD_display_char(unsignedcharx,unsignedchary,unsignedchardat);

unsignedcharread_DHT11_char(void);

voidcontrol_temperature_humidity(void);

voiddelay_xms(unsignedinttime_xms);

voiddelay_x10us(unsignedinttime_x10us);

unsignedcharstop_system=0;

unsignedcharlineOne[]=“TS(0-50):

C”;

unsignedcharlineTwo[]=“HS(20-90):

%RH”;

unsignedintT0_number=0,T1_number,PWM_width_H;

unsignedchartemperature_ten,temperature_one,humidity_ten,humidity_one;

unsignedchartemperature_H,temperature_L,humidity_H,humidity_L,checkData;

voidinitial(void)

{

unsignedchari,j;

TMOD=0x11;

//定时器0工作方式1,16位计数器;

定时器1工作方式1,16位计数器

TH1=0xFC;

//定时器1溢出周期1ms,延时

TH1=0x66;

TH0=0xFC;

//定时器0中断周期1ms,PWM

TL0=0x66;

EA=1;

ET1=1;

ET0=1;

EX0=1;

IT1=1;

TR0=1;

LCD_write_command(0x38);

//设置8位格式,2行,5x7

LCD_write_command(0x0c);

//设置整体显示,关闭光标,且不闪烁

LCD_write_command(0x06);

//设置输入方式,增量不移位

LCD_write_command(0x01);

//清屏

for(i=0;

i<

16;

i++)

{

LCD_display_char(i,1,lineOne[i]);

}

for(j=0;

j<

j++)

LCD_display_char(j,2,lineTwo[j]);

LCD_display_char(14,1,0xDF);

//显示

}

voidread_DHT11(void)

DQ=0;

delay_xms(18);

DQ=1;

delay_x10us

(2);

if(DQ==0)

while(DQ==0);

while(DQ==1);

humidity_H=read_DHT11_char();

humidity_L=read_DHT11_char();

temperature_H=read_DHT11_char();

temperature_L=read_DHT11_char();

unsignedcharread_DHT11_char(void)

unsignedchari,temp_one,temp_two;

8;

delay_x10us(3);

{

temp_one=0;

}

else

temp_one=1;

temp_two<

<

=1;

temp_two|=temp_one;

while(DQ==1);

returntemp_two;

voidLCD_write_command(unsignedcharcom)

LCD_DB=com;

LCD_RS=0;

LCD_RW=0;

LCD_E=1;

delay_xms

(1);

LCD_E=0;

delay_xms(5);

voidLCD_display_char(unsignedcharx,unsignedchary,unsignedchardat)

{

if(y==1)

LCD_write_command(0x80+x);

LCD_write_command(0xc0+x);

LCD_DB=dat;

LCD_RS=1;

voidLCD_display_DHT11(void)

temperature_ten=temperature_H/10+0x30;

temperature_one=temperature_H%10+0x30;

humidity_ten=humidity_H/10+0x30;

humidity_one=humidity_H%10+0x30;

LCD_display_char(12,1,temperature_ten);

LCD_display_char(13,1,temperature_one);

LCD_display_char(11,2,humidity_ten);

LCD_display_char(12,2,humidity_one);

voidcontrol_temperature_humidity(void)

if(temperature_H>

28)//温度→转速

PWM_width_H=100;

elseif(temperature_H<

18)

PWM_width_H=0;

HEAT=1;

=23)

HEAT=0;

PWM_width_H=(temperature_H-18)*10;

if(humidity_H>

65||humidity_H<

45)//湿度→蜂鸣

BUZZER=1;

else

BUZZER=0;

voiddelay_xms(unsignedinttime_xms)

T1_number=0;

TR1=1;

while

(1)

if(time_xms==T1_number)

break;

TR1=0;

voiddelay_x10us(unsignedinttime_x10us)

while(time_x10us--)

_nop_();

voidmain(void)

initial();

while

(1)

delay_xms(2000);

read_DHT11();

LCD_display_DHT11();

control_temperature_humidity();

voidINT_0(void)interrupt0

stop_system=1;

voidTimer_0(void)interrupt1

//定时器0中断周期1ms,PWM

T0_number++;

if(T0_number>

100)

T0_number=0;

elseif(T0_number<

PWM_width_H)

PWM=1;

PWM=0;

voidTimer_1(void)interrupt3

TH1=0xFC;

//定时器1溢出周期1ms,延时

TL1=0x66;

T1_number++;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1