标题:
STM32增量式PID电机pwm调速代码
[打印本页]
作者:
1870758944
时间:
2021-10-6 15:45
标题:
STM32增量式PID电机pwm调速代码
可使用外部中断设置当前转速
单片机源程序如下:
#include "sys.h"
#include "delay.h"
#include "stdio.h"
#include "usart.h"
double Enconde_left ;
double m;
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init (115200);
delay_init();
OLED_Init ();
OLED_Clear();
Encoder_TIM2_Init();
TIM1_PWM_Init(7199,0);//pwm输出
TIMER_Init(999,7199);//定时器中断
KEY_EXTI_Init();
My_MOTOR_Init();
OLED_ShowString(0,0,"ENC:",12);
OLED_ShowString(0,3,"SET:",12);
OLED_ShowString(0,5,"OUT:",12);
while(1)
{
// Load(-2000);
//
// Enconde_left = Read_Speed(2);
// OLED_ShowNumber(50,5,Enconde_left,5,16);
OLED_Float(0,50,Enconde_left,3);
OLED_Float(3,50,Set_val1,3);
OLED_ShowNumber(50,5,PWM_TEST,5,12);
// Test_Send_User(Enconde_left,Set_val1,0,0,0,0, 0,0,0,0);
}
}
复制代码
#include "control.h"
float PID_Calc(int Set_Val,double Now_Val);
CTRL PID;
double PWM_TEST;
int PWM_OUT = 500;
int Set_val1 = -350;
void PID_Val(void)
{
PID.Kp = 18;
PID.Ki = 0.3;
PID.Kd = 5;
}
void TIM3_IRQHandler(void) //TIM3中断
{
if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3更新中断发生与否
{
TIM_ClearITPendingBit(TIM3, TIM_IT_Update); //清除TIMx更新中断标志
Enconde_left = Read_Speed(2);
// PWM_OUT += PID_Calc(Set_val1,Enconde_left);
// Limt_Duty(&PWM_OUT);
// Load(PWM_OUT);
PWM_TEST += PID_Calc(Set_val1,Enconde_left);
Limt_Duty_1(&PWM_TEST);
Load(PWM_TEST);
}
}
float PID_Calc(int Set_Val,double Now_Val)
{
PID_Val();
float PID_Inc = 30; //增量
PID.Ek = Set_Val - Now_Val;//本次误差
PID_Inc = PID.Kp * (PID.Ek - PID.Ek1) + PID.Ki * PID.Ek + PID.Kd * (PID.Ek - 2 * PID.Ek1 + PID.Ek2 );
PID.Ek2 = PID.Ek1 ;
PID.Ek1 = PID.Ek ;
return PID_Inc;
}
void EXTI3_IRQHandler(void)
{
Set_val1 -= 50;
EXTI_ClearITPendingBit(EXTI_Line3);
}
void EXTI4_IRQHandler(void)
{
Set_val1 += 50;
EXTI_ClearITPendingBit(EXTI_Line4);
}
void EXTI9_5_IRQHandler(void)
{
static u8 temp = 0;
if(!temp)
{
Set_val1 = 300;
temp = 1;
}
else
{
Set_val1 = -300;
temp = 0;
}
EXTI_ClearITPendingBit(EXTI_Line5);
}
复制代码
所有代码51hei附件下载:
外部中断设置转速.7z
(238.62 KB, 下载次数: 102)
2021-10-6 17:23 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1