历史上的今天
今天是:2024年10月09日(星期三)
2021年10月09日 | 基于51单片机的PID水温控制系统
2021-10-09 来源:eefocus
一.硬件方案
本设计主要以51单片机系统进行温度采集与控制;温度信号由数字温度传感器DS18B20采集,主控器主动获取传感器温度值,通过PID算法,与设置温度进行计算,输出继电器的控制状态,并在LCD显示屏进行显示。
主要由51单片机+最小系统+LCD1602液晶显示模块+DS18B20温度传感器+继电器电路+蜂鸣器模块+LED指示灯模块+按键模块;如图:

二.设计功能
(1)采用PID控制算法,对水温进行实时控制;
(2)设定容器内水的温度在:水温–90°;自动平衡,容器内水温误差0.5°;
(3)PID算法容器内水温上升或下降10°时间不超过10min;
(4)设有三个按键,1为复位按键,2为目标水温的加,3为目标水温的减;
三.设计原理图
(1)原理图主要采用AD软件进行设计,如图:

(2)PCB图如下:

四.软件设计
主程序源码
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 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); } } }
史海拾趣
|
在中断函数里面有一段 if (USB_P_EP[0]) { USB_P_EP[0](USB_EVT_SETUP); continue; } 原型在下面: #define P_EP(n) ((USB_EP_EV ...… 查看全部问答> |
|
高压MOS/IGBT的短路保护电路 电源网讯 个人多年来从事高压脉冲电源的工作的一点经验总结 电路如上: 带短路保护锁定的驱动的3脚为短路信号检测入端;2脚为驱动地;1脚为驱动输出。 当电路存在短 ...… 查看全部问答> |
|
$(\'swf_k67\').innerHTML=AC_FL_RunContent(\'width\', \'550\', \'height\', \'400\', \'allowNetworking\', \'internal\', \'allowScriptAccess\', \'never\', \'src\', encodeURI(\'http://player.youku.com/player.php/sid/XMjIxMTE2MzMy/v.sw ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 03:30 编辑 尼玛!什么情况》》?搞个倒立摆,电机实在是不堪重负,屡屡陨落呀,这事要闹那样呀??? … 查看全部问答> |
|
开发版型号:SEED—MSP430F5529A 开发工具 :CCS 5.4v 以下内容是CCS中I/O端口操作的一些简单的demo,现整理如下: 有关MSP430F5529芯片I/O口相关资料,可参考《MSP430x5xx and MSP430x6xx Family User\'s Guide (Rev. M)——Chapte ...… 查看全部问答> |




