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

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

A4988驅(qū)動模塊的引腳定義圖

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

MS1, MS2 和 MS3針腳用于微步設(shè)置,如上圖所示。ENABLE針腳用于打開和關(guān)閉場效應(yīng)管的輸出,低電平打開,高電平關(guān)閉。
完成本例的費用測算
- Arduino Mega
- A4988驅(qū)動板
- 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);
} |