智能大棚系统实训报告_第1页
智能大棚系统实训报告_第2页
智能大棚系统实训报告_第3页
智能大棚系统实训报告_第4页
智能大棚系统实训报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、竞赛实训课程设计报告竞赛实训课程设计报告 系系 别别: : 信息科学与电气工程学院信息科学与电气工程学院 班班 级级: : 姓姓 名名: : 学学 号号: : 指导教师指导教师: : 实践地点实践地点: : 实验楼实验楼 406406 时时 间间: : 20142014 年年 5 5 月月 1919 日日 至至 20142014 年年 6 6 月月 6 6 日日 摘要 随着科技的发展,以广泛应用现代科学技术为主要标志的现代农业应运而生。现代 农业采用先进的科学技术和生产要素装备农业,实现农业生产机械化、电气化、信息 化、生物化,同时实现农业组织管理的现代化,实现农业生产专业化、社会化、区域 化

2、和企业化。随着现代农业的迅速发展,国家政策的大力扶持,各类农业现代化设备 制造企业蓬勃发展。智能大棚系统是我们针对农业机械化、规模化生产所设计的现代 化农业设备。他可实现温度控制、干湿度自动调节及其他功能。根据光照强度自动控 制系统内温度,同时检测土壤干湿度进行自动灌溉。 关键字:现代农业、智能大棚系统、温度检测、自动灌溉。 目 录 第一节第一节 引言引言.1 1 第二节第二节 智能大棚系统功能及方案设计智能大棚系统功能及方案设计.1 1 2.1 设计要求.1 1 2.2 总体方案论证与比较.2 2 第三节第三节 模块设计模块设计.2 2 3.1 直流电机驱动模块.2 2 3.2 土壤湿度检测

3、模块.3 3 3.3 电源模块.3 3 3.4 卷帘机及光电传感器模块.4 4 第四节第四节 程序设计流程图程序设计流程图 .5 5 4.1 单片机系统的组成.5 5 4.2 PWM 调速的实现 .5 5 4.3 温度显示及检测模块的实现.8 8 4.4 数码管显示模块的实现.1010 4.5 光电传感模块的实现.1010 4.6 系统分析.1111 第五节第五节 结论结论 .1212 附录附录.1313 第一节 引言 随着科技的发展,以广泛应用现代科学技术为主要标志的现代农业应运而生。现代 农业采用先进的科学技术和生产要素装备农业,实现农业生产机械化、电气化、信息 化、生物化,同时实现农业组

4、织管理的现代化,实现农业生产专业化、社会化、区域 化和企业化。随着现代农业的迅速发展,国家政策的大力扶持,各类农业现代化设备 制造企业蓬勃发展。智能大棚系统便是现代农业装备的典型代表。它可以分为三大组 成部分:传感器检测部分、执行部分、CPU。 智能大棚系统具有温度自动调节和湿度自动调节功能。可根据系统内温度通过卷帘 模块卷起或放下保温帘,以维持系统内温度适宜,当光电传感器检测到停止信号时, 卷帘机停止运动;土壤干湿度检测模块可通过多路信号对土壤的干湿度进行检测,通 过控制系统与预先设定值进行比较,从而利用水泵进行灌溉,当土壤湿度达到设定值 时,土壤湿度检测模块停止灌溉。卷帘系统采用直流电动机

5、,满足不同负载的要求, 实现均匀、平滑的无级调速;同时具有较大的启动力矩。供电模块采用 220V 交流电和 直流稳压电源,为控制系统提供 15V 直流电。后续扩展模块包括:基于 GSM 的远距离 控制模块、系统二氧化碳浓度监测模块等。 本智能大棚系统满足现代农业技术装备的要求具有广阔的市场和发展空间。 第二节 智能大棚系统功能及设计方案 2.1 设计要求 (1)设计任务 智能大棚系统内温度和湿度自动检测和调节。 (2)设计要求 1)根据系统内的实际温度比较设定的温度值实现保温帘拉起或放下,光电传感器 检测到停止信号时,卷帘机停止运动,同时实时显示温度。 2)根据系统内土壤湿度和设定的湿度值比较

