首页 > 其他分享 >基于51单片机智能大棚浇花花盆浇水灌溉补光散热设计

基于51单片机智能大棚浇花花盆浇水灌溉补光散热设计

时间:2024-05-25 21:58:24浏览次数:21  
标签:Char 补光 51 unsigned Write 单片机 LCD 2d led

一.硬件方案

本设计通过光敏电阻检测光照强度,然后A/D模块PCF8591处理后,将光照强度值实时显示在液晶上,并且可以按键控制光照的强度值,当光照低于设定的阈值,1颗白色高亮LED灯亮进行补光,光照高于设定的阈值,就不用管。通过DS18B20检测温度值,并且实时显示在1602液晶上,并且可以通过按键设定温度值,当温度低于设定值时,通过一颗黄色高亮LED灯模拟。
主要由STC89C52单片机、LCD1602液晶显示、光照检测、土壤湿度传感器、A/D采样PCF8591、风扇控制、继电器控制、补光灯、补温灯、按键及电源组成;

二.设计功能

(1)通过光敏电阻检测光照强度,然后A/D模块PCF8591处理后,将光照值实时显示在液晶上,按键可以设置光照阈值。当光照低于设定的阈值,高亮LED灯亮进行补光,否则关闭。
(2)通过DS18B20检测温度值,实时显示在1602液晶上,可以通过按键设定温度阈值,当温度低于设定值时,补温灯打开,否则关闭;当温度超过设定值时,风扇旋转。
(3)通过土壤湿度传感器检测土壤的湿度,将湿度值显示在液晶上,按键设置湿度阈值,当土壤湿度小于设定的阈值,继电器打开,继电器可以外接水泵;否则继电器不动作。

三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:
在这里插入图片描述

(2)PCB图如下:
在这里插入图片描述

四.软件设计

主程序源码

void main (void)
{     
	unsigned char midval;             
	Init_Timer0();

	LCD_Init();           //初始化液晶
	DelayMs(20);          //延时有助于稳定
	LCD_Clear();          //清屏

	led_l = 0;relay = 0;led_b = 0;fan = 0; //上电检测下 方便检测硬件
	DelayMs(200);  
	led_l = 1;relay = 1;led_b = 1;fan = 1;

	sprintf(disdat,"L:%2d R:%2d T:%2d C",Lval,Rval,distem);//打印电压电流值
	LCD_Write_String(0,0,disdat);//显示
	sprintf(disset," L:%2d R:%2d T:%2d",(unsigned int)setLval,(unsigned int)setRval,(unsigned int)setTval);//打印电压电流值
	LCD_Write_String(0,1,disset);
	while (1)         //主循环
	{		
		

		key(); //按键处理程序
		if(readADCFlag == 1)		//定时读取adc
		{
			midval=ReadADC(1);		//转换的结果,在下次,才能读出
			Lv=5.15-(float)midval*5.15/255;		//光照
			Lval  = (unsigned int )(Lv * 100 )/5.16;
			DelayMs(10);          //延时有助于稳定
			midval=ReadADC(0);				//读取AD检测到的 光敏地值	
			Tv=5.15-(float)midval*5.15/255;		//光照
			Rval  = (unsigned int )(Tv * 100 )/5.16;
			sprintf(disdat,"L:%2d R:%2d T:%2d C",Lval,Rval,distem);//打印电压电流值
			LCD_Write_String(0,0,disdat);//显示
			LCD_Write_Char(14,0,0XDF) ;
			readADCFlag = 0 ;

			sprintf(disset," L:%2d R:%2d T:%2d ",(unsigned int)setLval,(unsigned int)setRval,(unsigned int)setTval);//打印电压电流值
			LCD_Write_String(0,1,disset);
			if(SetFlag == 1)	//进入设置
			{
				LCD_Write_Char(0,1,'S') ;		//显示S
				LCD_Write_Char(5,1,' ') ;
				LCD_Write_Char(10,1,' ') ;
			}
			else if(SetFlag == 2)
			{
				LCD_Write_Char(0,1,' ') ;
				LCD_Write_Char(5,1,'S') ;  //显示S
				LCD_Write_Char(10,1,' ') ;
			}
			else if(SetFlag == 3)
			{
				LCD_Write_Char(0,1,' ') ;
				LCD_Write_Char(5,1,' ') ;  //显示S
				LCD_Write_Char(10,1,'S') ;
			}
			else
			{
				LCD_Write_Char(0,1,' ') ;
				LCD_Write_Char(5,1,' ') ;  //显示S
				LCD_Write_Char(10,1,' ') ;
			}
			if(Lval <= setLval)		 //光照对比
			{
			 	led_l = 0;		   //打开led
			}
			else
			{
				led_l = 1;		   //关闭led
			}
			if(Rval <= setRval)		 //土壤对比
			{
			 	relay = 0;		   //打开继电器
			}
			else
			{
				relay = 1;		  //关闭继电器
			}
			if(distem <= setTval)		 //温度对比
			{
			 	led_b = 0;		  //led及风扇处理
				fan = 1;
			}
			else
			{
				led_b = 1;	  //led及风扇处理
				fan = 0;
			}

		}
		if(readTem==1)		 //定时温度读取
		{
		    temp=ReadTemperature();			   //温度读取
			temperature=(float)temp*0.0625;	   //温度处理
			if(temperature >1)					//防止温度读错
			{distem = (unsigned int )temperature;}	//温度处理
			readTem=0;
		}			
	}
}

