- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 21

Thema: Steuerung eines Stepper-Motors

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2016
    Ort
    Wien
    Beiträge
    5

    Idee Steuerung eines Stepper-Motors

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen,
    Ich bin neu hier, und habe nur geringe Kenntnisse in der Programmierung.

    Endlich im Ruhestand versuche ich jene Projekte nachzuholen, für die mir in den letzten Jahren keine Zeit blieb. (Am Ende meiner Studienzeit (TGM; Wien), gab es gerade einmal IC´s )

    Entschuldigt daher meine - für euch sicher - Trivial-Fragen.

    Auch bin ich mit der Arbeit auf einer Plattform noch nicht so vertraut. Sollte ich Blödsinn verbreiten bitte ich um milde Rügen.

    Ein Traum von mir war immer einen Steppermotor richtig steuern zu können.

    Dazu besitze ich:
    einen ARDUINO UNO
    ein Motor Shield von LinkSprite
    http://linksprite.com/wiki/index.php...e=Motor_Shield
    einen Steppermotor (2 Phasen)
    Demo-Programm: LinkSprite Stepper Motor Control (siehe Anhang)

    Der Test mit o .g. Software war erfolgreich.
    Auch habe ich es geschafft die Drehrichtung über ein Analogeingang (A2) von "außen" du beeinflussen.

    Was ich aber absolut nicht schaffe ist
    - die Geschwindigkeit
    - die Anzahl der Steps
    Von außen z. B. mittels Poti über einen Analogeingang zu bestimmen.

    Für ein paar Zeilen Code wäre ich sehr dankbar!

    Anbei noch das Derzeit in Verwendung stehende Programm:

    #include <Stepper.h>

    const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
    // for your motor

    // initialize the Stepper library on pins 8 through 11:
    Stepper myStepper(stepsPerRevolution, 8,11,12,13);

    void setup() {
    // set the speed at 60 rpm:
    myStepper.setSpeed(60);
    // initialize the serial port:
    Serial.begin(9600);
    pinMode(9,OUTPUT);
    pinMode(10,OUTPUT);
    digitalWrite(9,HIGH);
    digitalWrite(10,HIGH);
    }

    void loop() {
    // step one revolution in one direction:
    Serial.println("clockwise");
    myStepper.step(stepsPerRevolution);
    delay(500);

    step one revolution in the other direction:
    Serial.println("counterclockwise");
    myStepper.step(-stepsPerRevolution);
    delay(500);
    }

    Herzlichen Dank
    Walter

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    hallo Walter,

    Zitat Zitat von WaFi Beitrag anzeigen

    Ein Traum von mir war immer einen Steppermotor richtig steuern zu können.

    Dazu besitze ich:
    einen ARDUINO UNO
    ein Motor Shield von LinkSprite
    http://linksprite.com/wiki/index.php...e=Motor_Shield
    einen Steppermotor (2 Phasen)
    Demo-Programm: LinkSprite Stepper Motor Control (siehe Anhang)
    auch ich bin seit einiger zeit im "unruhestand" und elektronik bzw. digitaltechnik war nicht mein beruf. Auch gibt es hier sicher erfahrenere, als ich es bin...

    - Uno ist schon mal gut
    - welchen steppermotor verwendest Du genau?
    - es geht auch ohne einen motorshield
    - ich würde es mit der library "CustomStepper" versuchen, verwende tue ich diese Stepper

    ich habe hier noch etwas: ab hier geht es um steppermotoren als ersatz für DC-motoren bei meinem roboter
    Geändert von inka (05.03.2016 um 17:26 Uhr)
    gruß inka

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    55
    Beiträge
    2.814
    Momentan hast Du die Drehzahlvorgabe in der Setup Sektion.

    Code:
    // set the speed at 60 rpm:
      myStepper.setSpeed(60);
    Soll die Drehzahl variabel sein, dann muß der Wert abhängig von der Potistellung in der Hauptschleife gesetzt werden.

    Soll der Motor mit einem Poti in beide Richtung steuerbar sein, dann hast Du 3 Fälle die Du unterscheiden mußt.
    Linkslauf, Stop, Rechslauf.
    Damit Stop nicht zu schwierig einzustellen ist, wertet man auf einen etwas größeren Bereich für Stop aus.

    Bsp.
    Poti 0V bis 5V = 0 digit bis 1023 digit.
    Dann nimmt man 0-501 für Linkslauf.
    Und 521-1023 für Rechtslauf.
    502 bis 520 ist dann Stillstand.

    Pseudocode
    ## Schleife
    Abfrage Potieingang und Zuordnung zur Variable potiwert
    IF potiwert < 502 Sprung zu linkslauf
    IF Potiwert > 520 sprung zu rechtslauf
    myStepper.setSpeed(0);
    ##

    ## Subroutine linkslauf
    drehzahl = (potiwert -502)*(-1)
    myStepper.setSpeed(drehzahl);
    myStepper.step(-stepsPerRevolution);
    ##

    ## Subroutine rechtslauf
    drehzahl = potiwert - 520
    myStepper.setSpeed(drehzahl);
    myStepper.step(stepsPerRevolution);
    ##
    Geändert von i_make_it (05.03.2016 um 18:12 Uhr)

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2016
    Ort
    Wien
    Beiträge
    5
    als Stepper-Motor verwende ich für meine "Tests" derzeit einen Mercury Motor SM-42BYG011-25.
    Er benötigt wenig Strom und kann mittels kleinem Steckernetzteil gut betrieben werden.
    Ist für die Tests am Schreibtisch ideal.

    das verwendete Motosshield dachte ich ist sinnvoll wegen
    - dem nötigen Strom und
    - den Schutzdioden
    Preis war gerade einmal € 18.-

    Die o. g. SW mit den wenigen Code-Zeilen läuft ja auch prima.
    Ich würde nur gerne die Zeile:
    const int stepsPerRevolution = 200;
    derart verändern, dass ich eine Variable z. B. auf A2 einlesen und verwende kann.

    - - - Aktualisiert - - -

    Danke inka,
    und noch einen schönen Abend.
    LG
    Walter

    - - - Aktualisiert - - -

    Ein Dank auch an i_make_it!
    Werde das in den nächsten Tagen versuchen.
    LG
    Walter

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    55
    Beiträge
    2.814
    Code:
    const int stepsPerRevolution = 200;
    das würde ich so lassen, denn für einen 1,8° Stepper stimmen 200 Schritte pro Umdrehung.

    Code:
    myStepper.setSpeed(60);
    Hier wird die Drehzahl gesetzt. (in dem Fall auf 60 Umdrehungen pro Minute)

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    Zitat Zitat von WaFi Beitrag anzeigen
    als Stepper-Motor verwende ich für meine "Tests" derzeit einen Mercury Motor SM-42BYG011-25.
    ja, der NEMA-17 ist ein schöner schrittmotor, für den brauchst du wahrscheinlich auch das shield, bei meinen war die steuerelektronik schon dabei, und für vier habe ich gerade 9 Eur gezahlt. Allerdings hätte ich stärkere lieber gehabt, die NEMA 17 waren mir aber zu groß (mechanisch)...

    viel spass noch im forum...
    gruß inka

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    15.02.2016
    Ort
    Wien
    Beiträge
    5
    Danke Kollegen, es hat geklappt!

    weitere Fragen:

    - wann kalkuliert man bei dem AD-Wandler mit 1023 und wann mit 255 ?

    - wo bekommt man die günstigen 4 Stepper Motore + Steuerelektronik ?

    - wo bekommt man Zahnräder, Wellen, Zahnstangen etc.?

    LG
    Walter

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.652
    .. - wann kalkuliert man bei dem AD-Wandler mit 1023 und wann mit 255 ? ..
    Der ADC hat nominell 10 Bit Auflösung, d.h. er gibt Werte aus zwischen 0 und 1023. Das Ergebnis steht dann in zwei Registern, weil eins nur 8 Bit fasst. Deutlich schneller kann er arbeiten (bitte dazu das Datenblatt lesen - vermutlich gibts die Option auch für arduino) und natürlich auch ausgelesen werden, wenn er nur mit 8 Bit arbeiten darf (dann wird der Registerinhalt gleich beim Wandeln "verschoben" - siehe Datenblatt) - und das sind dann 0 .. 255, also 255 Schritte.
    Ciao sagt der JoeamBerg

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    76
    Beiträge
    2.180
    hi Walter,

    glückwunsch...

    wie hast es hinbekommen?


    den Stepper bekommst Du hier, evtl. auch noch billiger...

    Dauert allerdings ein paar wochen...

    bei zahnrädern, wellen usw. würde ich "C" emnpfehlen, ebay, sogar bei Amazon hab ich schon was gesehen...
    gruß inka

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von WaFi Beitrag anzeigen
    - wo bekommt man Zahnräder, Wellen, Zahnstangen etc.?
    Im RN-Wissen gibt eine Auflistung von Bezugsquellen. Unter "Materialien" könntest Du fündig werden.
    http://rn-wissen.de/wiki/index.php?title=Bezugsquellen#Materialien

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. Drehmomentregelung eines DC-Motors
    Von torward im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 23.04.2014, 17:04
  2. Steuerung eines Motors über Bluetooth o.Ä. am PC/Android
    Von BlackCry im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 15
    Letzter Beitrag: 22.01.2012, 09:40
  3. Temperaturabhängige steuerung eines Motors
    Von bastian07 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 31
    Letzter Beitrag: 29.01.2007, 09:17
  4. Antworten: 6
    Letzter Beitrag: 28.08.2006, 15:52
  5. Fragen zur Steuerung des Faulhaber-Motors
    Von wlan im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 2
    Letzter Beitrag: 04.09.2005, 20:38

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad