久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3072|回復: 0
收起左側

STM32增量式PID電機pwm調速代碼

[復制鏈接]
ID:253361 發表于 2021-10-6 15:45 | 顯示全部樓層 |閱讀模式
可使用外部中斷設置當前轉速

單片機源程序如下:
  1. #include "sys.h"  
  2. #include "delay.h"
  3. #include "stdio.h"
  4. #include "usart.h"       

  5. double Enconde_left ;

  6. double m;


  7. int main(void)
  8. {       
  9.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
  10.         uart_init (115200);
  11.         delay_init();
  12.         OLED_Init ();
  13.         OLED_Clear();
  14.         Encoder_TIM2_Init();
  15.         TIM1_PWM_Init(7199,0);//pwm輸出
  16.         TIMER_Init(999,7199);//定時器中斷
  17.         KEY_EXTI_Init();
  18.        
  19.         My_MOTOR_Init();
  20.         OLED_ShowString(0,0,"ENC:",12);
  21.         OLED_ShowString(0,3,"SET:",12);
  22.         OLED_ShowString(0,5,"OUT:",12);
  23.         while(1)
  24.         {               
  25. //        Load(-2000);
  26. //               
  27. //                Enconde_left = Read_Speed(2);
  28. //                OLED_ShowNumber(50,5,Enconde_left,5,16);
  29.                

  30.                 OLED_Float(0,50,Enconde_left,3);
  31.                 OLED_Float(3,50,Set_val1,3);
  32.                 OLED_ShowNumber(50,5,PWM_TEST,5,12);
  33. //                Test_Send_User(Enconde_left,Set_val1,0,0,0,0, 0,0,0,0);
  34.                
  35.         }
  36. }
復制代碼
  1. #include "control.h"


  2. float PID_Calc(int Set_Val,double Now_Val);


  3. CTRL PID;
  4. double PWM_TEST;
  5. int PWM_OUT = 500;
  6. int Set_val1 = -350;
  7. void PID_Val(void)
  8. {
  9.         PID.Kp = 18;
  10.         PID.Ki = 0.3;
  11.         PID.Kd = 5;
  12. }



  13. void TIM3_IRQHandler(void)   //TIM3中斷
  14. {
  15.         if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)  //檢查TIM3更新中斷發生與否
  16.                 {
  17.                 TIM_ClearITPendingBit(TIM3, TIM_IT_Update);  //清除TIMx更新中斷標志
  18.                 Enconde_left = Read_Speed(2);
  19. //                PWM_OUT += PID_Calc(Set_val1,Enconde_left);

  20. //                Limt_Duty(&PWM_OUT);
  21. //                Load(PWM_OUT);
  22.                 PWM_TEST += PID_Calc(Set_val1,Enconde_left);

  23.                 Limt_Duty_1(&PWM_TEST);
  24.                 Load(PWM_TEST);

  25.                 }
  26. }


  27. float PID_Calc(int Set_Val,double Now_Val)
  28. {
  29.         PID_Val();       
  30.         float PID_Inc = 30; //增量
  31.        
  32.         PID.Ek = Set_Val - Now_Val;//本次誤差
  33.        
  34.         PID_Inc = PID.Kp * (PID.Ek - PID.Ek1) + PID.Ki * PID.Ek + PID.Kd * (PID.Ek - 2 * PID.Ek1 + PID.Ek2 );
  35.        
  36.         PID.Ek2 = PID.Ek1 ;
  37.        
  38.         PID.Ek1 = PID.Ek ;

  39.         return PID_Inc;
  40. }

  41. void EXTI3_IRQHandler(void)
  42. {
  43.         Set_val1 -= 50;
  44.        
  45.         EXTI_ClearITPendingBit(EXTI_Line3);
  46. }

  47. void EXTI4_IRQHandler(void)
  48. {
  49.         Set_val1 += 50;
  50.        
  51.         EXTI_ClearITPendingBit(EXTI_Line4);
  52. }

  53. void EXTI9_5_IRQHandler(void)
  54. {
  55.         static u8 temp = 0;
  56.        
  57.         if(!temp)
  58.         {
  59.                 Set_val1 = 300;
  60.                 temp = 1;
  61.         }
  62.         else
  63.         {
  64.                 Set_val1 = -300;
  65.                 temp = 0;
  66.         }
  67.        
  68.         EXTI_ClearITPendingBit(EXTI_Line5);
  69. }


復制代碼


所有代碼51hei附件下載:
外部中斷設置轉速.7z (238.62 KB, 下載次數: 102)


評分

參與人數 1黑幣 +30 收起 理由
admin + 30 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品自在线 | 成人不卡一区二区 | 久久久成人精品 | 欧美不卡 | 国产精品成人国产乱一区 | 欧美日韩黄 | 久久国产成人 | 国产日韩精品久久 | 一区中文字幕 | 成人乱人乱一区二区三区软件 | 欧美淫 | 欧美精品在欧美一区二区少妇 | 中文字幕乱码一区二区三区 | 性视频网 | 在线国产一区二区 | 亚洲精品永久免费 | 日本中文字幕在线视频 | 亚洲乱码国产乱码精品精的特点 | 日韩久久精品视频 | cao视频 | 一二三四在线视频观看社区 | h小视频 | 国产精品中文在线 | 日韩在线播放一区 | 国产精品久久久久久久久久久久冷 | 成人在线播放网站 | 在线日韩视频 | 国产高清视频在线观看 | 日韩1区 | 欧美性a视频 | 国产一区二区三区在线视频 | 男女羞羞免费视频 | 亚洲福利在线观看 | 日韩精品一区二区三区中文在线 | 成人性生交大片免费看r链接 | 男女羞羞免费视频 | 欧美精品久久久久久久久久 | 国产成人小视频 | 久久久久国产精品午夜一区 | 国产在线一区二 | 日韩电影中文字幕 |