当我们通过测试不同电压下的电机速度来确定电机速度常数时,我们发现当比较值小于某个值时,电机完全不会运转。这可能一直都是这样,但这里还有一个需要考虑的因素。我们说电机在电压变小时不动的原因是因为没有足够的功率克服电机内部的静摩擦。然而,在早些时候,我们学到电机的转矩与我们提供的电流有关。转矩是克服摩擦所需要的,因为摩擦是一种力,而转矩也是一种力。如果我们给电机提供更多的电流,电机可能在较低的速度下会有更好的表现。
我们的微控制器以及大多数微控制器一般不会提供很大的电流,因为微控制器内部的所有小导线都非常小且脆弱,流过大量电流很容易损坏微控制器。因此,尽管我们能够进行电压变化测试,但我们并没有给电机提供太多电流。我希望能够使用微控制器改变电机的电压,同时让电机根据需要吸取尽可能多的电流。
为实现这一点,我们可以使用一种叫做电机驱动器的设备。电机驱动器是一种固态开关(solid-state switch),即没有机械运动部件的开关。这种开关允许低电压低电流源控制高电压高电流源的开启和关闭。

无驱动芯片电路,电机直连微控制器

带无驱动芯片电路,电机电源由外部电源提供
接线方式,同样采用L293D驱动芯片:

Enable 1&2接Arduino pin 10
Input 1接Arduino pin 8
Input 2接Arduino pin 9
Output 1接电机正极(motor positive)
Output 2接电机负极(motor negetive)
Power 2接外部电源正极
Power 1接Arduion 5V
一个Ground接Arduion GND,一个Ground接电源负极
代码
// Define the pin connections for the L293D
int IN1 = 8; // Control pin 1
int IN2 = 9; // Control pin 2
int ENABLE1 = 10; // PWM pin for speed control
void setup() {
// Set the motor control pins as outputs
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENABLE1, OUTPUT);
}
void loop() {
// Example: Run the motor forward at full speed for 3 seconds
digitalWrite(IN1, HIGH); // Set IN1 high
digitalWrite(IN2, LOW); // Set IN2 low
analogWrite(ENABLE1, 255); // Set speed to maximum (255 is full PWM)
delay(3000); // Run for 3 seconds
// Stop the motor for 1 second
analogWrite(ENABLE1, 0); // Stop motor by setting speed to 0
delay(1000);
}
让我们来看看一个非常重要的电机特性图,它解释了电机的力(或扭矩)与电机转速之间的关系。我们已经看到,通过改变电机的电压可以改变电机的速度,但这并不是决定电机转速的唯一因素,另一个影响因素是施加在电机上的扭矩大小。我们可以通过使用电机的扭矩—速度曲线来弄清楚扭矩与速度之间的关系。我们可以画出这样一个图,x 轴是电机的速度,y 轴是电机的扭矩。扭矩—速度曲线显示了在恒定电压下,电机的速度和扭矩是如何关联的。因此,在这个图中,我们假设我们没有改变电机的电压,只是给它一个恒定的 6 伏电压,就像我们最近的电机测试中所做的那样。
当我们给电机一个恒定电压时,电机具有一个称为空载速度(free run speed)或无负载速度(no load speed)的特性。这是指在电机轴上没有扭矩施加时,电机旋转的速度。你几乎总能在电机的数据表中找到这个值。

另一个通常在电机数据表中引用的值是称为堵转扭矩(stall torque)的参数。堵转扭矩是将电机完全停止所需的扭矩大小。

在这两个点之间,曲线可能是这样的直线,或者可能像这样有一个弧线,但电机总会有一条连接堵转扭矩和空载速度的特性曲线。

让我给你一个简单的示例,说明如何使用这条曲线来确定电机的能力。假设我们有一个像图片中这样的电机轴,电机轴从我们面前伸出来。假设电机轴上连接了一个滑轮,就像这样,当电机转动时,滑轮也会随之旋转。假设这个滑轮连接到某种质量的物体在这里。那么我们可以问一个问题,这台电机拉起这个重量的速度有多快?

我们可以通过使用扭矩—速度曲线来计算这个速度。首先,我们会计算出拉起这个重量所需的扭矩。这个重量施加的重力等于 mg,而电机需要施加的扭矩等于滑轮的半径乘以重力 rmg。然后我们在图中找到这个扭矩值,并向右延伸直到碰到扭矩—速度曲线。这个点的速度就是拉起这个质量物体的最大速度。请记住,这个速度的单位通常是每分钟转速(RPM)或弧度每秒(radians per second),所以我们还需要反向计算这个线速度。

那么,如果我们移除这个物体并用一个质量更大的物体替换会发生什么?更大的物体需要更大的扭矩,所以我们会重新计算所需的扭矩,并在图中找到该扭矩的对应位置,然后向右延伸找到该扭矩下的速度。因此,在相同电压下,电机仍然能够拉起较重的物体,但速度会更慢。这就是如何根据特定应用来选配电机的方法。如果你知道电机的空载速度和堵转扭矩,你就知道,任何位于这条连接空载速度和堵转扭矩线下的点,电机都能够提供相应的扭矩,但一般来说,位于这条线上方的点电机是无法提供的。

假设你需要这台电机以特定的速度拉起特定重量的物体,你可以从计算拉起重量所需的扭矩开始,然后向右延伸到你希望电机能够拉起重量的速度位置。如果该点落在扭矩—速度曲线的上方,那么你选择的电机将不足以完成任务,你需要一个具有更大堵转扭矩或更高空载速度的电机。如果该点落在扭矩—速度曲线下方,那么你选配的电机足够应对你的应用。

今天我们讨论了直流电机的速度和扭矩,但在某些领域,我们通常更关注电机的位置控制。在下一篇文章中,我们将开始学习如何设置直流电机的位置。