热度 7
2023-6-9 15:53
961 次阅读|
0 个评论
1. 什么是电机驱动器? 顾名思义,“电机驱动器”是用来驱动电机的。如果只是将干电池与电机相连接,电机只会根据干电池的电压全速向一个方向旋转,而如果能恰当地使用电机驱动器,则可以根据需求灵活控制电机,比如可以让它正转、反转,还可以设置为自己想要的转速。 视频 使电机正转和反转的场景 https://www.youtube.com/embed/3cFut5gckQM ※此链接为Youtube视频 2. 通过H桥电路控制电机的正反转 首先我们来了解一下电机的正反转机制及其原理。 使电机仅正向旋转的电路配置如图2.1所示。 图2.1 电机正转电路 在该电路中,要使电机反转,您必须手动重新将电池和电机反向接线。当然,考虑到需要将电机安装在机器人或设备中时,这种手动接线的麻烦事是不现实的。 对此,有一种称为“H桥”式的电路配置方法,可以实现电机的正转和反转。如图2.2所示,H桥是通过在VCC和GND方向上将共四个开关连接到电机的两个引脚构建而成的。 图2.2 H桥的基本结构 使电机正转时,如图2.3所示,只有左上和右下的开关ON;使电机反转时,只有右上和左下开关ON,这样通过开关的ON/OFF组合,就可以简单地实现电机的正转和反转。另外,需要注意的是,使左侧的两个开关同时(或右侧的两个开关同时)ON时,会使VCC和GND短路,所以在开关组合时要留心。 图2.3 通过H桥控制电机的正反转 3. 什么是电机驱动器IC? “电机驱动器IC”是在MOS晶体管中集成了构成电机驱动电路所需的H桥、控制电路及保护电路等的IC。在创建支持几十安培级的大电流电机驱动器时,可以通过将分立元器件组合在一起来构建电路,如果只是几安培级的电机驱动器,那么使用电机驱动器 IC将可以实现电路的小型化和基于保护电路的过流保护。 这次,我们将使用电机驱动器IC“BD6231F”来控制普通模型用的直流电机。 图3.1 电机驱动器IC“BD6231F” 4. 查看技术规格书 首先,将开关与电机驱动器连接,并尝试使电机正转和反转。接下来,我们将在电机驱动器IC“BD6231F”周围连接电子元器件和布线,关于电源电压和连接方法,我们可以一边参考电机驱动器IC的技术规格书一边探讨。可以通过在网上搜索产品型号,或参考产品销售页面上介绍的技术规格书。 图4.1 技术规格书摘录 H桥驱动器36V耐压 – BD6231F 有关我们要使用的电机驱动器IC“BD6231F”的信息,通过查看技术规格书中写有“BD6231F”的部分即可。在其他部分列出了同系列的不同型号,因此查看时需要注意型号无误。 “BD6231F”是采用了SOP8封装(8引脚1.27mm间距表面贴装IC)的产品。图4.2是从技术规格书中摘取出来的框图、引脚排列图和引脚说明。在引脚说明中,您可以看到每个引脚的作用。 图4.2 BD6231F的框图、引脚排列图和引脚说明 如图4.3所示,推荐的电源电压范围是6V~32V,所以这次我们将6V连接至电源(VCC和GND)。 图4.3 BD6231F的推荐电压 另外,BD6231F存在“工作模式”,工作模式因输入至电机驱动器的控制输入引脚(FIN、RIN、VREF)的信号种类而异。 图4.4 工作模式 5. 尝试使用电机驱动器IC 由于本次使用的IC是间距为1.27mm的表面贴装型封装,因此无法将其直接插入面包板中使用。那么首先需要将IC和排针焊接到DIP转接板上。 图5.1 安装在DIP转接板上的器件 【所用器件】 秋月电子通商 全桥驱动器IC BD6231F-E2 SOP8(1.27mm)DIP转接板镀金(9片装) 细排针 1×40(黑) 在电路板上安装IC时,需要注意IC的方向和引脚编号。此次使用的DIP转接板上用丝网印刷(白字)的方式印制了引脚编号,这些引脚号按照图5.2所示的含义进行匹配。 图5.2 IC引脚编号的含义 我对焊接过程进行了定点拍摄,如果您是第一次尝试焊接表面贴装型器件,可以参考我拍摄的视频。 视频 焊接过程(4倍速) https://www.youtube.com/embed/Yc7MJQJWcdo ※此链接为Youtube视频 焊接完成后,成为图5.3中的照片所示的样子。 图5.3 安装在DIP转接板上的IC和排针 6. 尝试用开关控制电机驱动器IC 首先,我们用开关启动电机驱动器IC,尝试使电机正转和反转。应该是按下SW1使电机正转,按下SW2使电机反转。为了降低电机的再生电流引起的噪声,C1使用了多层陶瓷电容器(0.1μF),C2使用电解电容器(100μF)。 图6.1 BD6231外围电路(通过开关进行控制) 在该电路中,VREF引脚是与VCC连接的,FIN和RIN为ON或OFF(H或L)输入,因此工作模式是Mode (b)的正转模式或Mode (c)的反转模式。 图6.2 正转模式和反转模式 下面,我们来尝试一下让电机正转和反转。 视频 通过开关正转和反转 https://www.youtube.com/embed/B3fBFYhCtws ※此链接为Youtube视频 这样,我们通过开关对电机驱动器IC进行控制输入,使电机成功地实现了正转和反转。 7. 尝试用Arduino控制电机驱动器IC 现在,我们尝试用Arduino来控制电机驱动器IC。前面我们通过开关实现了对电机驱动器的控制输入,只要将这个开关替换为Arduino端口就可以了。另外,Arduino由USB数据线供电。 图7.1 BD6231外围电路(通过Arduino进行控制) 由于VREF与VCC相连接,输入至FIN和RIN的信号是PWM信号或L信号,因此该电路的工作模式Mode (e)和(f)的PWM控制模式A。 图7.2 PWM控制模式A 我创建的Arduino程序如下(test_BD6231.ino)。我使用analogWrite函数使引脚10和引脚11输出PWM信号,使引脚10输出正转时的PWM信号,使引脚11输出反转时的PWM信号。 最终,这个程序将执行“最大输出为30%、缓慢改变电机的正反转速度”的工作。 const int pinFin = 10; const int pinRin = 11; int theta = 0; void setup() { } void loop() { int speedMotor = 30 * sin(theta * PI / 180); //在-30到+30之间绘制正弦曲线 driveMotor(speedMotor); //电机控制 delay(20); theta = (theta + 1) % 360; //对theta进行计数并取余数 } //控制电机的函数 参数:speed(通过-100~100指定速度) void driveMotor(int speed) { int output = constrain(abs(speed * 255 / 100), 0, 255); 0) { analogWrite(pinFin, output); analogWrite(pinRin, 0); } else if (speed < 0) { analogWrite(pinFin, 0); analogWrite(pinRin, output); } else { analogWrite(pinFin, 0); analogWrite(pinRin, 0); } } 当我们尝试用这个程序来运行电机时,您是否注意到,电机的加速度比使用开关进行正反转时更加缓慢,最大转速也变慢了? 视频 Arduino的控制 https://www.youtube.com/embed/u1tP46o9r2o ※此链接为Youtube视频 通过使用电机驱动器IC,将可以使用Arduino这样的微控制器来控制电机,因此,能够比用手按开关更精细地控制电机的转速。 利用这种应用可以实现各种工作模式,比如当传感器反应时自动启动设备,或者使电机根据操纵杆的倾斜度执行不同转速的旋转。由电机驱动的装置和机器人,其工作模式是通过这些机制相组合而创建的,因此您可以根据自己的想法创建出各种有趣的作品! 8. 总结 此次我们了解了电机驱动器基础——H桥的相关知识,并实际使用电机驱动器IC来让电机旋转。电机驱动器IC不仅可以让电机旋转,还内置有可以防止过电流和过热的保护电路,因此能够安全地控制电机。在电子制作过程中,涉及到电机控制时,经常会发生由于电机过载而导致的过电流和过热等问题,所以,让我们使用内置保护功能的电机驱动器IC享受安全的电子制作吧! 来源:techclass.rohm