资料链接:https://pan.baidu.com/s/1YDpZ7RI3Pm12G_wSlt-Cxw?pwd=q3v3
提取码:q3v3

标签:Char,补光,51,unsigned,Write,单片机,LCD,2d,led
From: https://blog.csdn.net/eletronicfish/article/details/139132721

相关文章

  • [CF1517F] Union
    计数好题。关键点在于一步转化,然而我并没有发现。首先期望转计数,对于这类问题,我们有很经典的处理手法:\(\sum_r\sum_S[f(S)=r]r=\sum_r\sum_S[f(S)\ger]\)。但是我并没有发现这一步的意义。事实上,这个条件写到树上就是,存在一个点,使得离它最近的非空闲点距离\(>r\)。然后就可......
  • 单片机 内存管理
    首先,我们用keil编译器将写完的单片机代码全部编译后,编译窗口会输出以下信息:可以看到,编译之后的运行文件被分成Code,RO-data,RW-data,ZI-data四部分存放于单片机的SRAM和FLASH中。Code:代码占用的flash大小。RO-data[read-onlydata]:只读常量(包括const修饰变量和defi......
  • AP5193 DC-DC宽电压降压恒流驱动器 LED电源驱动芯片
    产品描述AP5193是一款PWM工作模式,高效率、外围简单、内置功率MOS管,适用于4.5-100V输入的高精度降压LED恒流驱动芯片。最大电流2.5A。AP5193可实现线性调光和PWM调光,线性调光脚有效电压范围0.55-2.6V.AP5193工作频率可以通过RT外部电阻编程来设定,同时内置抖频电路,可以降低对其......
  • AP5192 DC-DC降压恒流三路RGB单亮 LED车灯方案
    1,资料来源:深圳市世微半导体有限公司2,产品描述AP5192是一款PWM工作模式,高效率、外围简单、内置功率MOS管,适用于4.5-100V输入的高精度降压LED恒流驱动芯片。电流1.5A。AP5192可实现线性调光和PWM调光,线性调光脚有效电压范围0.55-2.6V.AP5192工作频率可以通过RT外部电阻编程......
  • AP5199S LED平均电流型恒流驱动IC 0.01调光 景观舞台汽车灯驱动照明
    说明AP5199S是一款外围电路简单的多功能平均电流型LED恒流驱动器,适用于宽电压范围的非隔离式大功率恒流LED驱动领域。芯片PWM端口支持超小占空比的PWM调光,可响应60ns脉宽。为客户提供解决方案,限度地发挥灯具优势,以实现景观舞台灯高辉的调光效果,高辉调光。PWM端口为高......
  • AP5126 降压恒流IC 5-100V 1A LED汽车灯驱动芯片
    产品描述AP5126是一款PWM工作模式,高效率、外围简单、内置功率管,适用于输入的高精度降压LED恒流驱动芯片。输出最大功率可达15W,最大电流1.5A。AP5126可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮/循环模式。AP5126工作频率固定在140KHZ,同时内置抖频电路,可......
  • AP5127 DC-DC降压恒流IC 输入12-24 输出9V 2A LED车灯方案
    AP5127是一款PWM工作模式,高效率、外围简单、内置功率管,适用于12-100V输入的高精度降压LED恒流驱动芯片。输出功率可达25W,电流2.5A。AP5127可实现全亮/半亮功能切换,通过MODE切换:全亮/半亮/循环模式。AP5127工作频率固定在140KHZ,同时内置抖频电路,可以降低对其......
  • AP5170 降压恒流IC 4.5-100V 1.5A LED汽车灯驱动IC
    产品描述AP5170是一款效率高,稳定可靠的LED灯恒流驱动控制芯片,内置高精度比较器,固定关断时间控制电路,恒流驱动电路等,特别适合大功率LED恒流驱动。AP5170采用ESOP8封装,散热片内置接SW脚,通过调节外置电流检测的电阻值来设置流过LED灯的电流,支持外加电压线性调光,最大......
  • 世微AP51656 60V高端电流采样降压恒流LED驱动芯片 兼容Vas1260
    产品描述    AP51656是一款连续电感电流导通模式的降压恒流源,用于驱动一颗或多颗串联LED输入电压范围从5V到60V,输出电流可达1.5A。根据不同的输入电压和外部器件,可以驱动高达数十瓦的LED。内置功率开关,采用高端电流采样设置LED平均电流,通过DIM引脚可以接受模......
  • 世微 AP5191 降压恒流LED车灯 12-80V 9V5A电源驱动方案
    AP5191是一款PWM工作模式,高效率、外围简单、内置功率MOS管,适用于4.5-150V输入的高精度降压LED恒流驱动芯片。输出功率150W,电流6A。AP5191可实现线性调光和PWM调光,线性调光脚有效电压范围0.55-2.6V.AP5191工作频率可以通过RT外部电阻编程来设定,同时内置抖频电路,可以降低......