基于单片机PID算法的温度控制调节器控制设计
2022/1/5 11:06:53
本文主要是介绍基于单片机PID算法的温度控制调节器控制设计,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
设计思路:
改进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) 百度网盘
这篇关于基于单片机PID算法的温度控制调节器控制设计的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-04敏捷管理与看板工具:提升研发、设计、电商团队工作效率的利器
- 2025-01-04智慧养老管理工具如何重塑养老生态?
- 2025-01-04如何打造高绩效销售团队:工具与管理方法的结合
- 2025-01-04解决电商团队协作难题,在线文档工具助力高效沟通
- 2025-01-04春节超市管理工具:解锁高效运营与顾客满意度的双重密码
- 2025-01-046种主流销售预测模型:如何根据场景选用最佳方案
- 2025-01-04外贸服务透明化:增强客户信任与合作的最佳实践
- 2025-01-04重新定义电商团队协作:在线文档工具的战略作用
- 2025-01-04Easysearch Java SDK 2.0.x 使用指南(三)
- 2025-01-04百万架构师第八课:设计模式:设计模式容易混淆的几个对比|JavaGuide