您好,欢迎访问三七文档
1基于ARM2410土壤湿度检测设计及实现组长:林强组员:王策毕占谨1设计内容2主要器件选择3软件程序设计4程序脱离虚拟机运行主要内容1设计内容实现湿度的采集;设计实现湿度采集中断;调试程序,实现程序固化。2主要器件的选择1)主控制器芯片ARM2410cl韩国三星公司推出的基于ARM920T内核和AMBA(AdvancedMicrocontrollerBusArchitecture)总线的一款微处理器;使用0.18umCMOS工艺;集成LCD、UART、IIC、SPI、IIS、USB、SD控制器等片内外围接口;支持ROM和NANDFlash引导;适合面向功耗较低、成本敏感、应用环境较好的消费类电子产品.2)湿度传感器FC-28它以FC-28湿度传感器作探头,LM393做比较器,两个电极插入土壤后充当电阻,与电路中的电阻分压,再送到LM393同相端中与变阻器得到的电压比较,最后得出湿度LM393典型应用引脚说明:传感器工作原理在土壤湿度达不到设定阈值时,D0口输出高电平,当土壤湿度超过设定阈值时,模块D0输出低电平3)软件程序设计主程序设计流程图单片机接收传感器送出的电压值,通过中断向量,判断是否达到阈值,若未达到阈值,于界面上显示OK;若达到阈值,于界面上显示Warning开始传感器发送电压信号延时(1~20S)读取是否达到阈值YNOKWarning主要代码注释staticssize_ts3c2410_IO_read(structfile*filp,char*buf,size_tlen)/*读取GPIO_B5引脚的状态*/{unsignedcharret;ret=read_gpio_bit(GPIO_B5);读取引脚电平0,1copy_to_user(buf,&ret,1);将内核地址空间送到用户空间return1;}驱动代码读取部分qt控制代码部分MyLed::MyLed(){ui.setupUi(this);set_time=2;//初始化时间2s检查一次timer=newQTimer(this);//初始化定时器timer-start(set_time*1000);//启动定时器/*分别定义信号与槽连接*/QObject::connect(timer,SIGNAL(timeout()),this,SLOT(test()));QObject::connect(ui.horizontalScrollBar,SIGNAL(sliderMoved(int)),ui.lcdNumber,SLOT(display(int)));QObject::connect(ui.horizontalScrollBar,SIGNAL(sliderMoved(int)),this,SLOT(changetemp(int)));fd=open(/dev/s3c2410-leds,0);//设备未找到if(fd0){printf(openerror\n);}}voidMyLed::test(){read(fd,&buf,1);if((int(buf))==1)//湿度未达到阈值{ui.label-setText(CurrentStatus:OK!!);}if((int(buf))==0)//湿度未达到阈值{ui.label-setText(CurrentStatus:WARNING!!);}}voidMyLed::changetemp(inta)//检测时间设定{set_time=a;timer-start(set_time*1000);}4)程序运行界面
本文标题:土壤湿度检测
链接地址:https://www.777doc.com/doc-3855422 .html