步骤1:物料清单
一个5V Bi -极性步进电机。您可以在未使用的旧软盘驱动器中找到一个。
A Keyes L298N电动机驱动器。或任何其他兼容或类似的L298N模块驱动程序。
Arduino Uno R3或兼容版本。在这里,我使用Sparkfun RedBoard。
一些跳线。
万用表。
步骤2:Stepper:工作原理
四线制步进电机的内部示意图如上图一所示。尽管第二张图片向我们展示了步进电机的内部工作原理,以使其顺时针或逆时针运动。我们要做的就是以正确的顺序给线圈通电。
在上面的运动图中:
(在浏览器中最佳查看)
《表边框=“ 1” cellpadding =“ 3”》
顺时针
学位YX〜Y〜X
2250011
3150 《第》 1 10
451100
1351001
《表边框=“ 1” cellpadding =“ 3”》 逆时针 度 Y X 〜Y 〜X 225 0 0 1 1 135 1 0 0 1 45 1 1 0 0 《第》 315 0 1 1 0
我们如何找出成对的导线(X和〜X; Y和〜Y)?因为我们要对线圈进行源或沉,以产生所需的磁场来移动电动机。使用万用表并将其设置为欧姆表,我们正在测量电缆之间的电阻。
当我测量引脚1和引脚3时,读数为12.6欧姆。当我测量引脚2和引脚4时也是如此。在连接引脚时会有一个电阻。我们还可以将万用表设置为“连续性检查”。
当我测量引脚1时引脚2在左侧显示“ 1”,表示“超出范围”。当我测量引脚2和引脚3时,也会发生同样的事情。这意味着它们没有连接。
您可以尝试访问此页面,以获取有关步进电机操作原理的更多详细信息。它具有一些GIF动画以及完整的步进度和引脚状态表,以使您更好地理解。
步骤3:接线
从Keyes L298N模块到Arduino Uno的电线:
(在浏览器中最佳浏览)
颜色键L298NArduino Uno
橙色ENAPin 7
黄色IN1Pin〜6
绿色IN2Pin〜5
蓝色IN3Pin〜10
PurpleIN4Pin〜9
灰色ENBPin 8
黑色GNDGND
白色+ 5VVin
步进销1 和销3 到Keyes L298N Motor A 。
将步进 pin 2 和 pin 4 连接到Keyes L298N Motor B 。
电池+ 至Keyes L298N VMS 。
电池-至Keyes L298N GND 。
第4步:Arduino草图
/*
* Driving a 5V stepper motor using Keyes L298N Dual Motor Driver;
* Chienline @2015;
*/
const int ENA = 7;
const int IN1 = 6;
const int IN2 = 5;
const int ENB = 8;
const int IN4 = 9;
const int IN3 = 10;
const int ledPin = 13;
void setup()
{
pinMode(ENA,OUTPUT);
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(ENB,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(ledPin,OUTPUT);
digitalWrite(ledPin, LOW);
//delay is used to control the speed, the lower the faster.
//reverse(step,delay);
reverse(80,20);
//forward(step,delay);
forward(80,20);
}
void loop()
{
}
void reverse(int i, int j) {
// set both motors ON
digitalWrite(ENA, HIGH);
digitalWrite(ENB, HIGH);
while (1) {
digitalWrite(IN1, 0);
digitalWrite(IN2, 1);
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
delay(j);
i--;
if (i 《 1) break;
digitalWrite(IN1, 0);
digitalWrite(IN2, 1);
digitalWrite(IN3, 1);
digitalWrite(IN4, 0);
delay(j);
i--;
if (i 《 1) break;
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
digitalWrite(IN3, 1);
digitalWrite(IN4, 0);
delay(j);
i--;
if (i 《 1) break;
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
delay(j);
i--;
if (i 《 1) break;
}
// set both motors OFF
digitalWrite(ENA, LOW);
digitalWrite(ENB, LOW);
} // end reverse()
void forward(int i, int j) {
// Set both motors ON
digitalWrite(ENA, HIGH);
digitalWrite(ENB, HIGH);
while (1) {
digitalWrite(IN1, 0);
digitalWrite(IN2, 1);
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
delay(j);
i--;
if (i 《 1) break;
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
delay(j);
i--;
if (i 《 1) break;
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
digitalWrite(IN3, 1);
digitalWrite(IN4, 0);
delay(j);
i--;
if (i 《 1) break;
digitalWrite(IN1, 0);
digitalWrite(IN2, 1);
digitalWrite(IN3, 1);
digitalWrite(IN4, 0);
delay(j);
i--;
if (i 《 1) break;
}
// set both motors OFF
digitalWrite(ENA, LOW);
digitalWrite(ENB, LOW);
} // end forward()
责任编辑:wv
-
步进电机
+关注
关注
150文章
3095浏览量
147329 -
L298N
+关注
关注
21文章
224浏览量
78622
发布评论请先 登录
相关推荐
评论