直流减速电机,即齿轮减速电机,是在普通直流电机的基础上,加上配套齿轮减速箱。齿轮减速箱的作用是,提供较低的转速,较大的力矩。
电机速比:将电动机的额定转速nN(r/min) 与减速器 输出轴的转速nL的比值称为速比I(亦称为传动比),i=nN/nL
。
如下这款为 i = 171:1
。
通常会有6条接线,2条电机线,4条属于编码盘的。我们先从简单入手,忽略编码盘。
进阶拓展:【学习笔记】TB6612当排除法知道是它有问题的时候就来看数据手册
引脚 | 含义 |
---|---|
VM | 电机供电,接10V以内 |
VCC | 逻辑控制电路输入,5V |
GND | 共地端,连单片机地端 |
AIN1 AIN2 | 与单片机IO口连接,控制A路电机转动,即向A01,A02口输出电压 |
BIN1 BIN2 | 与单片机IO口连接,控制B路电机转动,即向B01,B02口输出电压 |
PWMA PWMB | 与单片机可输出PWM波IO口连接,控制电机转速 |
A01 A02 | 与A电动机线连接,正负调换即改变转向 |
B01 B02 | 与B电动机线连接,正负调换即改变转向 |
驱动板引脚 | OpenMV IO口 |
---|---|
ain1 | P0 |
ain2 | P1 |
bin1 | P2 |
bin2 | P3 |
pwma | P7 |
pwmb | P8 |
其他引脚连接看上上表。
from pyb import Pin, Timer
inverse_left=False #change it to True to inverse left wheel
inverse_right=False #change it to True to inverse right wheel
ain1 = Pin('P0', Pin.OUT_PP)
ain2 = Pin('P1', Pin.OUT_PP)
bin1 = Pin('P2', Pin.OUT_PP)
bin2 = Pin('P3', Pin.OUT_PP)
ain1.low()
ain2.low()
bin1.low()
bin2.low()
pwma = Pin('P7')
pwmb = Pin('P8')
tim = Timer(4, freq=1000)
ch1 = tim.channel(1, Timer.PWM, pin=pwma)
ch2 = tim.channel(2, Timer.PWM, pin=pwmb)
ch1.pulse_width_percent(0)
ch2.pulse_width_percent(0)
def run(left_speed, right_speed):
if inverse_left==True:
left_speed=(-left_speed)
if inverse_right==True:
right_speed=(-right_speed)
if left_speed < 0:
ain1.low()
ain2.high()
else:
ain1.high()
ain2.low()
ch1.pulse_width_percent(abs(left_speed))
if right_speed < 0:
bin1.low()
bin2.high()
else:
bin1.high()
bin2.low()
ch2.pulse_width_percent(abs(right_speed))
#调用
while(True):
run(30,30) #pwm输出为30,速度为30,向前跑
------------------------------------------------------------分割线---------------------------------------------------------------
常用的减速电机是带AB相测速编码盘,通过读取输出的脉冲可以知道电机转向和转速。
如果通过脉冲来测试速度,需要用到中断来实现。
霍尔编码盘AB相输出方波如上图,将其中的A相(1相)接到单片机外部中断IO口,B相接到普通IO口,则中断响应为脉冲计数,通过定时器判断一定时间比如1s累计的脉冲,跟每圈11个脉冲计算便可算出电机速度为60/1*脉冲数/11
, 检测转向方法为如A相下降沿中断时同时检测B相电平,若为低电平,则为正转。
由于没有OPENMV在手,只能通过C51单片机和Proteus仿真验证。
理论分析:
根据编码器脉冲累加测量电机得位置信息,并与目标值进行比较,得到控制偏差,然后通过对偏差的比例、积分、微分进行控制。
公式:Pwm=Kpe(k)+Ki∑e(k)+Kd[e(k)-e(k-1)]
e(k):本次偏差
e(k-1):上一次的偏差
∑e(k):e(k)以及之前的偏差的累积和;其中k为1,2,k;
其中KP为比例系数;Ti为积分时间常数;Td为微分时间常数,每个系统不一样所以需要实验调试获得较为理想的,即能满足稳定性、快速性、准确性。
原理图:
骐骥一跃,不能十步;驽马十驾,功在不舍。——《荀子》
此篇收录于专栏【手把手教你做OpenMV小车】,总篇链接:https://blog.csdn.net/qq_42807924/article/details/86585757
作者:吾本虚无
来源:CSDN
原文:https://blog.csdn.net/qq_42807924/article/details/86682369
(本文为吾本虚无原创,禁止任何形式转载)
完。