Adafruit Motor Shield V1

Adafruit Ethernet, Motor, Proto, Wave, Datalogger, GPS Shields - etc!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
User avatar
jede029
 
Posts: 1
Joined: Wed Apr 27, 2016 2:47 pm

Adafruit Motor Shield V1

Post by jede029 »

Hello experts,
as I am a beginner in this topic, I' ve got a question.
How can I change the code in this way that I can use
Adafruit Motor Shield V1 with micro step?

thank you

Code: Select all

#include <Stepper.h>

    // Tragen Sie hier die Zahl der Schritte Ihres Motors ein

#define STEPS 200

    // Instanz der stepper-Klasse erzeugen. Wir geben die
    // Zahl der Motorschritte an und die Pins, mit denen
    // er verbunden ist.
   
Stepper stepper(STEPS, 2, 3, 4, 5);
int steps = 0;
const byte pinEndStop=6;

void setup(){
   pinMode (pinEndStop, INPUT_PULLUP); // Endschalter sollte beim Anfahren öffnen, normal = GND
    // Geschwindigkeit des Motors auf 30 U/min setzen
   
stepper.setSpeed(30); // Geschwindigkeit des Motors auf Wert U/min setzen
Serial.begin(9600);

}

void loop()
{
if ( Serial.available()) {
char ch = Serial.read();
if(isDigit(ch)){ // Ist ch eine Ziffer?
steps = steps * 10 + ch - '0'; // Ja, Wert akkumulieren
}
else if(ch == '+'){
stepper.step(steps);
steps = 0;
}
else if(ch == '-'){
stepper.step(steps * -1);
steps = 0;
}
// s für Geschwindigkeit
else if(ch == 's'){
stepper.setSpeed(steps);
Serial.print("Setze Geschwindigkeit auf ");
Serial.println(steps);
steps = 0;
}
 else if(ch == 'x'){
     if (sucheEndschalter() == false) Serial.println("Kein Endschalter gefunden");
     if (sucheEndschalter() == true) Serial.println("Referenzfahrt abgeschlossen");
     while (Serial.read() != -1 ) {} // zwischenzeitlichen Eingabepuffer leeren.
     steps = 0;
 }
}
}
bool sucheEndschalter() {
// Achtung blockierend, bis Endschalter gefunden ( HIGH )
//
   int max = 1000;  // ... Schritte bis Endschaltersuche aufgegeben wird
   while ( digitalRead(pinEndStop) != HIGH ) {
      stepper.step(1);
      delay(10);
      if ( --max < 0 ) return false; // Fehler - Abbruch
   }
   return true;
}

User avatar
adafruit_support_bill
 
Posts: 88093
Joined: Sat Feb 07, 2009 10:11 am

Re: Adafruit Motor Shield V1

Post by adafruit_support_bill »

The Adafruit V1 motor shield can do microstepping. But it does not use the Stepper library as you have in the code. It requires the AFMotor library.

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino Shields from Adafruit”