在本文中,我們將學(xué)習如何使用A4988步進(jìn)電機驅動(dòng)模塊來(lái)控制步進(jìn)電機。A4988是控制雙極步進(jìn)電機的驅動(dòng)模塊,因為它非常便宜同時(shí)便于操作,因此在很多Arduino制作項目中A4988得到了廣泛的應用。

因為A4988內置了譯碼器,我們可以可以通過(guò)控制器的2個(gè)引腳來(lái)控制步進(jìn)電機,一個(gè)控制旋轉方向,另一個(gè)控制步數。A4988提供了五種不同的微步控制:全步(full-step),半步(haft-step),四分一步(quarter-step),八分之一步(eight-step)和十六分之一步(sixteenth-step)。此外,它還配備了一個(gè)調節電流輸出、過(guò)熱保護和過(guò)流保護的電位計。A4988的邏輯電壓范圍是:3~5.5V,如果配備較好的散熱條件每相最大電流可達2A,在沒(méi)有配備散熱器的情況下,每相連續電流最好控制在1A范圍內。

A4988驅動(dòng)模塊的引腳定義圖

現在,讓我們看一下A4988的引腳圖,然后將其與步進(jìn)電機和Arduino控制器連接起來(lái)。A4988驅動(dòng)模塊右上側的兩個(gè)引腳(VMOT、GND)是外部供電引腳,目的是能給電機提供足夠的動(dòng)力輸出,供電范圍:8-35V,此處使用一個(gè)47uf的電解電容來(lái)保護驅動(dòng)板免受瞬時(shí)電壓的沖擊;右下側的VDD和GND我們需要將它連接到Arduino控制板的5V電源和GND引腳上;1A和1B引腳連接到步進(jìn)電機的一相,2A和2B引腳連接到步進(jìn)電機的另一相;左下角的STEP和DIR連接至Arduino控制板的P3和P4引腳,這兩個(gè)針腳主要用于控制電機的運動(dòng)。Direction引腳控制轉動(dòng)方向,STEP針腳用于控制電機旋轉的步數控制。
下一個(gè)是SLEEP針腳,低電平使能使模塊處于休眠模式,當電機不工作時(shí),它可以最大程度地降低功耗,默認為高電平。RESET針腳,如果這個(gè)針腳的輸入是低電平,那么所有的微步設置都將被忽略掉。因此上圖將SLEEP和RESET針腳連接起來(lái),目的是將RESET針腳設置為高電平,以便模塊可控。

MS1, MS2 和 MS3針腳用于微步設置,如上圖所示。ENABLE針腳用于打開(kāi)和關(guān)閉場(chǎng)效應管的輸出,低電平打開(kāi),高電平關(guān)閉。
完成本例的費用測算
- Arduino Mega
- A4988驅動(dòng)板
- NEMA17步進(jìn)電機
- 12V2A電源
- 面包板
Arduino使用A4988控制電機代碼
const int stepPin = 3;
const int dirPin = 4;
void setup() {
// Sets the two pins as Outputs
pinMode(stepPin,OUTPUT);
pinMode(dirPin,OUTPUT);
}
void loop() {
digitalWrite(dirPin,HIGH); // Enables the motor to move in a particular direction
// Makes 200 pulses for making one full cycle rotation
for(int x = 0; x < 200; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
}
delay(1000); // One second delay
digitalWrite(dirPin,LOW); //Changes the rotations direction
// Makes 400 pulses for making two full cycle rotation
for(int x = 0; x < 400; x++) {
digitalWrite(stepPin,HIGH);
delayMicroseconds(500);
digitalWrite(stepPin,LOW);
delayMicroseconds(500);
}
delay(1000);
} |