我是靠谱客的博主 自由烧鹅,这篇文章主要介绍L298N——驱动AB相编码器电机并测速一、基础知识及原理二、连线图三、遇到问题的解决办法四、程序源码,现在分享给大家,希望可以做个参考。

一、基础知识及原理

【STM32小案例 04 】STM32简单使用L298N电机驱动模块 控制直流电机正反转

二、连线图

连线图

三、遇到问题的解决办法

L298N——真正的玄学驱动板

四、程序源码

附主函数:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "sys.h" #include "delay.h" #include "usart.h" #include "led.h" #include "pwm.h" #include "timer.h" #include "stm32f4xx_rcc.h" RCC_ClocksTypeDef get_rcc_clock; //获取系统时钟状态 int main(void) { RCC_GetClocksFreq(&get_rcc_clock); int encoder; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2 LED_Init(); delay_init(168); //初始化延时函数 uart_init(115200);//初始化串口波特率为115200 TIM14_PWM_Init(500-1,84-1); //84M/84=1Mhz的计数频率,重装载值500,所以PWM频率为 1M/500=2Khz. encoder_tim3_init(); while(1) //实现比较值从0-300递增,到300后从300-0递减,循环 { GPIO_SetBits(GPIOF,GPIO_Pin_0); //正转 GPIO_ResetBits(GPIOF,GPIO_Pin_1); TIM_SetCompare1(TIM14,0); //修改比较值,修改占空比 delay_ms(1000); encoder = read_encoder(); printf("t:%drn",encoder); TIM_SetCompare1(TIM14,400); //修改比较值,修改占空比 delay_ms(1000); encoder = read_encoder(); printf("t:%drn",encoder); GPIO_ResetBits(GPIOF,GPIO_Pin_0); //停止 GPIO_ResetBits(GPIOF,GPIO_Pin_1); delay_ms(1000); encoder = read_encoder(); printf("t:%drn",encoder); GPIO_ResetBits(GPIOF,GPIO_Pin_0); //反转 GPIO_SetBits(GPIOF,GPIO_Pin_1); TIM_SetCompare1(TIM14,0); //修改比较值,修改占空比 delay_ms(1000); encoder = read_encoder(); printf("t:%drn",encoder); TIM_SetCompare1(TIM14,400); //修改比较值,修改占空比 delay_ms(1000); encoder = read_encoder(); printf("t:%drn",encoder); } }

最后

以上就是自由烧鹅最近收集整理的关于L298N——驱动AB相编码器电机并测速一、基础知识及原理二、连线图三、遇到问题的解决办法四、程序源码的全部内容,更多相关L298N——驱动AB相编码器电机并测速一、基础知识及原理二、连线图三、遇到问题内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(85)

评论列表共有 0 条评论

立即
投稿
返回
顶部