前言
本文将讲述关于电机的知识,内容包含电机驱动和电机编码器。电机驱动介绍TB6612FNG。
以下是本篇文章的正文内容
一、为什么要用电机驱动
一般电机接上电源就可以转了,正接正转,反接反转。
如果要用单片机的IO口控制电机就需要电机驱动,原因是IO口功率不够驱动不了电机,而且单片机可能会烧掉。
二、TB6612电机驱动
1.TB6612介绍
TB6612FNG可以驱动两个电机,TB6612FNG 模块相对于传统的 L298N 效率上提高很多,体积上也大幅度减少,在额定范围内,芯片基本不发热。PWM控制的频率可达100kHZ。
以下是TB6612FNG模块的原理图
实际使用的就是下列引脚:
VM:电机驱动电压,一般为2.5~13.5V
VCC:芯片驱动电压,3.3V或5V
STBY:高电平(3.3V/5V)使能芯片,低电平进入待机状态
PWMA:电机A的PWM控制,接单片机
PWMB:电机B的PWM控制,接单片机
AIN1:电机A的逻辑输入,接单片机
AIN2:电机A的逻辑输入,接单片机
BIN1:电机B的逻辑输入,接单片机
BIN2:电机B的逻辑输入,接单片机
AO1:电机A的输出,接电机A
AO2:电机A的输出,接电机A
BO1:电机B的输出,接电机B
BO2:电机B的输出,接电机B
2.TB6612的使用
以一个直流电机为例,电机的两个供电引脚接到AO1和AO2。PWMA、AIN1、AIN2接到单片机的IO口上,PWMA可以接到定时器IO输出PWM。VCC接3.3V或者5V。VM是电机供电电压,根据电机额定电压来接,注意只能是2.5~13.5V。STBY跟VCC接到一起。
真值表
AIN1 | 0 | 0 | 1 |
---|---|---|---|
AIN2 | 0 | 1 | 0 |
状态 | 停止 | 正转 | 反转 |
BIN1 | 0 | 0 | 1 |
---|---|---|---|
BIN2 | 0 | 1 | 0 |
状态 | 停止 | 正转 | 反转 |
根据真值表控制IO口从而控制正反转。
PWMA输出不同脉宽从而控制转速。
三、电机编码器
1.为什么要用电机编码器
电机编码器分两种,光电编码器和霍尔编码器。光电编码器精度更高,价格也比较贵。电机编码器可以测量出电机的角度、速度、正反转。有了电机编码器就可以监控电机的状态从而更好的控制电机。
2.电机编码器的使用
电机编码器有AB两相,AB相输出两个脉冲,编码器的所有信息都融合在这两个脉冲。
一般编码器都有四根线,VCC、GND、A相、B相。AB相接到单片机IO口捕获脉冲。
理想的AB相波形图。
(1)根据A相超前还是滞后B相来判断正反转。
(2)电机每转一圈的脉冲数目是相同的,所以测量的脉冲数目除上一圈的总数目就是电机当前角度了。如果采用四倍频计数,还要再除上4。
(3)如果每隔一段时间读脉冲数目然后把计数器清0,那么所读的数目除上时间就相当于电机转速。
如果使用STM32,可以用定时器输入捕获的编码器模式来计数。直接读取计数器数值就可以了,而且自带滤波。
结语
那么以上就是本篇文章的所有内容了。
本文如果有什么不对的或者需要改进的地方欢迎指出。