电机驱动知识点总结

一、直流电机入门基础知识

1.直流电机原理

下面是分析直流电机的物理模型图。其中,固定部分有磁铁,这里称作主磁极;固定部分还有电刷。转动部分有环形铁心和绕在环形铁心上的绕组。(其中 2 个小圆圈是为了方便表示该位置上的导体电势或电流的方向而设置的)
pksjumF.png
它的固定部分(定子)上,装设了一对直流励磁的静止的主磁极 N 和 S,在旋转部分(转子)上装设电枢铁心。在电枢铁心上放置了两根导体连成的电枢线圈,线圈的首端和末端分别连到两个圆弧形的铜片上,此铜片称为换向片。换向片之间互相绝缘,由换向片构成的整体称为换向器。换向器固定在转轴上,换向片与转轴之间亦互相绝缘。在换向片上放置着一对固定不动的电刷B1 和 B2,当电枢旋转时,电枢线圈通过换向片和电刷与外电路接通。
在电刷上施加直流电压 U,电枢线圈中的电流流向为:N 极下的有效边中的电流总是一个方向,而 S 极下的有效边中的电流总是另一个方向。这样两个有效边所受的洛伦兹力的方向一致(可以根据左手法则判定),电枢开始转动。具体就是上图中的+和-分别接到电池的正极和负极,电机即可转动;如果是把上图中的+和-分别接到电池的负极和正极,则电机会反方向转动。电机的转速可以理解为和外接的电压是正相关的(实际是由电枢电流决定)。
总结,如果我们可以调节施加在电机上面的直流电压大小,即可实现直流电机调速,变施加电机上面直流电压的极性,即可实现电机换向。

2.减速器

一般直流电机的转速都是一分钟几千上万转的,所以一般需要安装减速器。减速器是一种相对精密的机械零件,使用它的目的是降低转速,增加转矩。减速后的直流电机力矩增大、可控性更强。按照传动级数不同可分为单级和多级减速器;按照传动类型可分为齿轮减速器、蜗杆减速器和行星齿轮减速器。
pksj1YR.png
齿轮减速箱体积较小,传递扭矩大,但是有一定的回程间隙。蜗轮蜗杆减机的主要特点是具有反向自锁功能,可以有较大的减速比,但是一般体积较大,传动效率不高,精度不高。行星减速机其优点是结构比较紧凑,回程间隙小、精度较高,使用寿命很长,额定输出扭矩可以做的很大,但价格略贵。

3.电机实物接线图解

pksjtOO.png
上面介绍了一大堆说直流电机只引出两个线,怎么这个电机有 6 个线,而且还有两个大焊点呢?其实,根据上面的图解也知道,那两个焊点分别和黄线和棕线是连接在一起的。也就是说只有 6 个线,而 6P 排线中,中间的四根线(红绿白黑)是编码器的线,只是用于测速,和直流电机本身没有联系。我们在实现开环控制的时候无需使用。
综上所述,我们只需控制施加在黄线和棕色线两端的直流电压大小和极性即可实现调试和换向。

二、TB6612 模块介绍

(1) TB6612 是东芝半导体公司生产的的一款直流电机驱动器件,它具有大电流的 MOSFET-H 桥结构,双通道电路输出,可同时驱动两个电机。如果我们需要驱动两个电机,只需要一块 TB6612 芯片即可。
(2) 相比 L298N 的热耗性和外围二极管续流电路,它无需外加散热片,外围电路简单,只需要外接电源滤波电容就可以直接驱动电机,利于减小系统尺寸。
(3) 对于 PWM 信号输入频率范围,高达 100kHz 的频率更是足以满足我们大部分的需求了。
(4) TB6612 的主要参数:
最大输入电压:VM = 15V
最大输出电流:Iout=1.2A(平均)或=3.2A(峰值)
具有正反转、短路刹车、停机功能模式
内置过热保护和低压检测电路

1.D103A 模块说明

pksjT10.png
D103A 模块主要由 TB6612FNG 芯片和三个电容组成,D103A 模块直接引出TB6612 芯片的引脚,除此之外还增加了几个必要的旁路电容,增强用户使用稳定性。

2.D153B 模块说明

(1)新增了 5V 稳压电路,支持 5V、5A 的输出。共有 3 个这样的引脚可以对外供电。
(2)增加电压测量电路,通过串联一个 10kΩ和一个 1kΩ的电阻,对输入电源进行 1/11 的分压后,可以通过 ADC 采集并计算得到电源的电压进行监控。
(3)引出电机标准的 6PIN 接口,可以通过用排线连接,AB 相编码器的信号接到单独的引脚输出。
(4)新增了电源输出电路,电源输入接口做了并联输出,可以多个模块级联使用。
(5)含有电源开关,可以进行开启。
(6)具有过温保护功能,关断温度为 65℃。
pksjvN9.png

