初識Arduino,有什么錯漏的地方請指正.
學(xué)會(huì )使用A4988驅動(dòng)電機對于DIY3D打印機,雕刻機很有幫助。
實(shí)驗目的:Arduino與A4988驅動(dòng)42步進(jìn)電機
材料如下:
Arduino uno *1
A4988 *1
42步進(jìn)電機 *1
面包板 *1
9V外接電源 *1
導線(xiàn) 若干
step 1:接線(xiàn)

關(guān)于接線(xiàn)更詳細的相關(guān)資料:http://fritzing.org/projects/a4988-single-stepper-test/
MS1 , MS2 , MS3 跳線(xiàn)說(shuō)明:(例子里是低電平,懸空或接地線(xiàn),使用全步進(jìn)模式)
分別是全步進(jìn),1/2步進(jìn),1/4步進(jìn),1/8步進(jìn),1/16步進(jìn)模式。
步進(jìn)電機走一步是1.8度,一圈就是200步。例如使用1/16步進(jìn),則需要走3200步才等于一圈。

step 2:測試程序程序
[objc] view plain copy print?
- int x;
-
-
- void setup()
- {
- pinMode(6,OUTPUT);
- pinMode(5,OUTPUT);
- pinMode(4,OUTPUT);
- digitalWrite(6,LOW);
- }
-
-
- void loop()
- {
-
- digitalWrite(4,HIGH);
-
- for(x = 0; x < 200; x++)
- {
- digitalWrite(5,HIGH);
- delayMicroseconds(800);
- digitalWrite(5,LOW);
- delayMicroseconds(800);
- }
- delay(1000);
-
- digitalWrite(4,LOW);
-
- for(x = 0; x < 200; x++)
- {
- digitalWrite(5,HIGH);
- delayMicroseconds(800);
- digitalWrite(5,LOW);
- delayMicroseconds(800);
- }
- delay(1000);
- }
int x;
void setup()
{
pinMode(6,OUTPUT); // Enable
pinMode(5,OUTPUT); // Step
pinMode(4,OUTPUT); // Dir
digitalWrite(6,LOW); // Set Enable low
}
void loop()
{
digitalWrite(4,HIGH); // Set Dir high
for(x = 0; x < 200; x++) // Loop 200 times
{
digitalWrite(5,HIGH); // Output high
delayMicroseconds(800); // Wait 1/2 a ms
digitalWrite(5,LOW); // Output low
delayMicroseconds(800); // Wait 1/2 a ms
}
delay(1000); // pause one second
digitalWrite(4,LOW); // Set Dir low
for(x = 0; x < 200; x++) // Loop 2000 times
{
digitalWrite(5,HIGH); // Output high
delayMicroseconds(800); // Wait 1/2 a ms
digitalWrite(5,LOW); // Output low
delayMicroseconds(800); // Wait 1/2 a ms
}
delay(1000); // pause one second
}
ps后記學(xué)習:
*腳6(-en) 低電平為啟動(dòng)電機(enable),貌似也可以不接,試過(guò)一樣能運行.但如果要控制電機的啟動(dòng)關(guān)閉還是要用上
*腳4(-dir) 用高低電平控制方向.
*腳5(-step) 用高低電平驅動(dòng)電機轉動(dòng).注意中間間隔等待的微秒值,如果太快會(huì )導致電機有聲響不轉動(dòng). |