步驟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文章
3097瀏覽量
147357 -
L298N
+關注
關注
21文章
224瀏覽量
78638
發布評論請先 登錄
相關推薦
評論