原创 基础知识:了解电机驱动IC的使用方法

2023-9-7 15:55 616 2 2 分类: 工业电子

本系列连载将介绍电力电子相关的基础知识和各种小知识。本系列涉及到的内容很广泛,涵盖从基础知识到应用部分的丰富内容,希望能够帮到那些“至今不好意思问别人,但又拿不准自己是否已经理解了”的人。

在要开始电子制作时,有些人可能会想尝试制作一些电动的作品,比如“想试着制作一个机器人”或“想尝试制作一个可以动的装置”。这些作品中,多会用到电机,通过齿轮减缓电机的转速使车轮转动或使连杆机构动起来,可以实现丰富的运动。

在电子小知识系列的第2篇中,将为您介绍用来驱动电机的“电机驱动器”。这次,我们将以“通过Arduino控制电机”为目标,来了解电机驱动器IC的使用方法。

 

目次
  1. 什么是电机驱动器
  2. 通过H桥电路控制电机的正反转
  3. 什么是电机驱动器IC
  4. 查看技术规格书
  5. 尝试使用电机驱动器IC
  6. 尝试用开关控制电机驱动器IC
  7. 尝试用Arduino控制电机驱动器IC
  8. 总结

 

1. 什么是电机驱动器?

顾名思义,“电机驱动器”是用来驱动电机的。如果只是将干电池与电机相连接,电机只会根据干电池的电压全速向一个方向旋转,而如果能恰当地使用电机驱动器,则可以根据需求灵活控制电机,比如可以让它正转、反转,还可以设置为自己想要的转速。

视频 使电机正转和反转的场景
https://www.youtube.com/embed/3cFut5gckQM
※此链接为Youtube视频

 

2. 通过H桥电路控制电机的正反转

首先我们来了解一下电机的正反转机制及其原理。

使电机仅正向旋转的电路配置如图2.1所示。

tidbits-of-electronics-02-02

图2.1 电机正转电路

 

在该电路中,要使电机反转,您必须手动重新将电池和电机反向接线。当然,考虑到需要将电机安装在机器人或设备中时,这种手动接线的麻烦事是不现实的。

对此,有一种称为“H桥”式的电路配置方法,可以实现电机的正转和反转。如图2.2所示,H桥是通过在VCC和GND方向上将共四个开关连接到电机的两个引脚构建而成的。

tidbits-of-electronics-02-03

图2.2 H桥的基本结构

 

使电机正转时,如图2.3所示,只有左上和右下的开关ON;使电机反转时,只有右上和左下开关ON,这样通过开关的ON/OFF组合,就可以简单地实现电机的正转和反转。另外,需要注意的是,使左侧的两个开关同时(或右侧的两个开关同时)ON时,会使VCC和GND短路,所以在开关组合时要留心。

tidbits-of-electronics-02-04

图2.3 通过H桥控制电机的正反转

 

3. 什么是电机驱动器IC?

“电机驱动器IC”是在MOS晶体管中集成了构成电机驱动电路所需的H桥、控制电路及保护电路等的IC。在创建支持几十安培级的大电流电机驱动器时,可以通过将分立元器件组合在一起来构建电路,如果只是几安培级的电机驱动器,那么使用电机驱动器 IC将可以实现电路的小型化和基于保护电路的过流保护。

这次,我们将使用电机驱动器IC“BD6231F”来控制普通模型用的直流电机。

tidbits-of-electronics-02-05

图3.1 电机驱动器IC“BD6231F”

 

4. 查看技术规格书

首先,将开关与电机驱动器连接,并尝试使电机正转和反转。接下来,我们将在电机驱动器IC“BD6231F”周围连接电子元器件和布线,关于电源电压和连接方法,我们可以一边参考电机驱动器IC的技术规格书一边探讨。可以通过在网上搜索产品型号,或参考产品销售页面上介绍的技术规格书。

tidbits-of-electronics-02-06

图4.1 技术规格书摘录

 

[产品页面] H桥驱动器36V耐压 – BD6231F

有关我们要使用的电机驱动器IC“BD6231F”的信息,通过查看技术规格书中写有“BD6231F”的部分即可。在其他部分列出了同系列的不同型号,因此查看时需要注意型号无误。

“BD6231F”是采用了SOP8封装(8引脚1.27mm间距表面贴装IC)的产品。图4.2是从技术规格书中摘取出来的框图、引脚排列图和引脚说明。在引脚说明中,您可以看到每个引脚的作用。

tidbits-of-electronics-02-07

图4.2 BD6231F的框图、引脚排列图和引脚说明

 

如图4.3所示,推荐的电源电压范围是6V~32V,所以这次我们将6V连接至电源(VCC和GND)。

tidbits-of-electronics-02-08

图4.3 BD6231F的推荐电压

 

另外,BD6231F存在“工作模式”,工作模式因输入至电机驱动器的控制输入引脚(FIN、RIN、VREF)的信号种类而异。

tidbits-of-electronics-02-09

图4.4 工作模式

 

5. 尝试使用电机驱动器IC

由于本次使用的IC是间距为1.27mm的表面贴装型封装,因此无法将其直接插入面包板中使用。那么首先需要将IC和排针焊接到DIP转接板上。

