前期准备:
要实现减速电机的配置,首先我们要了解自己的电机上编码器的参数。例如这款电机型号为:CHR-GM37-520
其参数如下图:
从图上的基础脉冲数为11PPR我们可以看出电机轴转一圈可以产生11个脉冲信号;
在电机的标签上看到电机减速比为1:90;
那么电机转动一圈实际上产生脉冲数就是:90*11 = 990;
在单片机采用4倍频计数提高精度之后脉冲数:990 * 4 = 3,960;
这就意味着电机一圈的转动我们的单片机就会捕获3960个脉冲信号。
测速方法:在一定时间内,捕获脉冲数。
实际速度:一圈对应3960个脉冲,物理计算出一圈的长度,除以时间,得到实际速度。
驱动使用:l298n
由图可知单片机需要输出3个信号:一个pwm信号,2个方向控制信号。
code : timer
TIM1:PWM输出 TIM3:输入捕获 TIM4:定时器(都在里面运行)
GPIOA: 3,4方向控制信号线 8,11pwm输出控制线
#ifndef __TIMER_H
#define __TIMER_H
#include "sys.h"
extern float cnt;
extern int Tim3_Arr;
extern int Tim3_Psc;
void Encoder_Init_TIM3(void);
void Pwm_Init_TIM1(u16 arr, u16 psc);
void Timer_Init_TIM4(u16 arr, u16 psc);
int Read_Encoder(void);
#endif
#include "timer.h"
#include "sys.h"
#include "delay.h"
#include "led.h"
uint16_t TIM1_CCR1_Val = 2000;
uint16_t TIM1_CCR4_Val = 18000;
uint16_t DEMO = 1000;
float zheng;
float fu;
float cnt;
int Tim3_Arr = 5999;
int Tim3_Psc &