我們這個實驗是使用easy driver來驅動步進馬達,easy driver需要外接電源,它可以直接與步進馬達的4條線圈引線(A線圈和B線圈)連線,並且利用輸入時脈來精確的控制步進馬達的轉動。
l  基本實驗
圖片來源: www.elecrow.com
接成電路:
1. STEP 接到Arduino的PIN 9 
2. DIR 接到Arduino的PIN 8 (控制旋轉方向)
| 
void
  setup() {                 
  pinMode(8, OUTPUT);      
  pinMode(9, OUTPUT); 
  digitalWrite(8, LOW); 
  digitalWrite(9, LOW); 
} 
void
  loop() { 
  digitalWrite(9, HIGH); 
  delay(3);           
  digitalWrite(9, LOW);  
  delay(3);           
} | 
l  利用開關控制正反轉
圖片摘自 http://www.schmalzhaus.com/EasyDriver/Examples/EasyDriverExamples.html
1. 開關被按下和放開時,步進馬達的旋轉方向相反。
| 
void setup() {                 
 
  pinMode(8, OUTPUT);      
 
  pinMode(9, OUTPUT); 
 
  pinMode(3,INPUT); 
 
  digitalWrite(9, LOW); 
} 
void loop() { 
 if
  (digitalRead(3)==LOW) 
  {
  digitalWrite(8, HIGH);} 
 else 
  {
  digitalWrite(8, LOW);} 
 
  digitalWrite(9, HIGH); 
 
  delay(3);           
 
  digitalWrite(9, LOW);  
 
  delay(3);        
  } | 
l  同時控制兩個步進馬達
| 
void setup() {                
 
  pinMode(8, OUTPUT);     
 
  pinMode(9, OUTPUT); 
 
  pinMode(6, OUTPUT);     
 
  pinMode(7, OUTPUT); 
} 
void loop()  
{ 
 
  digitalWrite(8, HIGH); 
 
  digitalWrite(6, HIGH); 
 
  for (int i=0;i<1600;i++) 
  { 
   
  digitalWrite(9, HIGH); 
   
  digitalWrite(7, HIGH);      
   
  delayMicroseconds(2000); 
   
  digitalWrite(9, LOW); 
   
  digitalWrite(7, LOW);     
   
  delayMicroseconds(2000);  
  } 
 
  digitalWrite(8, LOW); 
 
  digitalWrite(6, LOW); 
 
  for (int i=0;i<1600;i++) 
  { 
   
  digitalWrite(9, HIGH); 
   
  digitalWrite(7, HIGH);      
   
  delayMicroseconds(2000); 
   
  digitalWrite(9, LOW); 
   
  digitalWrite(7, LOW);     
   
  delayMicroseconds(2000);  
 
  }       
} | 







 








 
