zoukankan      html  css  js  c++  java
  • 电机加减速转动

    控制电机的加减速,那就要用到pwm的初始化。也就是控制L298N的使能引脚。

     1      GPIO_PinRemapConfig(GPIO_Remap_TIM4, ENABLE); //Timer完全映射  TIM4_CH3->PD14  
     2    
     3     
     4     TIM_TimeBaseStructure.TIM_Period = arr; //重装载
     5     TIM_TimeBaseStructure.TIM_Prescaler =psc;  //预分频
     6     TIM_TimeBaseStructure.TIM_ClockDivision = 0; //时钟分割
     7     TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //向上计数  
     8     TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); 
    9 10 //初始化TIM4_channel3 pwm模式 11 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 12 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//比较输出使能 13 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性 14 TIM_OC3Init(TIM4, &TIM_OCInitStructure); //通道3的初始化 15 16 TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable); 17 18 TIM_Cmd(TIM4, ENABLE);

    还有IN1,IN2,IN3, IN4。  如果是使能1,就控制IN1和IN2。如果不是,这相反。

    假设pwm控制使能1。则IN1,IN2就控制电机的转动方向。利用两个GPIO口就行了。

    1     void JD_set(u8 x,u8 y)
    2 {
    3     JD1=x;
    4     JD2=y;
    5 } 

    可以在主函数中写一个函数,然后再USMART中调用,之后就可以在串口调试助手上直接控制电机的转动方向。

     1     void JD_set(u8 x,u8 y)
     2 {
     3     JD1=x;
     4     JD2=y;
     5 } 
     6 
     7  int main(void)
     8  {        
     9     u32 temp=0;
    10      u16 pwmval=0;
    11     u8 dir=1;    
    12     usmart_dev.init(SystemCoreClock/1000000); //72HZ
    13     delay_init(); 
    14     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);      
    15     uart_init(115200);    //串口波特率
    16      LED_Init();             
    17   //  TIM8_Cap_Init(0XFFFF,72-1); 
    18     JD_Init();
    19      TIM4_PWM_Init(899,0);    //72MHZ/(899+1)=80KHZ
    20 
    21        while(1)
    22     {
    23         
    24         
    25                     delay_ms(10);     
    26           if(dir)pwmval++;
    27             else pwmval--;
    28 
    29             if(pwmval>899)dir=0;
    30             if(pwmval==0)dir=1;                                         
    31             TIM_SetCompare3(TIM4,pwmval);    
    32     }
    33 }    

    这样电机就能加速减速了

     实物图:

  • 相关阅读:
    六类人最适合做程序员!不善于撩妹的人竟然当选...哈哈
    20170926-构建之法:现代软件工程-阅读笔记
    Android Studio新建类头部注释和添加函数注释模板及快捷键
    android AysncTask使用
    Android Studio配置git,实现项目在github上的版本同步
    avloadingindicatorview 使用解析
    retrofit 基础使用
    retrofit 使用解析
    关于HTTP
    单例模式
  • 原文地址:https://www.cnblogs.com/zengsf/p/7411089.html
Copyright © 2011-2022 走看看