📅  最后修改于: 2020-12-27 10:04:56             🧑  作者: Mango
步进电机的运行不需要任何反馈。由于其设计,可以进行高精度控制。
安装在步进电机轴上的一系列磁铁由电磁线圈控制。这些线圈按顺序带负电和正电,这使轴以很小的步长向前和向后移动。
我们还可以在旋转过程中的任何步骤保持电机的位置。它具有简单,准确的开环系统。
步进器分为以下两种类型:
每种类型都有不同的电路,但是编码是相似的。
单极
单极步进电机由一个绕组组成,每个绕组的中心抽头运行。电机每相有三根引线。对于常规的两相步进电机,每相有六根引线。
当两相在内部连接时,单极步进电机有五根引线。
双极
双极步进电机每相包含一个绕组。电机每相有两根引线。
双极步进电机没有任何中心带连接。当我们普遍需要低速高扭矩时,可使用此类设备。
步进电机可以控制转子的角位置,而无需闭合反馈回路。
例如,
考虑具有六个定子齿和一个转子的电动机。如下图所示:
具有六个定子齿的步进电机可以由三个不同的直流电源触发。步进电机的转子由一叠钢叠片组成。与四个转子相比,它具有不同的齿。
这样做的目的是可以使一对转子齿一次与定子轻松对齐。
如果我们触发或激励线圈A和B,转子将旋转。上图表示步长为30度。我们将给线圈B和C通电。在那之后,线圈A将再次通电。这意味着转子移动到磁阻最小的位置。
线圈A通电时转子的位置如下所示:
线圈B通电时转子的位置(移动30度)如下所示:
当两个线圈都励磁时,转子的位置(中间)如下所示:
两个线圈的通电将转子的精度从30度更改为15度。
普通的步进电动机类型是混合电动机类型。
在该项目中,我们将使用混合动力类型。看起来如下图所示:
所需的组件在下面列出:
我们将使用模拟器来显示连接,以便使连接更清晰,更精确。
我们可以使用硬件设备进行相同的连接。
考虑下面的代码:
#include //library declared for the operation of stepper motor
const int stepsPERrevolution = 200; // We can change it according to the required steps per revolution
// for our motor
// the initialization of pins 8 to 11 of stepper library
Stepper myStepper(stepsPERrevolution, 8, 9, 10, 11);
int CountofSTEP = 0; // number of steps the motor has taken
void setup()
{
Serial.begin(9600);
}
void loop()
{
// read the sensor value:
int ReadingINSensor = analogRead(A1);
// we can map it to a range from 0 to 100:
int SpeedOFmotor = map(ReadingINSensor, 0, 1023, 0, 100);
// to set the speed of the motor
if (SpeedOFmotor > 0)
{
myStepper.setSpeed(SpeedOFmotor);
// step 1/100 of a revolution
myStepper.step(stepsPERrevolution/ 100);
}
}
下面列出了建立上述连接的步骤: