Seiten

Montag, 16. März 2015

Getting Started: Easydriver V4.4 Schrittmotorkarte

Verwendete Teile:


Die Schrittmotorkarte wird wie im Programmcode beschrieben mit dem Arduino verbunden.
Die Anschlüsse GND und M+ werden mit der externen Spannung (für den Motor) versorgt. Bei dieser Karte ist eine Spannung bis 30V möglich.
Zusätzlich wird die Schrittmotorkarte mit GND vom Arduino verbunden.
Sobald die Schrittmotorkarte über M+ mit einer externen Spannung versorgt wird, wird die Elektronik der Karte über einen Spannungsregler mit 5V versorgt. Diese Spannung steht auch am +5V Pin auf der Karte zur Verfügung. Wird nach dem Programmieren die Spannungsversorgung des Arduinos über USB getrennt, so kann das Arduino über diesen 5V Pin versorgt werden.

Der Schrittmotor hat 2 Wicklungen; WicklungA: rot und grün, WicklungB gelb und blau. Diese werden mit der Schrittmotorkarte -A- und -B- verbunden.

Programmcode:
Dieser Programmcode bewegt den Schrittmotor nach folgendem Ablauf:
  • 1 Umdrehung im Vollschritt
  • Drehrichtungsänderung
  • 1 Umdrehung im Halbschritt
  • Drehrichtungsänderung
  • 1 Umdrehung im Viertelschritt
  • Drehrichtungsänderung
  • 1 Umdrehung im Achtelschritt
  • Drehrichtungsänderung


/* Startübung mit einem Arduino, der Easydriver V4.3 Schrittmotorkarte
 und einem Bipolaren Schrittmotor 1,8 ° mit vier Anschlüssen

www.physicalcomputing.at*/

////////////////////////////////////////////////////
//   Beschaltung von MS1 und MS2                  //
//   MS1 = LOW  und MS2 = LOW  -> Vollschritt     //
//   MS1 = HIGH und MS2 = LOW  -> Halbschritt     //
//   MS1 = LOW  und MS2 = HIGH -> Viertelschritt  //
//   MS1 = HIGH und MS2 = HIGH -> Achtelschritt   //
////////////////////////////////////////////////////


int signal = 2;     // Verbindung von Arduino D2 zu STEP auf Easydriver
int richtung = 3;   // Verbindung von Arduino D3 zu DIR auf Easydriver
int MS1 = 5;        // Verbindung von Arduino D5 zu MS1 auf Easydrive
int MS2 = 6;        // Verbindung von Arduino D6 zu MS2 auf Easydrive
int SLP = 7;        // Verbindung von Arduino D7 zu SLP auf Easydrive


void setup (){              // die Pins werden als Ausgang definiert
  pinMode (signal, OUTPUT);
  pinMode (richtung, OUTPUT);
  pinMode (MS1, OUTPUT);
  pinMode (MS2, OUTPUT);
  pinMode (SLP, OUTPUT);
}


void loop (){

  ////////////////////////////////////////////////////
  //      1 Umdrehung mit Vollschritt            /////
  //    der verwendete Stepper hat 1,8°          /////
  //    360° / 1,8° ergibt 200 Schritte/Umdrehung/////
  ////////////////////////////////////////////////////
 
  digitalWrite (MS1, LOW);  // für Vollschritt
  digitalWrite (MS2, LOW);  // für Vollschritt
  digitalWrite (richtung, LOW); // stellt Drehrichtung ein
  digitalWrite (SLP, HIGH);

  for (int i=1; i <= 200; i++){   // 200 Schritte für eine Umdrehung
    digitalWrite (signal, HIGH);  //Signal für STEP
    delayMicroseconds (200);
    digitalWrite (signal, LOW);
    delayMicroseconds (1000);   // über die Zeit kann die Geschwindigkeit eingestellt werden

  }
  digitalWrite (SLP, LOW);  // minimiert die Stromversorgung,
  //wenn die Schrittmotorkarte nicht verwendet wird
  delay (2000);
  digitalWrite (SLP, HIGH); // aktiviert die Schrittmotorkarte wieder
 
 
 
  /////////////////////////////////////////////////////////
  //      1 Umdrehung mit Halbschritt                 /////
  //    200 Schritte für eine Umdrehung im Vollschritt/////
  //    ergibt 400 Schritte im Halbschritt            /////
  /////////////////////////////////////////////////////////
 
  digitalWrite (MS1, HIGH);  // für Halbschritt
  digitalWrite (MS2, LOW);   // für Halbschritt
  digitalWrite (richtung, HIGH); // Motor dreht in andere Richtung
  digitalWrite (SLP, HIGH);

  for (int i=1; i <= 400; i++){   // 400 Schritte für eine Umdrehung
    digitalWrite (signal, HIGH);
    delayMicroseconds (200);
    digitalWrite (signal, LOW);
    delayMicroseconds (1000);   // über die Zeit kann die Geschwindigkeit eingestellt werden

  }
  digitalWrite (SLP, LOW);  // minimiert die Stromversorgung,
  //wenn die Schrittmotorkarte nicht verwendet wird
  delay (2000);
  digitalWrite (SLP, HIGH); // aktiviert die Schrittmotorkarte wieder
 
 
 
  ///////////////////////////////////////////////////////////
  //      1 Umdrehung mit Viertelschritt                /////
  //    200 Schritte für eine Umdrehung im Vollschritt  /////
  //    ergibt 800 Schritte im Halbschritt             //////
  ///////////////////////////////////////////////////////////
 
  digitalWrite (MS1, LOW);  // für Viertelschritt
  digitalWrite (MS2, HIGH);   // für Viertelschritt
  digitalWrite (richtung, LOW); // Motor dreht in andere Richtung
  digitalWrite (SLP, HIGH);

  for (int i=1; i <= 800; i++){   // 800 Schritte für eine Umdrehung
    digitalWrite (signal, HIGH);
    delayMicroseconds (200);
    digitalWrite (signal, LOW);
    delayMicroseconds (1000);   // über die Zeit kann die Geschwindigkeit eingestellt werden

  }
  digitalWrite (SLP, LOW);  // minimiert die Stromversorgung,
  //wenn die Schrittmotorkarte nicht verwendet wird
  delay (2000);
  digitalWrite (SLP, HIGH); // aktiviert die Schrittmotorkarte wieder
 
 
   
  ///////////////////////////////////////////////////////////
  //      1 Umdrehung mit Achtelschritt                 /////
  //    200 Schritte für eine Umdrehung im Vollschritt  /////
  //    ergibt 1600 Schritte im Achtelschritt          //////
  ///////////////////////////////////////////////////////////
 
  digitalWrite (MS1, HIGH);  // für Achtelschritt
  digitalWrite (MS2, HIGH);   // für Achtelschritt
  digitalWrite (richtung, HIGH); // Motor dreht in andere Richtung
  digitalWrite (SLP, HIGH);

  for (int i=1; i <= 1600; i++){   // 1600 Schritte für eine Umdrehung
    digitalWrite (signal, HIGH);
    delayMicroseconds (200);
    digitalWrite (signal, LOW);
    delayMicroseconds (1000);  // über die Zeit kann die Geschwindigkeit eingestellt werden

  }
  digitalWrite (SLP, LOW);  // minimiert die Stromversorgung,
  //wenn die Schrittmotorkarte nicht verwendet wird
  delay (2000);
  digitalWrite (SLP, HIGH); // aktiviert die Schrittmotorkarte wieder
}

erstellt 16.3.2011

Keine Kommentare:

Kommentar veröffentlichen

Hinweis: Nur ein Mitglied dieses Blogs kann Kommentare posten.