找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2684|回復: 2
收起左側(cè)

stm32使用L298N控制直流電機 PID

[復制鏈接]
ID:576778 發(fā)表于 2021-1-9 10:03 | 顯示全部樓層 |閱讀模式
  1. 利用PID控制直流編碼電機
  2. 直流電機帶光電編碼器。

  3. 單片機源程序如下:
  4. #include "delay.h"
  5. #include "stm32f10x.h"
  6. #include "sys.h"
  7. #include "timer.h"
  8. #include "usart.h"
  9. #include "encoder.h"
  10. #include "oled.h"
  11. #include "pwm.h"
  12. #include "control.h"
  13. #include "led.h"
  14. #include "key.h"

  15. extern int Target_velocity;
  16. extern u16  Encoder;             //左右編碼器的脈沖計數(shù)
  17. extern u16  Moto1;                 //電機PWM變量

  18. u8 t=0;         
  19. float speed;

  20. int main(void)
  21. {               
  22.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 設置中斷優(yōu)先級分組2
  23.   
  24.         delay_init();                     //延時函數(shù)初始化         
  25.         KEY_Init();                  //初始化與按鍵連接的硬件接口
  26.         OLED_Init();
  27.         uart_init(9600);                    //=====串口初始化
  28.   Encoder_Init_TIM2();            //=====編碼器接口
  29.       
  30.         TIM3_Int_Init(99,7199);          //10ms
  31.       
  32.         IN2=1;
  33.   IN1=0;
  34.       

  35.         LED_Init();                          //初始化與LED連接的硬件接口
  36.       
  37.         TIM1_PWM_Init(7199,0);//不分頻。PWM頻率=72000/(899+1)=80Khz

  38.     while(1)
  39.            {
  40.                         
  41.                          speed = Encoder*100/4/13/30;           
  42.                          printf("speed:%0.2f rad/s\r\n",speed); //x100/4/13/30 //13線  30減速比  4分頻
  43.                         
  44.                          OLED_ShowString(0,0,"speed:",16);
  45.                    OLED_ShowNum( 16,0,speed,3,16);
  46.                    OLED_ShowString(48,0,"rad/s",16);
  47.                    OLED_Refresh_Gram();//更新顯示到OLED                          
  48.                         
  49.                        
  50.                         t=KEY_Scan(0);                //得到鍵值
  51.                         switch(t)
  52.                         {                                 
  53.                                 case KEY0_PRES:  Target_velocity++;  break;
  54.                                 case KEY1_PRES:  Target_velocity--;  break;
  55.                                 default:                        delay_ms(10);      
  56.                         }                        
  57.                 }
  58. }                 
復制代碼


回復

使用道具 舉報

ID:1 發(fā)表于 2021-1-9 15:37 | 顯示全部樓層
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

ID:877505 發(fā)表于 2021-1-14 14:38 | 顯示全部樓層
這個就有點和標題不符合了吧,就一個主函數(shù),什么算法,電路圖都沒有

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表