6、实现自动灌溉。 2.2 总体方案论证与比较 (1)控制系统 根据设计要求,我们认为此设计属于多输入量的复杂程序控制问题。据此,拟定 了以下方案并进行了综合论证,具体如下: 采用单片机作为整个系统的核心,用其控制系统内的各个变量,以实现其既定的 性能指标。我们选定了 ATMEL89C52RC 单片机作为本设计的主控装置。 (2)直流电机驱动模块(L298N) 采用双 H 桥大功率驱动芯片。根据系统中电流、电压以及电动机在启动过程中的 堵转、瞬时启动电流等参数,采用大功率的驱动芯片。同时,考虑到电机在实际运行 过程中的稳定性,采用 PWM 无级调速。这种双极性脉冲调制方式具有很多优点,例如 电流的

7、连续;电机可在四象限运行;电机停止时有微振电流,起到了“动力润滑作用” , 消除了正反相时的静摩擦死去;低速运行平稳性较好。采用 PWM 占空比调整电动机的 电机转速,每一组 PWM 波用来控制一个电机的转速,另外的 I/O 口可以控制电机的正 反转,控制比较简单,电路也较简单。 (3)土壤湿度检测模块 土壤湿度检测模块的关键是湿度传感器。该模块利用 AD 转换装置将土壤湿度传感 器检测的模拟信号转换为单片机可以识别的数字信号,并通过 I2C 总线 (I2C(InterIntegrated Circuit)将该信号传送给单片机,单片机根据信号控制 是否灌溉。本模块采用 FC-28 土壤湿度传感

8、器,它利用电磁脉冲原理、根据电磁波在 介质中传播频率来测量土壤的表观介电常数(),从而得到土壤容积含水量(v), FDR 具有简便安全、快速准确、定点连续、自动化、宽量程、少标定等优点,同时测量 精度高、性能可靠。 (4)其他辅助模块 温度显示模块采用最小系统中的数码管显示,直流电机采用 25G-A280-150,温度 传感器采用 DS18b20,光电传感器采用 E18-8MNK,电源模块采用 THDPJ-2 单片机开发综 合试验箱中的直流电源。 第三节第三节 模块设计模块设计 3.1 直流电机驱动模块(L298N) 采用双 H 桥大功率驱动芯片。根据系统中电流、电压、以及电动机在启动过程中

9、的堵转、瞬时启动电流等参数,采用大功率的驱动芯片。同时,考虑到电机在实际运 行过程中的稳定性,采用 PWM 无极调速。在电机的运行过程中,消除了由于信号不稳 定而引起的电机“爬行现象” ,使电机平稳运行;同时,消除了在启动时,由于自身惯 性而产生的冲击现象。直流减速电机使用一路 H 桥,每个电机设置一个方向控制端, 控制电机的转向。单个通道可以向电机提供小于 20A 的驱动电流,满足了电机的启动 要求,其最大的优点是内部还集成有续流二极管,该芯片的功耗也比较小比较适合直 流电动机或步进电机的驱动。 图 1 L298N 图 2 H 桥驱动芯片 3.2 土壤湿度检测模块 该模块利用 AD 转换装置

10、将土壤湿度传感器检测到的模拟信号转换为单片机可以识 别的数字信号,并通过 I2C 总线(I2C(InterIntegrated Circuit)将该信号传送 给单片机,单片机根据信号决定是否灌溉。本模块采用 FC-28 土壤湿度传感器,它利 用电磁脉冲原理、根据电磁波在介质中传播频率来测量土壤的表观介电常数(),从 而得到土壤容积含水量(v),FDR 具有简便安全、快速准确、定点连续、自动化、宽 量程、少标定等优点,同时测量精度高、性能可靠。 图 3 AD 转化模块电路 图 4 土壤湿度传感器电路 图 5 土壤湿度传感器 3.3 电源模块 智能大棚系统的电源部分采用 15V 直流电和 220V

11、 交流电。可以提供充足的电压。 同时,在硬件方面,为了防止输出电压过高在电源输出的末端采用了两个稳压管,以 保证两条 PWM 调速通道的电压稳定,避免由于电源而引起的调速干扰,从而维持电 机的稳定运行。 图 6 15V 直流电源 3.4 卷帘机及光电传感器模块 当温度达到设定值时,直流电动机带动卷帘机运动。同时,在卷帘机的运动过程 中,当光电传感器检测到卷帘机运动到极限位置时,给单片机发出停止信号,卷帘机 停止运动。NPN 型光电传感器,未收到信号时,输出为高电平,当采集到外部信号后, 输出为低电平。 图 7 光电传感器电路 图 8 卷帘机 图 9 光电传感器 第四节第四节 程序设计流程图程序

12、设计流程图 否 是 4.1 单片机系统的组成 单片机系统是整个智能大棚系统的核心部分,它对各路传感信号的采集、处理、 分析及对各部分整体调整。主要组成:单片机ATMELC52一块、电机驱动芯片及各类传 感器、数码管显示。 4.2 PWM调速的实现 PWM调速控制的基本原理是按一个固定频率来接通和断开电源,并根据需要改变 一个周期内接通和断开的时间比(占空比)来改变直流电机电枢上的电压,从而控制电机 的转速。在脉宽调速系统中,当电机通电时其速度增加,电机断电时其速度减低。只 要按照一定的规律改变通、断电的时间,即可控制电机转速。而且采用PWM技术构成 的无级调速系统启停时对直流系统无冲击,并且具

13、有启动功耗小、运行稳定的特点。 采用了单片机内部的定时器触发来产生脉冲信号,通过调节周期以及占空比就可以调 节PWM输出波形,进而改变输出电压,以达到控制电机的目的。通过示波器测试后确 认单片产生合格的脉冲信号。 PWM控制原理:每一组PWM波用来控制一个电机的速度,另外的IO口控制电机 的转向,控制比较简单,电路也比较简单,简化了电路的复杂性, P25、P26控制右 侧电机的转向,P20、P21控制左侧电机的转向;P04控制左侧电机的速度 , P16控 制右侧电机的速度。 单片机上电 温度传感器、土壤传感器采集数据 A/D 转换 LED 显示(温度) 数据是否满足要求? 水泵启动、卷帘机运行

14、 结束 图10 PWM理想波形 两个电机的PWM调速程序: #include unsigned char PWM1; sbit IN1=P20; sbit IN2=P21; sbit IN3=P22; sbit IN4=P23; sbit PWM_zuo=P04; sbit PWM_you=P05; sbit Key1=P31; sbit Key2=P30; sbit Key3=P32; CYCLE=10; count=0; PWM_ON1=7; PWM_ON2=7; void chushihua() TMOD=0 x10; TH1=0 xff; TL1=0 xfc; IE=0 x88; TR

15、1=1; void dianji() PWM_zuo=PWM_you=PWM1; /PWM_you=PWM2; void zhengzhuan() IN1=1; IN2=0; IN3=0; IN4=1; void fanzhuan() IN1=0; IN2=1; IN3=1; IN4=0; void ting() IN1=0; IN2=0; IN3=0; IN4=0; void main() chushihua(); while(1) IN1=1; IN2=1; IN3=1; IN4=1; if(Key1=0) zhengzhuan(); if(Key2=0) fanzhuan(); if(K

16、ey3=0) ting(); / IN1=1; / IN2=0; / IN3=0; / IN4=1; dianji(); void time0(void) interrupt 3 using 1 TH1=0 xff; TL1=0 xfc; count+; if(count0) if(key1=0)/停止传感器 ting(); /高温 4.6 系统分析 智能大棚系统基本上可以满足前期的设计要求,能够完成温湿度自动检测,自动灌 溉等功能。但同时也存在着一些设计之前未曾预料到的问题,主要问题如下: 1. 直流电机的调速不完美。理论上,直流电机通过 L298N 调速之后可以输出各种 电压,但实际调速中

17、,由于受到电机参数等影响,最终输出电压只能稳定在 3V 左右。同时,输出的电压由于实时检测,所以很不稳定,导致电机有堵转的情 况发生,电机在启动过程中,启动惯性较大,但提供的启动电流较小。 2. 单片机的输出端口接负载时,对外输出产生影响。单片机的某些端口,由于外 加负载,对外输出电压发生变化。L298N 驱动板在调试过程中碰到了 P1 端口输 出电压较小的问题,直接影响了桥式电路的运行,在花费了半天的时间之后才 发现毛病。 3. 温度传感器对电机运行的影响。由于温度传感器对信号进行实时转化,这样, 温度便在实时的变化,电机依照设定的温度进行运行,由于温度的跳跃性,以 及温度传感器的检测精度等

18、问题,导致,电机的运行不精确。 第六节第六节 课程设计总结课程设计总结 通过各种方案的讨论和尝试,再经过多次的整体软硬件的结合调试,不断的对系 统进行优化,智能大棚系统可以完成各项功能。大棚模型总长 25mm,宽 20mm,高 15mm。 在系统的设计过程中,我们力求硬件线路简单,充分发挥软件编程灵活方便的特 点,来满足系统设计的要求。从最终综合测试的结果来看,本系统能够很好地完成设 计要求,并具有发展空间。 在本次设计活动中,我们学到了很多东西,从机械到软件,掌握了各种元件的基 本原理,并学会了使用方法,注意事项等,极大地丰富了我们的课外知识,拓宽了我 们的知识面。在整个设计、制造的过程中,

19、还遇到了很多突发的事件和各种困难。直 流电机调速过程中,单个电机运行可以满足各种调速要求,但是,当直流电机和温度 模块整合测试时,由于温度测量模块 18b20 使用数码管输出温度,在显示过程中,需 要不断地进行“刷屏” ,因此需要用定时中断程序;而 PWM 电机调速中,输出的 PWM 波 形,同样也是依靠定时中断程序来完成的,这两个中断发生冲突。温度显示模块的定 时程序对时间的要求较低, (定时时间不需要太短,只要刷屏的速度超过人的肉眼的辨 别力即可)而 PWM 的定时,由其原理决定,定时时间要求极短,这样才能满足波形精 确的要求。通过不断的进行调试、整合、修改,最终将输出电压稳定在 3V 左

20、右。同样, 在程序的最终整合阶段,由于使用了温度、湿度、光电传感器,这样就需要不断的进 行 AD 转化,多路信号的传输,对单片机的运行提出了很高的要求,多次遇到多路信号 相互影响的情况,但通过仔细的分析、讨论和我们自己的调整,最后这些问题都解决 了,提高了我们分析问题,解决问题的能力,也进一步提高了我们的动手能力。在硬 件模型制作的过程中更是对我们的动手能力提出了较高的要求,大棚的拱形模型的制 作耗费了大量的时间,卷帘机的制作也让我们吃尽了苦头。不过,值得欣慰的是,模 型最终制成了,也基本满足了我们的要求。 无可否认,在调试的艰难阶段,也想过放弃,不过,最终还是坚持下来了。在这 里对给予我们帮

21、助的王常顺、饶中洋老师,以及韩峰波、段成杰、董勇圣、王智、吴 明明、冯延猛等同学一并表示感谢。这次活动让我学到了很多课堂之内远远学不到的 东西,譬如毅力、耐力,这些都将使我终生获益,而我们也认为,精神上的收获与充 实,高于最终比赛的成绩。 附录附录 附录附录 1:1:实物模型实物模型 附录附录 2 2: 主程序: #include #includetemp.h #includei2c.h /-定义使用的 IO-/ #define GPIO_DIG P0 sbit LSA=P22; sbit LSB=P23; sbit LSC=P24; sbit wet=P27; /-定义 PCF8591 的读

22、写地址-/ #define WRITEADDR 0 x90 /写地址 #define READADDR 0 x91 /读地址 /-定义全局变量-/ unsigned char code DIG_CODE17= 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71; /0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F 的显示码 unsigned char DisplayData8; /用来存放要显示的 8 位数的值 /unsigned char

23、 code FFW8=0 xf1,0 xf3,0 xf2,0 xf6,0 xf4,0 xfc,0 xf8,0 xf9; /反 转顺序 /unsigned char code FFZ8=0 xf9,0 xf8,0 xfc,0 xf4,0 xf6,0 xf2,0 xf3,0 xf1; /正 转顺序 /unsigned char Direction,Speed; / /-声明全局函数-/ void DigDisplay(); /动态显示函数 void Pcf8591SendByte(unsigned char channel); unsigned char Pcf8591ReadByte(); vo

24、id Pcf8591DaConversion(unsigned char value); void DigDisplay(); /数码管 IO #define DIGP0 /*sbit LSA=P22; sbit LSB=P23; sbit LSC=P24; int temp; unsigned char code DIG_CODE10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; */ unsigned char Num=0; unsigned int disp8=0 x3f,0 x3f,0 x3f,0 x3f,0

25、x3f,0 x3f,0 x3f,0 x3f; unsigned char PWM1,PWM2; sbit IN1=P20;/没用 sbit IN2=P21;/没用 sbit IN3=P25; sbit IN4=P26; sbit PWM_zuo=P04;/没用 sbit PWM_you=P16; sbit key1=P31;/停止按键 CYCLE=8; count=0; PWM_ON1=7; PWM_ON2=7; void LcdDisplay(int); void Timer0Configuration(); void chushihua() TMOD=0 x10; TH1=0 x9c; T

26、L1=0 x9c; IE=0 x88; TR1=1; void dianji() PWM_zuo=PWM_you=PWM1; /PWM_you=PWM2; void zhengzhuan()/RIGHT IN1=1; IN2=0; IN3=0; IN4=1; void fanzhuan()/LIFT IN1=0; IN2=1; IN3=1; IN4=0; void ting()/停 IN1=0; IN2=0; IN3=0; IN4=0; void main() unsigned int adNum; float value; chushihua(); Timer0Configuration()

27、; while(1) /-显示电位器电压-/ Pcf8591SendByte(3); /发送电位器转换命令 adNum= Pcf8591ReadByte()*2;/将转换结果读走 /-我们 8591 每读取到一个 1 就表示 5/256V,所以要知道电压值就乘以 0.01953-/ value = adNum / 2 * 0.01953; /转为电压值 adNum = value * 100; /保留两位小数 DisplayData0 = DIG_CODEadNum / 1000; /发送显示数据 DisplayData1 = DIG_CODEadNum % 1000 / 100;/或上 0

28、x80 是加小数点 DisplayData2 = DIG_CODEadNum % 100 / 10| 0 x80; DisplayData3 = DIG_CODEadNum % 10; DisplayData4 = DisplayData0; DisplayData5 = DisplayData1; DisplayData6 = DisplayData2; DisplayData7 = DisplayData3; if(adNum % 1000 / 100)=2 else if(adNum % 1000 / 100)=1 DigDisplay(); /-DA 输出-/ Pcf8591DaConversion(adNum/2); /DAC 数模转换 dianji(); LcdDisplay(Ds18b20ReadTemp(); void LcdDisplay(int temp) /lcd 显示 unsigned char datas = 0, 0, 0, 0, 0; /定义数组 float tp; if(temp0) void time0(voi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论