ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

基于单片机PID算法的温度控制调节器控制设计

2022-01-05 10:07:16  阅读:143  来源: 互联网

标签:温度控制 void PID 单片机 算法 Voltage include LTC1860


设计思路:

改进PID算法的温度调节器设计,采用单片机为控制器,研究热电阻测温电路,控制量输出电路和温度控制PID算法。

功能实现:

1.采用市电供电。

2.采用单片机。

3.LED数码管显示。

4.4*4键盘输入。

5.热电阻测温0-150℃。

6. 工艺参数断电可保持,AT24C02存储。

7. 电流输出4-20mA,电压输出0-5V。

8.有超偏差报警功能。

9.增量式PID算法。

#include "Interrupt.h"			  //中断头文件
#include "24C02.h"				  //存储器
#include "delay.h"				  //延时函数
#include "PID.h"				  //改进PID算法
#include "DISPLAY.h"              //数码管显示
sbit Change=P3^6;				  //切换显示按键
sbit Warning=P3^3;
unsigned char key=16,ShowPage=0;
int PID_Data;                           //PID算法输出的计算值
unsigned int LTC1655_WritData=0;	  	//给DA的值
extern PID sPID; 
unsigned int LT1860_ReadData=0;
float LTC1860_Voltage=0;
float RealTemp=0;
float LTC1655_Voltage;       //DA输出电压
void ParaInit(void);         //从存储器中读取参数值

void main(void)
{
	IIC_Init();					    //IIC初始化  24C02初始化
	Timer_Init();				    //定时器1初始化
	Timer_EN();						//打开定时器1中断
	Glob_Interrupt_EN();			//打开全局中断允许
	IncPIDInit();					//改进PID初始化
	ParaInit();						//开机读取上次设定的PID的参数和设定的温度
	Warning=0;

	while(1)
	{
		
		LT1860_ReadData=LTV1860_GetData();	       //读取AD的值
		LTC1860_Voltage=5.0*LT1860_ReadData/4096;  //读到的值转换成电压
		RealTemp=(LTC1860_Voltage+10)/(40-LTC1860_Voltage)*1039-272.72+0.5;	 //电压转换成温度
		if(RealTemp<109) 				  //软件补偿  消除误差  
			RealTemp-=3;
		else if(RealTemp<149) 
			RealTemp-=2;
		else 
			RealTemp-=1;	 


		if((int)RealTemp>150||(int)RealTemp<0) 	 //报警
			Warning=1;
		else 
			Warning=0;

		PID_Data=IncPIDCalc(RealTemp);   //PID算法
		LTC1655_WritData=PID_Data+32767; 	  
		LTC1655_WritWord(LTC1655_WritData);	  //读到的值送到DA

		LTC1655_Voltage=5.0*LTC1655_WritData/65535;

  

  

​【资源下载】下载地址:点击下载(5) 百度网盘

标签:温度控制,void,PID,单片机,算法,Voltage,include,LTC1860
来源: https://www.cnblogs.com/lizii/p/15762890.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有