资源简介
采用stm系列单片机,根据温度来实验对风扇转速的自动调节。
代码片段和文件信息
#include “control.h“
#include “usart.h“
#include “ds18b20.h“
float SpeedSet=2000;
float Kp=1.2;
float Ki=0.2;
float Integral_MAX=230;
float JIFEN_YUZHI=100;
float SpeedControlOutMax=3500;
int Encoder;
int Moto1;
int temperature;
int z;
/*************************************************
速度部分变量
*************************************************/
float Real
I0
SpeedControlOut;
int real;
/**************************************************************************
作者:平衡小车之家
我的淘宝小店:http://shop114407458.taobao.com/
**************************************************************************/
//int Encoder;
//int Moto1;
//int Target_velocity; //设定速度控制的目标速度为50个脉冲每10ms
//int TIM2_IRQHandler(void)
//{
// if(TIM2->SR&0X0001)//10ms定时中断
// {
// TIM2->SR&=~(1<<0); //===清除定时器1中断标志位
// Encoder=Read_Encoder(4); //===读取编码器的值,M法测速,输出为每10ms的脉冲数
// Encoder=Encoder*CAR_SPEED_CONSTANT; //===LED闪烁;指示单片机正常运行
// Xianfu_Pwm(); //===PWM限幅
// //Moto1=1000;
// Moto1=Incremental_PI(EncoderTarget_velocity); //===速度PI控制器
// Set_Pwm(Moto1); //===赋值给PWM寄存器
// }
// return 0;
//}
void TIM2_IRQHandler(void) //TIM3中断
{
if (TIM_GetITStatus(TIM2 TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源
{
TIM_ClearITPendingBit(TIM2 TIM_IT_Update); //清除TIMx的中断待处理位:TIM 中断?
Encoder= Read_Encoder(4);
real=(int)(Encoder*(1500/334));
Moto1=(int)Incremental_PI(SpeedSet); //===速度PI控制器
TIM3->CCR2=Moto1*2;
temperature=(int)DS18B20_Get_Temp();
z++;
}
TIM_ClearITPendingBit(TIM2TIM_IT_Update);
}
/**************************************************************************
函数功能:赋值给PWM寄存器
入口参数:PWM
返回 值:无
**************************************************************************/
/**************************************************************************
函数功能:限制PWM赋值
入口参数:无
返回 值:无
**************************************************************************/
/**************************************************************************
函数功能:绝对值函数
入口参数:int
返回 值:unsigned int
**************************************************************************/
/**************************************************************************
函数功能:增量PI控制器
入口参数:编码器测量值,目标速度
返回 值:电机PWM
根据增量式离散PID公式
pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)]
e(k)代表本次偏差
e(k-1)代表上一次的偏差 以此类推
pwm代表增量输出
在我们的速度控制闭环系统里面,只使用PI控制
pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)
**************************************************************************/
int Incremental_PI (int Target)
{
// float Kp=5Ki=1;
// float PI;
volatile static int BiasLast_biasIntegral_bias;
Bias=Target-real; //计算偏差
if((Bias
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3895 2019-01-02 16:38 test1 - 1602正常 1x4键盘 加减调速 加温控\CONTROL\control.c
文件 486 2018-11-18 15:14 test1 - 1602正常 1x4键盘 加减调速 加温控\CONTROL\control.h
文件 17273 2010-06-07 10:25 test1 - 1602正常 1x4键盘 加减调速 加温控\CORE\core_cm3.c
文件 85714 2011-02-09 14:59 test1 - 1602正常 1x4键盘 加减调速 加温控\CORE\core_cm3.h
文件 15503 2011-03-10 10:52 test1 - 1602正常 1x4键盘 加减调速 加温控\CORE\startup_stm32f10x_hd.s
文件 3893 2015-03-13 20:05 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\DS18B20\ds18b20.c
文件 1208 2012-09-17 11:49 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\DS18B20\ds18b20.h
文件 2166 2018-12-02 12:25 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\ENCODER\encoder.c
文件 216 2018-11-17 10:12 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\ENCODER\encoder.h
文件 4731 2018-11-23 21:40 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\HC05\hc05.c
文件 972 2015-04-30 10:47 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\HC05\hc05.h
文件 1827 2018-11-24 17:11 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\KEY\key.c
文件 1186 2018-11-24 17:10 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\KEY\key.h
文件 2978 2018-11-27 19:01 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\LCD\lcd1602.c
文件 942 2018-11-24 22:52 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\LCD\lcd1602.h
文件 1298 2012-09-13 13:13 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\LED\led.c
文件 638 2012-09-13 09:45 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\LED\led.h
文件 380 2018-11-23 21:11 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\MOTOR\motor.c
文件 80 2018-11-17 10:12 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\MOTOR\motor.h
文件 35016 2015-03-13 14:54 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\TFT\font.h
文件 85363 2015-04-24 11:50 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\TFT\lcd.c
文件 7529 2018-11-22 17:27 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\TFT\lcd.h
文件 7691 2018-11-27 19:12 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\TIMER\timer.c
文件 653 2018-11-18 20:09 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\TIMER\timer.h
文件 4263 2018-11-18 21:18 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\USART3\usart3.c
文件 1053 2015-04-30 10:47 test1 - 1602正常 1x4键盘 加减调速 加温控\HARDWARE\USART3\usart3.h
文件 399 2011-04-23 10:24 test1 - 1602正常 1x4键盘 加减调速 加温控\keilkilll.bat
文件 355495 2019-01-02 16:38 test1 - 1602正常 1x4键盘 加减调速 加温控\OBJ\control.crf
文件 1876 2019-01-02 16:38 test1 - 1602正常 1x4键盘 加减调速 加温控\OBJ\control.d
文件 391192 2019-01-02 16:38 test1 - 1602正常 1x4键盘 加减调速 加温控\OBJ\control.o
............此处省略178个文件信息
相关资源
- stm32控制热敏打印机
- STM32+MQTT+SIM800使用AT指令实现
- 嵌入式系统课程设计报告--多功能电子
- 嵌入式系统课程设计--多功能电子钟设
- 2017 电赛 滚球控制系统源代码(PIX
- tcs3200 stm32正点原子历程
- 基于STM32F103的温湿度SI7021程序
- 基于STM32F103的ADS7828驱动程序
- STM32F103ZET6控制二维码模块GM65
- 基于stm32f103的lcd按键可修改时间闹钟
- stm32控制步进电机加减速
- 基于STM32F103单片机的RFID程序
- STM32 RTC 万年历 3.2寸TFT液晶显示
- 三路超声波测距,亲测有用
- STM32F103C8T6按键调整参数断电保护,温
- TFmini_Plus I²C在STM32上的例程.zip
- STM32F407FreeRTOS开发手册V1_0
- FreeRTOS+内核实现与应用开发实战--基于
- USART空闲中断发送数据包
- ——0.96寸OLED显示屏7针SPI协议.zip
- STM32 控制ESP8266 WIFI模块 连接OneNET
- STM32-AS608指纹锁程序
- MMA8452资料,包含STM32代码和51代码
- stm32多个串口的配置
- STM32F401移植uCosIII
- STM32 FLASH模拟EEPROM
- 基于STM32的电子秤源码,全国电子设计
- stm32搭建web服务器
- STM32F4驱动人体红外传感器
- stm32烧录工具(官方版与mcuisp)
评论
共有 条评论