1139 基于51单片机仓库环境监控系统仿真设计-毕设课设资料

摘要

本文介绍了一种基于51单片机的仓库环境监控系统仿真设计。系统通过温湿度采集模块实时获取仓库内的温度和湿度信息,并通过LCD1602显示屏展示相关数据。同时,系统具备温度控制功能,通过电机和加热棒的协调工作,实现对仓库温度的升高和降低。本设计通过仿真实验验证了系统的可行性和有效性,为仓库环境监控提供了一种高效、可靠的解决方案。

一、引言

仓库环境监控是保障物资存储安全和提高管理效率的关键环节。温度和湿度作为仓库环境的重要参数,其稳定控制对于防止物资受潮、霉变等问题具有重要意义。传统的仓库环境监控方式往往存在响应速度慢、控制精度低等问题,难以满足现代仓库管理的需求。因此,设计一种高效、精确的仓库环境监控系统显得尤为重要。基于51单片机的仓库环境监控系统具有结构简单、易于实现和成本较低等优点,因此得到了广泛应用。

二、系统总体设计

本系统基于51单片机进行仿真设计,主要包括温湿度采集模块、LCD1602显示模块、电机控制模块、加热棒控制模块等部分。温湿度采集模块负责实时获取仓库内的温度和湿度信息;LCD1602显示模块用于显示温湿度数据;电机控制模块和加热棒控制模块则根据设定的温度阈值,通过协调控制电机和加热棒的工作,实现对仓库温度的升高和降低。

三、硬件设计

  1. 温湿度采集模块

温湿度采集模块采用高精度的温湿度传感器,能够实时获取仓库内的温度和湿度数据,并通过接口将数据传输给51单片机。传感器具有高灵敏度和高稳定性,能够确保数据的准确性和可靠性。

  1. LCD1602显示模块

LCD1602显示模块用于实时显示仓库内的温度和湿度数据。通过编程控制,可以将采集到的数据以数字形式展示在LCD屏幕上,方便管理人员查看和记录。

  1. 电机控制模块

电机控制模块通过驱动电路控制电机的正反转,从而实现对仓库通风口的开启和关闭。当仓库温度过高时,通过开启通风口降低温度;当温度过低时,关闭通风口以保持温度稳定。

  1. 加热棒控制模块

加热棒控制模块通过控制加热棒的开关,实现对仓库温度的升高。当仓库温度低于设定值时,加热棒启动加热;当温度达到设定值时,加热棒停止工作。

四、软件设计

软件设计主要包括单片机程序的编写和调试。单片机程序需要实现以下功能:初始化各模块、定时采集温湿度数据、处理数据并显示在LCD1602上、根据温度阈值控制电机和加热棒的工作等。在程序编写过程中,需要充分考虑程序的稳定性和实时性,确保系统能够准确、快速地完成环境监控任务。

五、仿真实验与结果分析

为了验证本设计的可行性和有效性,我们进行了仿真实验。实验结果表明,本系统能够实时准确地采集仓库内的温湿度数据,并在LCD1602上显示相关信息。同时,通过电机和加热棒的协调控制,系统能够实现对仓库温度的升高和降低,从而保持仓库内环境的稳定。

六、结论与展望

本文设计了一种基于51单片机的仓库环境监控系统仿真方案,通过仿真实验验证了系统的可行性和有效性。该系统具有结构简单、易于实现和成本较低等优点,适用于仓库环境监控的实际应用。未来,可以进一步优化系统的硬件和软件设计,提高系统的性能和稳定性,拓展其应用范围。

#include "pid.h"
#include "math.h"
#include "stdio.h"
struct _pid
{      
	int SetSpeed;            //定义设定值     
	int ActualSpeed;        //定义实际值     
	int err;                //定义偏差值      
	int err_last;            //定义上一个偏差值      
	float Kp,Ki,Kd;            //定义比例、积分、微分系数      
	float voltage;            //定义电压值(控制执行器的变量)     
	int integral;            //定义积分值     
	float umax;     
	float umin; 
}pid;

void PID_init(void)
{
	pid.SetSpeed=500; 	
	pid.ActualSpeed=0;     
	pid.err=0;      
	pid.err_last=0;     
	pid.voltage=0;    
	pid.integral=300;     
	pid.Kp=3.2;      // 0.4            // 1.95  2.4    0.2           0.2    0.2      0.2
	pid.Ki=1.5;   //    1.5  积分速度 //0.9        0.8           0.74    0.78      0.5(vpp=14v)
	pid.Kd=0;//                  //        0.00015      0
	pid.umax=1500;     
	pid.umin=-1500;               
}

unsigned int pid_ctrol(unsigned int now_speed,unsigned int set_speed)
{
	static float last=500;
	int index;
	pid.ActualSpeed=now_speed;      
	pid.SetSpeed=set_speed;      
	pid.err=pid.SetSpeed-pid.ActualSpeed;
	if(pid.ActualSpeed>pid.umax)  //灰色底色表示抗积分饱和的实现     
	{          
  

 

【资源下载】下载地址:点击下载(1139) 
https://docs.qq.com/doc/p/ffc421513a628b30450ae742547c0b850456d7c8

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值