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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4482|回復: 1
打印 上一主題 下一主題
收起左側

STM32智能小車編碼器源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:349706 發表于 2018-6-11 19:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
小車電池被拆了沒法調試,有錯請指正!
待修好再上傳更完善的,求大佬點評指正!

單片機源程序如下:
  1. #include "contral.h"
  2. #include "stm32f10x.h"
  3. #include "motor.h"

  4. int Target_velocity=50;                                                                   //設定速度控制的目標速度為50個脈沖每10ms

  5. /**************************************************************************
  6. 函數功能:TIM3中斷
  7. 入口參數:無
  8. 返回  值:無
  9. **************************************************************************/
  10. void TIM3_IRQHandler(void)
  11. {                
  12.         static int time=0;
  13.         time ++;
  14.         if(time==10)
  15.         {
  16.                 if (TIM_GetITStatus(TIM3, TIM_IT_Update)!= RESET)  //檢查指定的TIM中斷發生與否:TIM 中斷源
  17.                         {
  18.                         Encoder=transfer(encoder);
  19.                         Led_Flash(100);                                //LED閃爍;指示單片機正常運行       
  20.                                
  21.                         Moto=Incremental_PI(Encoder,Target_velocity);  //===速度PI控制器
  22.                         Xianfu_Pwm();                                  //===PWM限幅
  23.                         Set_Pwm(Moto);
  24.                                
  25.                         TIM_ClearITPendingBit(TIM3, TIM_IT_Update  );  //清除TIMx的中斷待處理位:TIM 中斷源
  26.                         }
  27.                 time=0;
  28.         }
  29. }
  30. /**************************************************************************
  31. 函數功能:增量PI控制器
  32. 入口參數:編碼器測量值,目標速度
  33. 返回  值:電機PWM
  34. 根據增量式離散PID公式
  35. pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)]
  36. e(k)代表本次偏差
  37. e(k-1)代表上一次的偏差  以此類推
  38. pwm代表增量輸出
  39. 在我們的速度控制閉環系統里面,只使用PI控制
  40. pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)
  41. **************************************************************************/
  42. int Incremental_PI (int Encoder,int Target)                //Target是目標值
  43. {        
  44.          float Kp=20,Ki=30;       
  45.          static int Bias,Pwm,Last_bias;
  46.          Bias=Encoder-Target;                //計算偏差
  47.          Pwm+=Kp*(Bias-Last_bias)+Ki*Bias;   //增量式PI控制器
  48.          Last_bias=Bias;                           //保存上一次偏差
  49.          return Pwm;                         //增量輸出
  50. }

  51. /**************************************************************************
  52. 函數功能:限制PWM賦值
  53. 入口參數:無
  54. 返回  值:無
  55. **************************************************************************/
  56. void Xianfu_Pwm(void)
  57. {       
  58.         int Amplitude=7100;    /*PWM滿幅是7200 限制在7100*/
  59.     if(Moto<-Amplitude) Moto=-Amplitude;       
  60.         if(Moto>Amplitude)  Moto=Amplitude;       
  61. }

  62. /**************************************************************************
  63. 函數功能:絕對值函數
  64. 入口參數:int
  65. 返回  值:unsigned int
  66. **************************************************************************/
  67. int myabs(int a)
  68. {                   
  69.           int temp;
  70.                 if(a<0)  temp=-a;  
  71.           else temp=a;
  72.           return temp;
  73. }

  74. /**************************************************************************
  75. 函數功能:賦值給PWM寄存器
  76. 入口參數:PWM
  77. 返回  值:無
  78. **************************************************************************/
  79. void Set_Pwm(int moto)
  80. {
  81.                         if(moto>0)                AIN2=1,                        AIN1=0;
  82.                         else                 AIN2=0,                        AIN1=1;
  83.                         PWM1=myabs(moto);
  84. }

復制代碼

所有資料51hei提供下載:
小車.rar (406.8 KB, 下載次數: 54)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:423055 發表于 2018-11-24 22:46 | 只看該作者
謝謝樓主分享
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲日日夜夜 | 亚洲一区中文字幕 | 国产一级特黄视频 | 欧美视频第三页 | 久久久天堂 | 亚洲欧美中文日韩在线v日本 | 国产成人高清成人av片在线看 | 日韩精品久久久久 | 日韩在线视频网址 | 日本涩涩视频 | 国产成人精品一区二区三区在线 | 国产精品久久二区 | 久久国产一区二区三区 | 精品在线一区二区三区 | 国产在线色 | 97久久国产| 午夜影院在线免费观看视频 | 亚洲精品久久久一区二区三区 | 日本激情视频网 | 91麻豆精品国产91久久久更新资源速度超快 | 香蕉久久a毛片 | 中文字幕综合在线 | 99精品网 | 日韩www | 色又黄又爽网站www久久 | 一区二区三区国产在线观看 | 日韩一级免费电影 | 一级在线免费观看 | 免费一区二区 | 成人免费视频网站在线观看 | 久久精品国产一区二区电影 | 免费一级网站 | 成人免费在线视频 | 91成人小视频 | 国产精品成人一区二区三区吃奶 | 在线观看国产三级 | 日韩国产一区二区三区 | 欧美日高清| 亚洲激精日韩激精欧美精品 | 色视频一区二区 | 久久成人一区 |