3.D24A 模块说明

该模块具有四路驱动,可以同时驱动四个直流电机。
(1)新增了 5V 稳压电路,支持 5V、5A 的输出。共有 4 个这样的引脚可以对外供电。
(2)增加电压测量电路,通过串联一个 10kΩ和一个 1kΩ的电阻,对输入电源进行 1/11 的分压后,可以通过 ADC 采集并计算得到电源的电压进行监控。
(3)引出电机标准的 6PIN 接口,可以通过用排线连接,AB 相编码器的信号接到单独的引脚输出。
(4)含有电源开关,可以进行开启。
(5)具有过温保护功能,关断温度为 65℃。
pksvKjf.png

三、原理图说明

1.TB6612 芯片原理图介绍与控制说明

pksvlDS.png
pksv1Hg.png
在使用的过程中,VM 需要比较大的电压,如 12V,而且 VCC 还需要接 5V。VM 是用来给电机供电的,VCC 是给芯片供电的,切记勿要接错,否则将会烧坏芯片。在控制电机时,AO1、AO2、BO1、BO2 连接电机的两个引脚,PWMA、PWMB 输入 PWM 信号(一般为 10kHz 的 PWM 信号),AIN1、AIN2、BIN1、BIN2 用来控制电机的运动方向。STBY 端是一个使能信号端,当 STBY=1 时,正常工作,输入 PWM信号,电机可正常运行;当 STBY=0 时,电机驱动处于待机状态,输入信号,电机不会运行。该芯片中的两个 GND 引脚,需一个接电源地,一个接单片机地。
pkszvNQ.png
想要电机转动,必须要有 PWM 输入,才有 O1、O2 输出,只接 IN1、IN2 是不会产生 O1、O2 信号。
如果手上没有单片机,我们可以直接接电源的引脚来进行测试:
AIN1 接 3.3V~5V、AIN2 接 GND、PWMA 接 3.3V~5V。这样就相当于电机满占空比正转。
AIN2 接 3.3V~5V,AIN1 接 GND、PWMA 接 3.3V~5V。这样就相当于电机满占空比反转。
这是控制电机的正反向运动,如果想要控制电机的转速,需要通过 PWM 来控制。
pkszxhj.png
要想让电机可以转动,那就必须使对角的 mos 管导通,如图上图所示,如果想让电机正转,那就使 Q1 和 Q4 导通,如果想让电机反转,那就让 Q2 和 Q3 导通。
但是要注意不能让同一侧的 mos 管同时导通,因为这时电路上没有任何负载,电流会变得非常大,会烧坏电路。

2.D103A 模块原理图介绍

pkySS9s.png
D103A 模块和 TB6612 的基本一样,只不过 D103B 在 VM1 上并接两个电容。一个为 0.1μF 无极性电容和 10μF 电解电容,这个搭配方式我们可以在电路中经常看到,因为供电时的实际电源并不稳定,夹杂高频和低频干扰。10μF 电容对与滤波干扰有较好的作用,但对于高频干扰,电容呈现感性,阻抗很大,无法有效滤波,所以再并连一个 0.1μF 的电容滤除高频分量。
在 VCC 和 GND 处连接了电容,起到了一个储能作用,避免电路有时候耗电大,有时小的问题。

3.D153B 原理图介

pkySp3n.png
D153B 模块多了稳压电路、电机接口、12V 电源输入输出、5V 电源和 3.3V 电源的并联输出和电源开关。这就可以直接和一个单片机的最小模块直接使用,可以采集 ADC,对模块的电源进行监控;有了电机接口,可以直接插上电机线,对电机的编码器数据读取,还只需要接一个外部电源,再由 D153B 的 5V 电源输出为单片机供电,比较简便。

四、电机驱动问题排查和测试方法

1.电源的检测

对于这个模块的检测,我们首先要检测的是电源是否正常,我们在接上 12V 的电源之后,打开电源开关,我们可以看到蓝色电源灯 LED1 是正常亮起的,再用万用表选择到直流电压挡位,黑色表笔接电源负极,红色表笔分别检测一下电源输入正极、5V 和 3V3 的输出引脚是否正常。如果正常,则进行下一步检测。
pksz2nK.png

2.驱动芯片的检测

