t12电烙铁c语言程序,T12白光烙铁固件源码(天山V1.2 51单片机硬件SPI LED支持3芯手柄)...
/*********************************************************************************
* COPYRIGHT NOTICE
* Copyright (c) 2017, XinJiang University
* All rights reserved.
*
* 文件名 : Sys_Control.c
* 描述 : 温度控制
*
* 版本 : V3.0.2
* 作者 : 王志浩
* 日期 : 2017-10-19
*
* 以下全部程序之著作权归属新疆大学所有,受《中华人民共和国著作权法》保护!
* 未经第一著作权所有人书面授权,任何单位和个人不得将以下程序用于商业用途!
* 修改此程序请保留上述版权声明,引用程序请注明出处!
**********************************************************************************/
#include "config.h"
PID_s IronPID = {12.0f,0.4f,0.3f,0.0f,{0.0f,0.0f},0.0f,0.0f,0.0f};
/************************************************************
* 函数名 : IronTempControl
* 功能说明 : PID控制烙铁温度,P分段,I分离、抗饱和
*
* 输入参数 : temp目标温度
* 输出参数 : 无
*
* 修改记录 : 新增函数,第一次编辑
* 历次作者 : 王志浩
* 日期 : 2017-10-22
*************************************************************/
void IronTempControl(unsigned int temp)
{
//设定温度
IronPID.Set = temp;
EA=0;//stop other interrupt
//反馈温度
if(FtyModeFlag)//如果是在工厂模式,则按照校准的烙铁头编号查表
{
IronTemp.Feedback = GetIronTemp(FAC_DATA_Table.Adjust_s.Iron);
}
else//如果是在普通模式,则按照选定的烙铁头编号查表
{
IronTemp.Feedback = GetIronTemp(MENU_DATA_Table.Other_s.Heater_Tip);
}
EA=1;
IronPID.Feedback = IronTemp.Feedback;
//误差计算
IronPID.Delta[0] = IronPID.Set - IronPID.Feedback + STEADY_ERR;
//积分分离
if(IronPID.Delta[0] > 20.0f)
{
IronPID.kP = 13.0f;
IronPID.kI = 0.4f;
}
else if(IronPID.Delta[0]
{
IronPID.kP = 12.0f;
IronPID.kI = 0.4f;
}
else
{
IronPID.kP = 7.0f;
IronPID.kI = 0.5f;
}
//PID计算
if(IronPID.Integration > 100)//积分超过上限时,只累计负的积分量
{
if(IronPID.Delta[0] < 0)
{
IronPID.Integration += IronPID.kI * IronPID.Delta[0];
}
}
else if(IronPID.Integration < -100)//积分超过下限时,只累计正的积分量
{
if(IronPID.Delta[0] > 0)
{
IronPID.Integration += IronPID.kI * IronPID.Delta[0];
}
}
else
{
IronPID.Integration += IronPID.kI * IronPID.Delta[0];
}
IronPID.Out = IronPID.kP * IronPID.Delta[0] + IronPID.kD * (IronPID.Delta[0] - IronPID.Delta[1]) + IronPID.Integration;
//设定温度大于50且小于最高温度才开烙铁
if(IronPID.Set > 50 && IronPID.Set <= MENU_DATA_Table.Temp_s.Max_Temp && ((unsigned char)GetVoltage()>=FAC_DATA_Table.Other_s.Lim_Voltage))
{
//大于255,直接等于255
if(IronPID.Out > 255.0f)
{
PWM.Run = Enable;
PWM.Duty = 255u;
}
//大于0
else if(IronPID.Out > 0.001f)
{
PWM.Run = Enable;
PWM.Duty = (unsigned char)IronPID.Out;
}
//负数
else
{
PWM.Duty = 0;
IronPID.Out = 0;
PWM.Run = Disable;
IRON = 0;
}
}
//设定温度小于50或大于最高温度,则关烙铁
else
{
PWM.Duty = 0;
IronPID.Out = 0;
PWM.Run = Disable;
IRON = 0;
}
//传递
IronPID.Delta[1] = IronPID.Delta[0];
}
t12电烙铁c语言程序,T12白光烙铁固件源码(天山V1.2 51单片机硬件SPI LED支持3芯手柄)...相关推荐
- t12电烙铁c语言程序,T12白光烙铁控制器源码.doc
T12白光烙铁控制器源码 T12白光烙铁控制器源码#include "STC15F204EA.h"//单片机头文件,24MHz时钟频率#include "INTRINS. ...
- t12电烙铁c语言程序,T12电烙铁制做分享过程1
T12电烙铁制做分享过程1 [复制链接] T12电烙铁是个比较有趣且实用的制做,我们搞电子一般都会有把烙铁.T12的制做相对来说,还是很有趣的.我以前就想做,准备了2套部件,买了有好几年了,好像3年前 ...
- t12电烙铁c语言程序,可跑C代码的串口屏之T12白光烙铁
T12 白光烙铁也是电子DIY中一个非常经典的项目,以至于T12白光DIY烙铁也是广大爱好者和专业人员的标配工具:T12的整个电路可以说是一个标准的温控系统,因此把代码稍微改制,就可以实现各种温控器的 ...
- t12电烙铁c语言程序,做一把精致的T12数控电烙铁
认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 枫林雪影 于 2019-3-28 21:00 编辑 发帖的时候忽 ...
- 杨辉三角c语言程序jian,杨辉三角C语言程序队列实现(带源码+解析)
杨辉三角,即如下 通过学习数据结构,解决杨辉三角,可以使用循环来实现:在循环队列中依次存放第 i-1 行上的元素,然后逐个出队并打印,同时生成第 i 行上的元素并入队. 如果要求计算并输出杨辉三角前 ...
- c8051f020C语言程序,C8051F020应用程序包 - 其它资源 - 源码中国
压缩包 : 171544c8051f020应用程序包.rar 列表 七段码显示\c8051F020.h 七段码显示\cyglink.txt 七段码显示\disp 七段码显示\disp.#1 七段码显示 ...
- int0低电平触发c语言,中断执行完后怎么回不去啊??? - 精华源码教程分享区 - 51单片机学习论坛 www.51c51.com - Powered by Discuz!...
回得去 /头文件: #include "reg51.h" sbit int0=P3^2; void delay(unsigned int timer); //延时子 ...
- 程序兵法:Java String 源码的排序算法(一)
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 这是泥瓦匠的第103篇原创 <程序兵法:Java Str ...
- C语言成绩统计源代码,C语言课程设计学生成绩管理系统+源码
<C语言课程设计学生成绩管理系统+源码>由会员分享,可在线阅读,更多相关<C语言课程设计学生成绩管理系统+源码(25页珍藏版)>请在人人文库网上搜索. 1.简易教学管理系统的设 ...
最新文章
- js不停地触发按钮的事件
- 呜啦啦,园园我来了~
- JavaFX8 modena样式(css)源码
- c++使用单向链表存储一组有序数据_初试攻略丨计算机考研中数据结构知识点总结,硬核!...
- 致敬!这些老外的开源技术养活了一票国产软件
- DNS 教父怒喷 DNS-over-HTTPS!
- Java-模拟KTV点歌(控制台程序)
- CentOS 6.6上搭建C++运行环境
- 网络历史之金融投资三剑客03
- 我是如何将LINE表情包转化为微信表情包的?/How I convert Line stickers into Wechat stickers just as the way they are?
- 网站实用性是这样建出来的
- 机器学习科普文章:“一文读懂机器学习,大数据/自然语言处理/算法全有了”
- 第八-九周-总结(day38-54)
- 【闪亮的玻璃图标悬浮效果】
- TensorRT debug及FP16浮点数溢出问题分析
- linux drupal 7安装教程,Ubuntu 14.04 LTS 下安装Drupal 7
- 一级建造师(一建)电子证书下载
- MATLAB上关于复数矩阵的转置与共轭知识详解
- php点阵字,用PHP编程读取汉字点阵数据
- java打印空心六边形_带文字的空心六边形。
热门文章
- Spring Boot——国际化
- [Spring实战系列](11)SpEL使用表达式装配
- vue 关于视频播放器vue-video-player,PC端正常,苹果手机初始化没有办法设置进度,currentTime 设置不生效解决
- Some resouces about design
- zabbix系列:修改默认的snmp端口161
- 欧美风企业宣传PPT模板
- 树莓派 --- 基于OpenCV实现人脸识别
- 基于Python实现神经网络中的激活函数图像绘制
- android xitong工具,Android系统工具盘点
- 耐克人脸识别_人脸识别启动,全系9个车型随意选,买它立马有1.2万现金拿