发布时间:2024-03-03 来源:领导参访
智能灌溉系统的研究与设计 毕业设计(论文) 题 目 智能灌溉系统的研究与设计 教学点 专 业 年 级 姓 名 指导教师 定稿日期: 2011 年 6月 1 日 1 智能灌溉系统的研究与设计 摘要 本系统系统通过选择正真适合的传感器将对土壤中含水量和空气湿度等重要物理量进行采集,通过信号及采集部分将其转化为数字信号,交给单片机系统来进行处理,通过智能控制部分,在需要时驱动相关外设,进行自动精确定位地灌溉。具体流程图如下: 工作过程流程图 单片机相应中断,驱动湿度传感器电路,使湿度传感器工作,采集数据(四个)并将其传至单片机,由单片机 驱动液晶显示器输出土地情况 调用 土壤湿度分析子程序(即与标准湿度相比较) 灌的部分,并计算出干湿度以决定浇灌用水量(由喷灌时间决定) 根据分析结果,制电机与舵机分别旋转、 驱动水泵实现精确定位,完成浇灌 单片机重置定时器计数后待机,使定时器30秒后发出中断信号 不符合标准要求. 结束在每次湿度传感器采集到数据时,由单片机驱动液晶显示器显示土壤湿度。 单片机处于待机状态,等待中断信号 利用单片机内定时器计数器,每隔10分钟(可调)定时向单片机发出中断信号 调用电机运转子程序, ,计算出土壤需要浇同时控摆动,并打开节流阀, 2 智能灌溉系统的研究与设计 顺序通电 差动放大 精确定位 密封 湿度传感器 智能控制关键字: 液晶显示 机械设计部分 整体的机构形式如下所述:水由出水口接入,经过水泵增压后,经过导水软管,最后从管的另一端喷射出来。机械 套筒下端固结有套筒,舵机,步进电机和与电机配合的传动装置组成。臂主要由导水软管,电机通过锥齿轮传动,带动套筒转动。舵机固定在套筒上,当套筒旋转加工上锥齿的圆环,当舵机臂摆动导水软管穿过套筒与固定在套筒上端的舵机相固结,时,舵机也随套筒旋转。而套筒转动则实现了以使喷出的水能够调整远近。时导水软管喷头处完成竖直方向的调整,通过水平旋转及竖直摆动,实现了喷灌的精确定位。考虑到水对电喷水方向的调整。这样,电机及其与套筒的传动部分通过密封箱密封,导线引出,连机、齿轮传动部分的腐蚀影响,机械臂通过套筒下端接到控制电路部分及电源部分,以实现对机械系统的电力输入及控制。下图为我们用机械仿这种方案是我们经过多次调整最后确定出来的。深埋入土壤做固定。 制作的图形(具体见附图)真软件pro/engineer 舵机与导水 软管连接 密封箱 套筒3 智能灌溉系统的研究与设计 我们的创新体现在我们的设计过程中。在喷口的设计中,由于市场上所售的喷头多利用水压将水达到某个固定位置,因此不能够实现喷灌位置的可调性要求。因此喷管管口要重新设计。在喷头处,我们曾试验过多个方案。其中一个就是拟定用钢管作导水管,将水直接引到喷头,而喷头处设计成喷口可以转动的形式,通过增加一个电机并通过细杆与喷头处连实现竖直方向的转动,水平方向的转动还是靠另一个电动机带动套筒来实现(具体见附proe仿真图)。但是这种设计有两个问题我们没能解决。第一个问题是密封的问题,喷口转动时对其密封要求比较高,且此处水压较高,更增加密封难度。第二个问题是底部的电机如何使上部的喷头进行竖直方向的摆动。此处传动距离较长,增加材料势必增加水平转动电机的负载,且此电机好密封,极易漏水烧毁电机。于是我们直接采用了接导水软管的方法。导水软管是用一种软橡皮材料做成的,我们在做试验时,一端接从水泵流过的水,一端穿过套筒固定在舵机上,有较好的弹性,使灌溉机械臂在转动时,水管不会产生较大的阻力矩,也不可能会发生塑性变形影响正常使用。这种形式的优点是结构相对比较简单,使用起来更便捷,一根管足以解决喷头出的设计问题。缺点是电机带动套筒的转角不能持续朝一个方向转动,否则水管会打结使水流不通,且从水管浇灌到地面的水流呈柱状,对地面冲击较大。软管长期拉伸压缩会造成水管脱胶,碎裂等问题。 在实际设计计算中,需进行软管的拉压的疲劳强度的校核,及齿轮传动的校核计算。通过查机械设计的手册可以计算出所需的材料及其他要求。 在进行设计的过程中,我们查阅了上市的喷头的基本的工作原理,对其有了初步的了解。在进行结构设计得过程中,我们查阅了相关的机械原理、机械设计方面的书籍,增长了我们4 智能灌溉系统的研究与设计 的机械方面的知识及解决机械设计问题的能力。 具体构件可参见所附的proe零件图及整体装配图。 硬件电路部分设计 A. 湿度传感器方案 我们采用通DX-S2型土壤湿度传感器,通过测出被测土壤的介电常数,并根据土壤容积。本传感含水率与土壤介电常数之间的非线性关系推导出土壤的容积含水率和重量含水率器对土壤水分变化有很高的灵敏度,因此温度、盐分、土壤性质变化因素的影响相对来说还是比较小,如果要求测量结果准确度高,应酌情对这一些因素的影响进行修正。或采取其它措施减少这一些因素的干扰。 湿度传感器各项参数如下: 测量参数 土壤容积/重量含水率θ 量 程 4~50%(绝对重量含水率) 精 度 误差不超过2% 响应时间 响应在1秒内进入稳定 工作环境 -30℃~+55℃ 工作电压 4.5~5.5VDC,典型值5.0VDC 工作电流 50mA 输出信号 0~2.5V B.运算放大器方案 传感器输出的电压信号为毫伏级,一定要通过运放将信号放大,对运算放大器要求很高。 基于此,我们考虑了能够使用以下几种方案: 方案 一 、利用普通低温漂运算放大器构成多级放大器。 普通低温漂运算放大器构成多级放大器会引入大量噪声。由于 A/D 转换器需要很高的精度,所以几毫伏的干扰信号就会直接影响最后的测量精度。在调试中误差较大,所以,此种方案不宜采用。 方案二、由高精度低漂移运算放大器构成差动放大器。 差动放大器具有高输入阻抗,增益高的特点,可通过普通运放 ( 如LM324) 做成一个差动放大器。 U-U组成仪表放大器,U构成电压跟随器,用于调零电路. 4135 智能灌溉系统的研究与设计 基于以上分析,我们采用此种放大方式,(四集成度,芯片型号LM324) C.电机方案 由于对浇灌机械臂的转速要求不高,且要实现精确定位,而且步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。由此,电机采用四相六线混合式步进电机,以实现对喷灌机械臂的转动控制。 在最初的电机驱动方案中,采用L298芯片+二极管吸收电路,用设计好的开关电源给L298以及步进电机供电。电路经keil+proteus仿真后能轻松实现对电机的控制,仿真阶段未出现任意的毛病。电路图如下: 但此电路在实际调试中,由于从l298的2、3、13、14脚输出信号变化较快,二极管导通出现一些明显的异常问题; 电机正转调试c语言子程序如下: #includereg51.h void delay1s(void) { unsigned char j,k; for(j=50;j0;j--) for(k=100;k0;k--); } main() { unsigned char a[8]={0x24,0x35,0x11,0x39,0x28,0x3a,0x12,0x36} ; unsigned char b; unsigned char i=0; while(i=50) { for(b=0;b8;b++) { 6 智能灌溉系统的研究与设计 P1=a[b]; delay1s(); i++; }} } 1、电机的转速控制: 上程序中,通过j、k的取值,能控制延时程序延时的时间,进而控制步进电机的转动频 开始 率,进而实现对电机速度的控制。实际应用中,可将其设置为函数间接口的变量,以实现调速。 初始化单片机 2、电机的转动位置控制: 在while循环中,没执行一次,电机转动一个齿距角。由于所用电机为50齿,所以每完成用初始调化液晶显示器子程序 一次上述程序,电机转动一周。转动角度与i的取值关系为:可以将i设置成函 示位置设置初始显 量设置循环变数间接口的变量,通过对其赋值实现精确定位。 3、实现正反转 缓存取数据 从显示反转程序只需将0x24,0x35,0x11,0x39,0x28,0x3a,0x12,0x36的顺序倒过来,即依次为调用写数据子程序 0x36,0x12,0x3a,0x28,0x39,0x11,0x35,0x24,依次循环。 在运行时,电机的各项性能已经满足使用需要,但仍有需改进的地方:此电机在高频状态,N 转速较高时,易出现丢步、振动现象,需用细分方案来解决;另外,电机驱动电路的散热方 ?示结束显法亦非尽善尽美,需要更好的解决方案。 Y D.显示部分设计: 我们选用了成都市飞宇达实业有限公司出品的FYD12864-0402B型的液晶显示模块。 此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。该模块具有2.7~5.5V的宽工作电压范围,且具有睡眠、正常及低功耗工作模式,可满足系统各种工作电压及便携式仪器低功耗的要求。液晶模块显示负电压,也由模块提供,从而简化了系统电源设计。模块同时还提供LED背光显示功能。除此之外,模块还提供了画面清除、游标显示/隐藏、游标归位、显示打开/关闭、显示字符闪烁、游标移位、显示移位、垂直画面旋转、反白显示、液晶睡眠/唤醒、关闭显示等操作指令。 下图为液晶显示程序流程图: 下图为proteus仿线 智能灌溉系统的研究与设计 E 、舵机控制方案 舵机是一种位置伺服的驱动器,适用于那些需要角度一直在变化并能保持的控制管理系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。 单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PWM周期信号,本设计是产生20ms的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。当系统中只要实现一个舵机的控制,采用的控制方式是改变单片机的一个定时器中断的初值,将20ms分为两次中断执行,一次短定时中断和一次长定时中断。这样既节省了硬件电路,也减少了软件开销,控制管理系统工作效率和控制精度都很高。 具体的设计过程:例如想让舵机转向左极限的角度,它的正脉冲为2ms,则负脉冲为20ms-2ms=18ms,所以开始时在控制口发送高电平,然后设置定时器在2ms后发生中断,中断发生后,在中断程序里将控制口改为低电平,并将中断时间改为18ms,再过18ms进入下一次定时中断,再将控制口改为高电平,并将定时器初值改为2ms,等待下次中断到来,如此往复实现PWM信号输出到舵机。用修改定时器中断初值的方法形成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动。 F.电源部分设计 对于此系统的供电问题,由于需要对电机供电,因此就需要大电流,传统的线性电源,体积笨重,内阻大,效率低,大电流时驱动负载能力差,因此我们采用了开关电源,内阻小,适合强电流供电。其电路图如上,通过电路的连接,我们得到了12V (2A)5V(1A)3.5V(1A)三路电源,而且调试成功。 对于此电路有一个亮点就是,电源系统中有两个开关控制电路,一个是对强电的开关控制,另外一个是对变压器副边整流后电压的开关控制以达到稳压目的,普通的稳压管,如果整流后的电压为16V而稳压管是12V则在负载电流为1A时,稳压管的功率是4W,此时稳压管发烫,而且电能浪费,而对于由UA741控制的初步稳压电路能轻松实现在负载电流为1A使稳压功耗不足1W. 电路原理图如下: 8 智能灌溉系统的研究与设计 G、对单片机的改进设计 在进行实验过程中,由于处理中断较多,我们感觉到51单片机的片内资源不够,增加芯片势必增加电路板的体积。所以我们最后学习并采用了MSP430的单片机来改进我们的系统。 MSP430F247单片机具有超低功耗、集成高性能的模拟器件、16位RISC结构的CPU、在线编程、多时钟、集成开发环境简单等特点。片内资源丰富,有ADC,PWM,若干TIME,串行口,WATCHDOG,FLASH,比较器,模拟信号等。 另外在本系统中我们应该应用多路A/D转换功能,本单片机刚好为咱们提供了8路A/D转换接口。同时本单片机具有强大的处理功能,采用了精简指令集( RISC )结构,有着非常丰富的寻址方式( 7 种源操作数寻址、 4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在 8MHz 晶体驱动下指令周期为 125 ns 。这些特点保证了可编制出高效率的源程序。低功耗是目前一项很令人关注的性能指标,MSP430 系列单片机的电源电压采用的是 1.8~3.6V 电压。因而可使其在 1MHz 的时钟条件下运行时, 芯片的电流会在 200~400uA 左右,时钟关断模式的最低功耗只有 0.1uA 。其次是独特的时钟系统模块设计。基本时钟系统和锁频环( FLL 和 FLL+ )时钟系统或 DCO 数字振荡器时钟系统。由系统时钟系统产生 CPU 和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,以此来实现对总体功耗的控制。当系统处于省电的备用状态时,用中断请求将它唤醒只用 6us 。并且该单片机内的片内可擦写FLASH为咱们提供了一个很方便的存储器,即使在掉电的情况下也不会改变内部的数据。Msp430F247单片机的种种功能刚好满足了我们的需求,正是它的存在,是我们的系统更完善。 程序清单 A、程序流程 耗 状态,等待中断信号 利用单片机内定时器计数 器,每隔10分钟(可调)定 时向单片机发出中断信号 单片机相应中断,驱动湿度传感器电路,使湿度传感器 工作,采集数据并将其传至单片机,由单片机驱动液晶 显示器输出土地情况 9 调用土壤湿度分析子程序(即与标准湿度相比较),计算出土壤需要浇灌 的部分,并计算出干湿度以决定浇灌用水量(由喷灌时间决定). 智能灌溉系统的研究与设计 B、 部分模块驱动程序: 1、液晶驱动: //************初始化液晶**************// void initLCD(void) { Delayms(50); WR_COM(0x30); Delay10us(20); WR_COM(0x30); Delay10us(5); WR_COM(0x0c); Delay10us(20); WR_COM(0x01); Delayms(20); WR_COM(0x06); WR_COM(0x0c); 10 智能灌溉系统的研究与设计 CLR(); } //**********************************清屏********************// void CLR(void) {Busy(); RS_0; RW_0; E_1; _NOP(); P4OUT=0x01; E_0; } //*********************写控制字函数****************************// void WR_COM(unsigned char ins) { Busy(); RS_0; RW_0; E_1; P4OUT=ins; E_0; } //*********************写数据函数**************************** void WR_DAT(unsigned char dat) { Busy(); RS_1; RW_0; E_1; P4OUT=dat; E_0; } //*********************初始化I/O**************************** void LCD_port_init(void) { P5SEL =0X00; P4SEL =0X00; P5DIR=BIT0; P5DIR=BIT1; P5DIR=BIT2; P4DIR =0XFF; P4OUT=0X00; initLCD(); } 11 智能灌溉系统的研究与设计 2、步进电机驱动: void delay1s(void) { unsigned char j,k; for(j=50;j0;j--) for(k=100;k0;k--); } main() { unsigned char a[8]={0x24,0x35,0x11,0x39,0x28,0x3a,0x12,0x36} ; unsigned char b; unsigned char i=0; while(i=50) { for(b=0;b8;b++) { P1=a[b]; delay1s(); i++; }} } void power(float t/*速度值,保留一位小数*/,unsigned char m) { unsigned char gaodu=0; uchar b,c,d,e,f,g; f=m; while(f) { for(c=0;c5;c++) { for(b=8;b0;b--) { g=b-1; P3OUT=a[g]; power_delay(t); } } f--; gaodu=m-f; d=gaodu/10; e=gaodu_x0010_; now_hight[9]=d+0x30; now_hight[10]=e+0x30; write_char(now_hight,0,1); } } 12 智能灌溉系统的研究与设计 void anti_power(float t/*速度值,保留一位小数*/,unsigned char m) { unsigned char gaodu=0; uchar b,c,d,e,f; f=0; while(m) { for(c=0;c5;c++) { for(b=0;b8;b++) { P3OUT=a[b]; power_delay(t); } } f++; m--; gaodu=70-f; d=gaodu/10; e=gaodu_x0010_; now_hight[9]=d+0x30; now_hight[10]=e+0x30; write_char(now_hight,0,1); } } void anti_power_d(float t/*速度值,保留一位小数*/,unsigned char m) { unsigned char gaodu=0; uchar b,c,d,e,f; f=0; while(m) { for(c=0;c5;c++) { for(b=0;b8;b++) { P3OUT=a[b]; power_delay(t); } } f++; m--; gaodu=ii-f; 13 智能灌溉系统的研究与设计 d=gaodu/10; e=gaodu_x0010_; now_hight[9]=d+0x30; now_hight[10]=e+0x30; write_char(now_hight,0,1); } } 3、舵机驱动: BCSCTL1=0x0; BCSCTL2=0x88; do { IFG1 for(i=0xff;i0;i--); } while ((IFG1&OFIFG)!=0); P1DIR=0XFF; P1SEL=0XFF; TACTL=0x2d2; CCTL1=OUTMOD_7; CCR0=20000; while(1) { CCR1=2000; delay(); CCR1=1000; delay(); 4、键盘驱动: //初始化P1中断 void KEY_1_init(void) { P1DIR=0; P1SEL=0; P1DIR=BIT3; P1DIR=BIT5; P1DIR=BIT6; P1DIR=BIT7; P1OUT=0X00; P1IE=0; P1IES=0; P1IFG=0; P1IE=BIT0; P1IES=BIT0; 14 智能灌溉系统的研究与设计 P1IE=BIT1; P1IES=BIT1; P1IE=BIT2; P1IES=BIT2; P1IE=BIT4; P1IES=BIT4; } //初始化P2中断+P3 void KEY_2_init(void) { P2DIR=0; P2SEL=0; P2IE=0; //禁止P2口中断 P2IES=0XFF; //现在是下降沿触发 P2IFG=0; //标志寄存器清零,无中断请求。 P2IE=BIT0; P2IES P2IE=BIT1; P2IES P2IE=BIT2; P2IES P2IE=BIT3; P2IES P2IE=BIT4; P2IES=BIT4; P2DIR=BIT5; P2DIR=BIT6; P2DIR=BIT7; P2_7_H;//高阻 P3SEL=0; P3DIR=0XFF; P6SEL=0; P6DIR=BIT3; //_EINT(); } int keyprocess(void) { int np10,np11,np12,np13; int nres=0; //P1.5输出低电平 P1OUT=0xd0; np10=P1IN if(np10==0) nres=7; 15 智能灌溉系统的研究与设计 np11=(P1IN&BIT1)1; if(np11==0) nres=1; np12=(P1IN&BIT2)2; if(np12==0) nres=4; np13=(P1IN&BIT4)4; if(np13==0) nres=11;//取消键 //P1.6输出低电平 P1OUT=0xb0; np10=P1IN if(np10==0) nres=8; np11=(P1IN&BIT1)1; if(np11==0) nres=2; np12=(P1IN&BIT2)2; if(np12==0) nres=5; np13=(P1IN&BIT4)4; if(np13==0) nres=0; //P1.7输出低电平 P1OUT=0x70; np10=P1IN if(np10==0) nres=9; np11=(P1IN&BIT1)1; if(np11==0) nres=3; np12=(P1IN&BIT2)2; if(np12==0) nres=6; np13=(P1IN&BIT4)4; if(np13==0) nres=12;//确定键 P1OUT=0x00; //恢复以前值 for(;;) { //读各个管脚的状态 np10=P1IN np11=(P1IN&BIT1)1; np12=(P1IN&BIT2)2; np13=(P1IN&BIT4)4; if(np10==1&&np11==1&&np12==1&&np13==1) { //等待松开按键 break; } } return nres; } int keyscan(void) 16 智能灌溉系统的研究与设计 { int np10,np11,np12,np13; int nres=0; for(;;) { //读取各个管脚的状态 np10=P1IN np11=(P1IN&BIT1)1; np12=(P1IN&BIT2)2; np13=(P1IN&BIT4)4; //是否有键被按下 if(np10==0np11==0np12==0np13==0) { //有键被按下 _NOP(); break; } } Delay(50); //读各个管脚的状态 np10=P1IN np11=(P1IN&BIT1)1; np12=(P1IN&BIT2)2; np13=(P1IN&BIT4)4; //是否有键被按下 if(np10==0np11==0np12==0np13==0) { //有键被按下,进行按键分析 nres=keyprocess(); } else return 10;//非有效键 return nres; } 4、延时程序: extern void Delay_(unsigned int n) { unsigned int i=60000; uchar j; while(i) { for(j=0;j50;j++) { while(n!=0) {n--;} i--; }}} extern void Delay(unsigned int n) { 17 智能灌溉系统的研究与设计 while(n!=0) {n--;} } extern void Delayms(unsigned char t) // delay 1ms { unsigned int i; for(;t!=0;t--) for(i=0;i1600;i++); } extern void Delay10us(unsigned char k) // delay 10us { unsigned char i; for(;k!=0;k--) for(i=0;i16;i++); } extern void power_delay( float t) { unsigned int i,tt; t=50.0/t; tt=t*100; for(;tt!=0;tt--) for(i=0;i8;i++); } 三、主程序: #includemsp430x24x.h #includelianjie.h #includedeclaration.h #includedelay.c #includelcd_show.c #includekey.c #include8563.c #includepower.c #include aise.c #include lash.c #include ujia.c //************初始化系统时钟**************// void InitSystemClock(void) { unsigned char i; WDTCTL=WDTPW+WDTHOLD; //关闭看门狗 BCSCTL1=0x00; //Set 430 clk 开启XT2,DOC的标称频率为最低 且不分频;XT1为低速晶体(32.768K) BCSCTL2=SELM_2+SELS; //选择MCLK SCLK的时钟源为高速时钟 不分频,均为8M do 18 智能灌溉系统的研究与设计 { IFG1 for(i=0xff;i0;i--); } while ((IFG1&OFIFG)!=0); } void main(void) { InitSystemClock(); sendinit(); flash_ini(); Init_TimerB(); KEY_2_init(); KEY_1_init();// 里面已有开中断了! LCD_port_init(); _EINT(); LCD_port_init(); ; while(1) } #pragma vector=TIMERB0_VECTOR//P1 void TimerB_ISR(void) __interrupt { Receive(); Show(); Analyse(); Power(); } 19 智能灌溉系统的研究与设计 总结 其实在实际的设计以及调试过程中,出现的问题很多。拿步进电机的调试来说,在刚开始设计程序时,采用了二相四拍的通电顺序,在驱动电机时,电机抖动、丢步现象都较为严重,明显实验室的电源箱不满足规定的要求,于是采用了开关电源给电机供电,情况虽有所好转,但仍有丢步现象发生。通过多次的单片机程序调试与实验,均未能解决。最后,将电机的通电状态改为二相八拍的运行方式,才使得问题得以解决,使电机平稳运转,满足了设计的要求。 在调试运算放大器部分时,所使用运算放大器LM324,缺点很多,比如调零系统要在外部进行,而且它受温度的影响很严重。使得测试的结果出现较大的偏差,但是我们才用来仪表放大的接法,增加了输入阻抗,降低了温漂,虽然性能不如市场上集成的仪表放大器,但是已经满足实际要求,这样与市场价几十元的仪表放大器相比,一个四集成度的LM324只需二元钱,这样就降低了系统的成本,从某一种意义上来说是一种节约也是一种创新。 对于电机驱动部分,我们第一步到的是采用多个率三极管,虽然能满足规定的要求,但是电流过大三极管升温很快,这样三极管寿命就受一定的影响,不仅如此电能也浪费了,我们放弃了这个方案,采用L298,但是如果不接步进电机,测量波形完全正确,但是与步进电机相接,很快波形出错,步进电机不能正常运作,然后检查元件就会发现单片机对应I/O口被烧坏,我们起初以为这是偶然,但是在连烧了两块单片机以后,我们意识到问题的严重性,但是百思不得其解,最后在网络上看到步进电机在工作时会产生反相电压,我们测量一下,发现大得惊人,最后我们采用高速肖特基二极管对反向电压进行吸收,从此以后驱动这部分电路再也没出过问题。 在制作供水管道时,漏水一直是个很棘手的问题,因电子线路不能受潮,而且如果密封不好,水压与计算的将有偏差,不仅如此还会造成喷灌不均匀进而在成水资源的浪费。我们最先考虑到的是双向反作用力式喷头,这种喷头对密封性要求特别高,因此成本也很高,不仅如此,这种喷头密封处一旦受到腐蚀,摩擦力变大,有可能喷头因锈蚀而不能转动。我们放弃了这种成本高性能没有保障的方案,我们最终一致通过采用舵机控制软管的方案,这种方案喷头与机械结构没有依赖,这样就不会出现漏水的现象。这种主动式的喷头结构使系统的可控性很强,定点误差小,更能节约水资源,和电力资源。 对于传感器的放置我们起先采用的是等面积放置,但是这种等面积放置有一定的局限性,对于大面积灌溉时,等面积放置并不能反映现实土壤湿度分布情况,最后我们经过讨论认为以喷头为圆心,等差半径圆周上等长度放置一个传感器,因为喷头是圆周喷洒,这样后者就更准确更多的反映真实的情况。 20
原创力文档创建于2008年,本站为文档C2C交易模式,即用户上传的文档直接分享给其他用户(可下载、阅读),本站只是中间服务平台,本站所有文档下载所得的收益归上传人所有。原创力文档是网络服务平台方,若您的权利被侵害,请发链接和相关诉求至 电线) ,上传者