博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
电机加减速转动
阅读量:5336 次
发布时间:2019-06-15

本文共 1884 字,大约阅读时间需要 6 分钟。

控制电机的加减速,那就要用到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);  910       //初始化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); //72HZ13     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)=80KHZ20 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 }

这样电机就能加速减速了

 实物图:

转载于:https://www.cnblogs.com/zengsf/p/7411089.html

你可能感兴趣的文章
linux清空日志文件内容 (转)
查看>>
安卓第十三天笔记-服务(Service)
查看>>
Servlet接收JSP参数乱码问题解决办法
查看>>
【bzoj5016】[Snoi2017]一个简单的询问 莫队算法
查看>>
Ajax : load()
查看>>
MySQL-EXPLAIN执行计划Extra解释
查看>>
Zookeeper概述
查看>>
Zookeeper一致性级别
查看>>
单例模式的几种实现方式及对比
查看>>
邓白氏编码 申请
查看>>
Linux远程登录
查看>>
Linux自己安装redis扩展
查看>>
HDU 1016 Prime Ring Problem(dfs)
查看>>
苹果官方例子
查看>>
C#中结构体与字节流互相转换
查看>>
WIN10配置MongoDB
查看>>
iOS resign code with App Store profile and post to AppStore
查看>>
python 表格操作
查看>>
LeetCode 84. Largest Rectangle in Histogram
查看>>
session和xsrf
查看>>