51单片机的PID水温控制器设计

硬件方案

        PID水温控制器主要以51单片机系统进行温度采集与控制;温度信号由数字温度传感器DS18B20采集,主控器主动获取传感器温度值,通过PID算法,与设置温度进行计算,输出继电器的控制状态,并在LCD显示屏进行显示。

        整体硬件主要有51单片机及最小系统(晶振电路、复位电路)、LCD1602液晶显示模块、DS18B20温度传感器采集电路、加热继电器电路、蜂鸣器报警模块、LED指示灯电路、独立按键电路;整体原理图如下:

         本设计的设计功能为:

  • 采用PID控制算法,对水温进行实时控制;
  • 设定容器内水的温度在:水温--90°;自动平衡,容器内水温误差0.5°;
  • PID算法容器内水温上升或下降10°时间不超过10min;
  • 设有三个按键,1为复位按键,2为目标水温的加,3为目标水温的减;

软件代码

void main()//主函数
{
    init();//初始化函数
    pid_init (&temp_PID);
    InitTimer0(); 
    temp_PID.Proportion =120;              //  Set PID Coefficients 
    temp_PID.Integral   =5; 
    temp_PID.Derivative =2; 
    
    
    while(1)
    {
        temp_control();//控制按键函数
        if(time_value<PWM)      
        { heatting=1;beep=1;LED1=0;LED2=1;}else { heatting=0;beep=0;LED1=1;LED2=0;}
        
        if(time_value==30)        
        {
        
        display_real_tenp(temp_m1);
        }//显示函数    
        if(time_value==60)      
            temp_m=unnormal_proccessing(temp_m1);//温度转换函数*100
         if(time_value==100)
         {
           
           if(set_temp-temp_m>250)
           {
               PWM=PWM_MAX;
           }
           else
           {
               PWM_I=pid_calc(&temp_PID,temp_m);
               PWM  =PWM_I ;
               if( PWM>=100)
                 PWM=100;
               else if(PWM<=PWM_MIN)  
                 PWM=PWM_MIN;
               }
           
          
          }
          if(time_value==120)
          {        
                PWM_P=PWM/2;
                LcdWriteCom(0x80+0X40+0x0C);
                LcdWriteData('0'+PWM_P/100);
                 LcdWriteCom(0x80+0X40+0x0D);
                LcdWriteData('0'+PWM_P%100/10);
                LcdWriteCom(0x80+0X40+0x0E);
                LcdWriteData('0'+PWM_P%10);
         }
    }        
}

链接:https://pan.baidu.com/s/1seC-vTipz0MS47sNhVw_GA?pwd=0rgw 
提取码:0rgw

  • 4
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值