TB6612 带稳压驱动模块电源没有问题后,若是电机不能够正常运转,观察一下这个 TB6612 芯片是否正常,芯片是否被击穿或者是否发烫。若是 TB6612 芯片严重发烫,那么是不能够正常工作的。
pkszhAe.png

3.引脚的检测

如果前面两个的检测都没有问题,而电机不正常运转,那么我们就需要检测模块在信号输入引脚正常输入的情况下电机是否可以正常工作。这里以测试 B 路为例(A 路的测试方法与 B 路相同,仅需要将 BIN 换成 AIN、PWMB 换成 PWMA),例如将 BIN1 和 BIN2 分别连接 3V3 和 GND 引脚上,STBY 和 PWMB连接 3V3,BO1 和 BO2 分别连接电机的正负极引脚,接入 12V 电源开关并打开电源开关,观察电机是否转动。再将 BIN1 连接 GND,BIN2 连接 3V3,观察电机是否可以正常的反转。若是电机不转动,检查接线是否牢固可靠无松动,如果接线正常没有松动情况,说明电机驱动板已损坏,无法正常工作驱动电机。
pksz7ct.png

4.电机不受 PID 控制

如果前面三个测试都没有问题,则说明电机驱动模块是正常的,在这里主要说明“编码器与电机输出方向不匹配”导致电机乱转的问题排查。
当我们采用编码器的闭环控制的时候,一定要连接对引脚,如果编码器的引脚连接错误,那么就会导致电机乱转一个现象。
首先第一步需要确保单片机可以正确采集到编码器的读数,且电机转速不同编码器读数不同,电机转向不同,编码器读数的方向也会随之发生变化。这里建议采用串口打印来查看或者 OLED 显示查看编码器读数的变化。如果编码器读数不正常,需要观察编码器的 5V 电源是否正常接上,并且单片机是否正常开启编码器模式来读取数据。
第一步确认正常后,则下一步需要确认编码器的方向是否与电机输出方向是否匹配。如果发生乱转,可以考虑变换一下连接的编码器的引脚。下面以 B 路为例子,(A 路的调试也和 B 路的一样,只需转变编码器引脚和电机输入引脚即可)如调转一下 E2A 和 E2B 的连接或者是控制电机转向的引脚 BIN1 和 BIN2,如果转换之后,电机可以受到了 PID 的控制,但是方向不对的话,那我们只需要同时转换编码器引脚和控制电机转向引脚即可,如下图中 E2A 和 E2B、BIN2 和 BIN:
pkszLB8.png

一定要注意编码器引脚的连接,例如将电机 A 的编码器接到了电机 B 的编码器中,那就导致闭环控制的时候电机 A 的编码器反馈一直为 0,所以导致乱转。

注意的是编码器的定义要为 int 型,如果为 u16 型的话,正方向采集的数据
是正确的,那么电机反转采集的数据则是补码,例如采集到的是编码器数据是
-200,u16 的补码形式就是 65335,数据就会过大,导致电机乱转。

### 关于D153C驱动示例代码 对于特定硬件设备如D153C的驱动程序开发,通常会依赖制造商提供的官方文档和支持资源。然而,在开源社区或者操作系统配套的支持包中也可能找到有用的参考资料。 如果基于OneOS进行开发,并希望集成或修改现有的板级支持包(BSP),可以参考类似的外设驱动添加方法[^3]。具体来说: - **理解现有结构**:先熟悉当前使用的BSP框架及其配置方式。 - **借鉴相似案例**:寻找功能相近的其他外设是如何实现的,比如GPIO、I2C等接口的操作模式。 针对D153C这样的专用组件,建议直接访问芯片厂商网站获取最新的应用笔记和技术手册;这些资料往往包含了详细的初始化流程以及典型应用场景下的编程指南。此外,GitHub或其他代码托管平台上也许能找到由开发者分享的相关实例。 ```c // 假定这是部分伪码表示如何注册一个新的字符型设备节点 #include <linux/module.h> #include <linux/kernel.h> static int __init d153c_init(void){ printk(KERN_INFO "Loading D153C driver\n"); // 初始化工作... return 0; } static void __exit d153c_exit(void){ printk(KERN_INFO "Unloading D153C driver\n"); // 清理操作... } module_init(d153c_init); module_exit(d153c_exit); MODULE_LICENSE("GPL"); ``` 此段代码仅作为演示用途展示了一个简单的Linux内核模块加载与卸载函数模板,实际编写时需按照D153C的具体需求来填充具体的逻辑处理语句。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱嵌入式的小佳同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值