在本文中,我們將學習如何使用A4988步進電機驅動模塊來控制步進電機。A4988是控制雙極步進電機的驅動模塊,因為它非常便宜同時便于操作,因此在很多Arduino制作項目中A4988得到了廣泛的應用。

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

A4988驅動模塊的引腳定義圖

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

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