tidbits-of-electronics-02-10

图5.1 安装在DIP转接板上的器件

 

【所用器件】

  • 全桥驱动器IC BD6231F-E2
  • SOP8(1.27mm)DIP转接板镀金(9片装)
  • 细排针 1×40(黑)

在电路板上安装IC时,需要注意IC的方向和引脚编号。此次使用的DIP转接板上用丝网印刷(白字)的方式印制了引脚编号,这些引脚号按照图5.2所示的含义进行匹配。

 

tidbits-of-electronics-02-11

图5.2 IC引脚编号的含义

 

我对焊接过程进行了定点拍摄,如果您是第一次尝试焊接表面贴装型器件,可以参考我拍摄的视频。

视频 焊接过程(4倍速)
※此链接为Youtube视频

 

焊接完成后,成为图5.3中的照片所示的样子。

tidbits-of-electronics-02-12

图5.3 安装在DIP转接板上的IC和排针

 

6. 尝试用开关控制电机驱动器IC

首先,我们用开关启动电机驱动器IC,尝试使电机正转和反转。应该是按下SW1使电机正转,按下SW2使电机反转。为了降低电机的再生电流引起的噪声,C1使用了多层陶瓷电容器(0.1μF),C2使用电解电容器(100μF)。

tidbits-of-electronics-02-13

图6.1 BD6231外围电路(通过开关进行控制)

 

在该电路中,VREF引脚是与VCC连接的,FIN和RIN为ON或OFF(H或L)输入,因此工作模式是Mode (b)的正转模式或Mode (c)的反转模式。

tidbits-of-electronics-02-14

图6.2 正转模式和反转模式

 

下面,我们来尝试一下让电机正转和反转。

视频 通过开关正转和反转
https://www.youtube.com/embed/B3fBFYhCtws
※此链接为Youtube视频

 

这样,我们通过开关对电机驱动器IC进行控制输入,使电机成功地实现了正转和反转。

 

7. 尝试用Arduino控制电机驱动器IC

现在,我们尝试用Arduino来控制电机驱动器IC。前面我们通过开关实现了对电机驱动器的控制输入,只要将这个开关替换为Arduino端口就可以了。另外,Arduino由USB数据线供电。

tidbits-of-electronics-02-15

图7.1 BD6231外围电路(通过Arduino进行控制)

 

由于VREF与VCC相连接,输入至FIN和RIN的信号是PWM信号或L信号,因此该电路的工作模式Mode (e)和(f)的PWM控制模式A。

tidbits-of-electronics-02-16

图7.2 PWM控制模式A

 

我创建的Arduino程序如下(test_BD6231.ino)。我使用analogWrite函数使引脚10和引脚11输出PWM信号,使引脚10输出正转时的PWM信号,使引脚11输出反转时的PWM信号。

最终,这个程序将执行“最大输出为30%、缓慢改变电机的正反转速度”的工作。


  1. const int pinFin = 10;
  2. const int pinRin = 11;
  3. int theta = 0;
  4. void setup() {
  5. }
  6. void loop() {
  7. int speedMotor = 30 * sin(theta * PI / 180); //在-30到+30之间绘制正弦曲线
  8. driveMotor(speedMotor); //电机控制
  9. delay(20);
  10. theta = (theta + 1) % 360; //对theta进行计数并取余数
  11. }
  12. //控制电机的函数 参数:speed(通过-100~100指定速度)
  13. void driveMotor(int speed) {
  14. int output = constrain(abs(speed * 255 / 100), 0, 255);
  15. if (speed > 0) {
  16. analogWrite(pinFin, output);
  17. analogWrite(pinRin, 0);
  18. } else if (speed < 0) {
  19. analogWrite(pinFin, 0);
  20. analogWrite(pinRin, output);
  21. } else {
  22. analogWrite(pinFin, 0);
  23. analogWrite(pinRin, 0);
  24. }
  25. }

 

当我们尝试用这个程序来运行电机时,您是否注意到,电机的加速度比使用开关进行正反转时更加缓慢,最大转速也变慢了?

视频 Arduino的控制
https://www.youtube.com/embed/u1tP46o9r2o
※此链接为Youtube视频

 

通过使用电机驱动器IC,将可以使用Arduino这样的微控制器来控制电机,因此,能够比用手按开关更精细地控制电机的转速。
利用这种应用可以实现各种工作模式,比如当传感器反应时自动启动设备,或者使电机根据操纵杆的倾斜度执行不同转速的旋转。由电机驱动的装置和机器人,其工作模式是通过这些机制相组合而创建的,因此您可以根据自己的想法创建出各种有趣的作品!

 

8. 总结

此次我们了解了电机驱动器基础——H桥的相关知识,并实际使用电机驱动器IC来让电机旋转。电机驱动器IC不仅可以让电机旋转,还内置有可以防止过电流和过热的保护电路,因此能够安全地控制电机。在电子制作过程中,涉及到电机控制时,经常会发生由于电机过载而导致的过电流和过热等问题,所以,让我们使用内置保护功能的电机驱动器IC享受安全的电子制作吧!


来源:techclass.rohm

文章评论0条评论)

登录后参与讨论
我要评论
0
2
关闭 站长推荐上一条 /2 下一条