基于stm32单片机的多功能水杯设计

 本设计的硬件构成:

STM32F103C8T6单片机最小系统板(包含+3.3V稳压电路+时钟晶振电路+复位电路(上电自复位,手动复位)),温度传感器、水位传感器、红外人体传感器、红外反射传感器、超声波测距模块、LCD液晶显示屏、按键、蜂鸣器、LED指示灯、继电器等电路而成;

功能介绍:

1、温度传感器采集水温,按键设置水温阈值,人体感应检测人体信号,当发现有人时并且水温低于阈值时,进行加热(继电器A),否则不加热。

2、接水口为固定区域,红外传感器检测是否有水杯,超声波传感器检测水杯里的水位高度。当有水杯时(检测到红外信号),开始加水(继电器B启动),当超声波距离小于预设值(程序中设定),停止加水。

3、水位传感器检测饮水机内水位,当饮水机水位较低时,发出蜂鸣器提示储水不足。

4、显示屏幕显示数据信息(超声波距离、 水温、水位);

5、通过按键设置水温,按键1:设置键;按键2:加一键;按键3:减一键。

主要物料清单及型号:

程序源码:

int main(void)
 { 
	 u8 key_value;
	delay_init();	    	 //延时函数初始化	  
	uart_init(9600);	 	//串口初始化为9600
  TIM3_Cap_Init(1,72-1);	//以1Mhz的频率计数,第一个选项,最小只能是1 
	TIM2_Int_Init(499,7199);//10Khz的计数频率,计数到500为50ms  	
//	LED_Init();		  		//初始化与LED连接的硬件接口
	 BEEP_Init();
	KEY_Init();			//初始化按键
	RELAY_Init();
	 Adc_Init();
	Lcd_GPIO_init();  //初始化lcd引脚
	Lcd_Init();		  //初始化lcd屏幕
	UltrasonicWave_Configuration();  //初始化超声IO
	delay_ms(200);
	 
	 cool_relay=0;
	while(1)
	{
		key_value=KEY_Scan(0);
		key_Handle(key_value);
		APP_Handle();
		
		if(PEOPLE==1)
		{
			people_flag=10;
		}
		if(disFlag>10)	   //显示标志
		{
			disFlag = 0;
			if(people_flag>0)
				people_flag--;
			ceju();   //获取水位
			water=Get_Adc_Average(9,10)/40; 

			temperature=(float)DS18B20_Get_Temp()+7;	//缩小10倍为实际值	
			if(settemp>temperature&&people_flag>0)
			{
				heat_relay=0;
			}
			else
			{
				heat_relay=1;
			}
			
			if(S>10&&HR==0)
			{
				cool_relay=0;
			}
			else
			{
				cool_relay=1;
			}
			
			if(water<10)
			{
				BEEP=!BEEP;
			}
			else
				BEEP=1;
			
			if(set==0)
				display();
						
		}	
		
	}											    
}	

资料链接:https://pan.baidu.com/s/1U4PpeL-r27-Pb-CPYvajoA 
提取码:fy92

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值