INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Stepper 28BYJ-48 an UNO
29.10.2015, 11:41 (Dieser Beitrag wurde zuletzt bearbeitet: 29.10.2015 12:33 von Symphonie.)
Beitrag #1
Stepper 28BYJ-48 an UNO
Hallo zusammen,

ich benötige mal eure Hilfe!Big Grin

Ich habe schon das Internet rauf und ruter gesucht aber irgendwie nicht das gefunden was ich suche:

Der am UNO (3,4,5,6) angeschlossene 28BYJ-48 (ULN2003 zwischengeschaltet) soll einfach NUR unendlich laufen (Richtung im Moment egal!) - den Rest bekomme ich dann schon hin! (mit 3 Tastern vor, zurück und Stopp)

Sollte mit AccelStepper.h funktionieren! Hatte ich vergessen und jetzt nachgetragen!

Aber für das "unendliche Laufen" stehe ich auf dem Schlauch!

Vielen Dank!

P.S. Mit den verfügbaren Demoprogrammen funktioniert alles!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.10.2015, 17:18
Beitrag #2
RE: Stepper 28BYJ-48 an UNO
Schleife ist kein Problem - mir fehlt der Befehl für den 28BYJ-48 - damit der jeweils einen Step macht!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.10.2015, 18:08
Beitrag #3
RE: Stepper 28BYJ-48 an UNO
...aber wenn es mit dem Demoprogramm funktioniert, wo ist dann das Problem?

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.10.2015, 19:08
Beitrag #4
RE: Stepper 28BYJ-48 an UNO
Dies steht in der loop:
void loop()
{
//Change direction when the stepper reaches the target position
if (stepper1.distanceToGo() == 0)
{
stepper1.moveTo(-stepper1.currentPosition());
}
stepper1.run();
}//--(end loop )---

Und da werden nur bestimmte Positionen angefahren - aber eben nicht unendlich!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.10.2015, 19:19
Beitrag #5
RE: Stepper 28BYJ-48 an UNO
Da nehmen wir mal Google und geben AccelStepper.h ein. Wie schön, github...
Code:
class AccelStepper
{
public:
    /// Constructor. You can have multiple simultaneous steppers, all moving
    /// at different speeds and accelerations, provided you call their run()
    /// functions at frequent enough intervals. Current Position is set to 0, target
    /// position is set to 0. MaxSpeed and Acceleration default to 1.0.
    /// The motor pins will be initialised to OUTPUT mode during the
    /// constructor by a call to enableOutputs().
    /// \param[in] pins Number of pins to interface to. 1, 2 or 4 are
    /// supported. 1 means a stepper driver (with Step and Direction pins)
    /// 2 means a 2 wire stepper. 4 means a 4 wire stepper.
    /// Defaults to 4 pins.
    /// \param[in] pin1 Arduino digital pin number for motor pin 1. Defaults
    /// to pin 2. For a driver (pins==1), this is the Step input to the driver. Low to high transition means to step)
    /// \param[in] pin2 Arduino digital pin number for motor pin 2. Defaults
    /// to pin 3. For a driver (pins==1), this is the Direction input the driver. High means forward.
    /// \param[in] pin3 Arduino digital pin number for motor pin 3. Defaults
    /// to pin 4.
    /// \param[in] pin4 Arduino digital pin number for motor pin 4. Defaults
    /// to pin 5.
    AccelStepper(uint8_t pins = 4, uint8_t pin1 = 2, uint8_t pin2 = 3, uint8_t pin3 = 4, uint8_t pin4 = 5);

    /// Constructor. You can have multiple simultaneous steppers, all moving
    /// at different speeds and accelerations, provided you call their run()
    /// functions at frequent enough intervals. Current Position is set to 0, target
    /// position is set to 0. MaxSpeed and Acceleration default to 1.0.
    /// Any motor initialization should happen before hand, no pins are used or initialized.
    /// \param[in] forward void-returning procedure that will make a forward step
    /// \param[in] backward void-returning procedure that will make a backward step
    AccelStepper(void (*forward)(), void (*backward)());
    
    /// Set the target position. The run() function will try to move the motor
    /// from the current position to the target position set by the most
    /// recent call to this function.
    /// \param[in] absolute The desired absolute position. Negative is
    /// anticlockwise from the 0 position.
    void    moveTo(long absolute);

    /// Set the target position relative to the current position
    /// \param[in] relative The desired position relative to the current position. Negative is
    /// anticlockwise from the current position.
    void    move(long relative);

    /// Poll the motor and step it if a step is due, implementing
    /// accelerations and decelerations to achive the ratget position. You must call this as
    /// fequently as possible, but at least once per minimum step interval,
    /// preferably in your main loop.
    /// \return true if the motor is at the target position.
    boolean run();

    /// Poll the motor and step it if a step is due, implmenting a constant
    /// speed as set by the most recent call to setSpeed().
    /// \return true if the motor was stepped.
    boolean runSpeed();

    /// Sets the maximum permitted speed. the run() function will accelerate
    /// up to the speed set by this function.
    /// \param[in] speed The desired maximum speed in steps per second. Must
    /// be > 0. Speeds of more than 1000 steps per second are unreliable.
    void    setMaxSpeed(float speed);

    /// Sets the acceleration and deceleration parameter.
    /// \param[in] acceleration The desired acceleration in steps per second
    /// per second. Must be > 0.
    void    setAcceleration(float acceleration);

    /// Sets the desired constant speed for use with runSpeed().
    /// \param[in] speed The desired constant speed in steps per
    /// second. Positive is clockwise. Speeds of more than 1000 steps per
    /// second are unreliable. Very slow speeds may be set (eg 0.00027777 for
    /// once per hour, approximately. Speed accuracy depends on the Arduino
    /// crystal. Jitter depends on how frequently you call the runSpeed() function.
    void    setSpeed(float speed);

    /// The most recently set speed
    /// \return the most recent speed in steps per second
    float   speed();

    /// The distance from the current position to the target position.
    /// \return the distance from the current position to the target position
    /// in steps. Positive is clockwise from the current position.
    long    distanceToGo();

    /// The most recently set target position.
    /// \return the target position
    /// in steps. Positive is clockwise from the 0 position.
    long    targetPosition();


    /// The currently motor position.
    /// \return the current motor position
    /// in steps. Positive is clockwise from the 0 position.
    long    currentPosition();  

    /// Resets the current position of the motor, so that wherever the mottor
    /// happens to be right now is considered to be the new position. Useful
    /// for setting a zero position on a stepper after an initial hardware
    /// positioning move.
    /// \param[in] position The position in steps of wherever the motor
    /// happens to be right now.
    void    setCurrentPosition(long position);  
    
    /// Moves the motor to the target position and blocks until it is at
    /// position. Dont use this in event loops, since it blocks.
    void    runToPosition();

    /// Runs at the currently selected speed until the target position is reached
    /// Does not implement accelerations.
    boolean runSpeedToPosition();

    /// Moves the motor to the new target position and blocks until it is at
    /// position. Dont use this in event loops, since it blocks.
    /// \param[in] position The new target position.
    void    runToNewPosition(long position);

    /// Disable motor pin outputs by setting them all LOW
    /// Depending on the design of your electronics this may turn off
    /// the power to the motor coils, saving power.
    /// This is useful to support Arduino low power modes: disable the outputs
    /// during sleep and then reenable with enableOutputs() before stepping
    /// again.
    void    disableOutputs();

    /// Enable motor pin outputs by setting the motor pins to OUTPUT
    /// mode. Called automatically by the constructor.
    void    enableOutputs();
Wie wär's mit der Methode "move"?
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.11.2015, 09:07 (Dieser Beitrag wurde zuletzt bearbeitet: 01.11.2015 09:08 von Symphonie.)
Beitrag #6
RE: Stepper 28BYJ-48 an UNO
Hallo Thorsten - ich habe es mit "move" probiert. Was mich daran gestört hat: Ich muß mit einer Variable hochzählen und diese irgendwann zurücksezten - und da rückelt der Stepper dann!

Aber ich habe eine Lösung gefunden:

/*
Arduino UNO
Arduino Version 1.0.6
AccelSteller.h eingebunden
Stepper: 28BYJ-48 mit LP ULN2003 - 5VDC
*/

#include <AccelStepper.h>

// Definitionen-------------------------------------------------------------------------

#define HALFSTEP 8
#define FULLSTEP 4

#define motorPin1 3 // IN1 on ULN2003 ==> Blue on 28BYJ-48
#define motorPin2 4 // IN2 on ULN2004 ==> Pink on 28BYJ-48
#define motorPin3 5 // IN3 on ULN2003 ==> Yellow on 28BYJ-48
#define motorPin4 6 // IN4 on ULN2003 ==> Orange on 28BYJ-48

#define LEFT_PIN A5
#define STOP_PIN A4
#define RIGHT_PIN A3

// Variablen ---------------------------------------------------------------------------

// NOTE: The sequence 1-3-2-4 is required for proper sequencing of 28BYJ-48
AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4); // Halb so schnell als FULLSTEP
// AccelStepper stepper1(FULLSTEP, motorPin1, motorPin3, motorPin2, motorPin4); // Doppelt so schnell als HALFSTEP

// Setup --------------------------------------------------------------------------------------

void setup()
{
stepper1.setMaxSpeed(500.0);
stepper1.setSpeed(500); //500 ist das Maximum!!!

// Set up the three button inputs, with pullups
pinMode(LEFT_PIN, INPUT_PULLUP);
pinMode(STOP_PIN, INPUT_PULLUP);
pinMode(RIGHT_PIN, INPUT_PULLUP);

// Motor steht nach dem Einschalten!
stepper1.setSpeed(0);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
}

// Hauptprogramm --------------------------------------------------------------------------------------

void loop()
{
// If a switch is pushed down (low), set the sign value appropriately
if (digitalRead(LEFT_PIN) == 0)
{
stepper1.setSpeed(500);
delay (2500); //Verzögerung um Draht in die Hand zu nehmen
}
if (digitalRead(RIGHT_PIN) == 0)
{
stepper1.setSpeed(-500);
}
if (digitalRead(STOP_PIN) == 0)
{
// Motor AUS
stepper1.setSpeed(0);
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
digitalWrite(motorPin3, LOW);
digitalWrite(motorPin4, LOW);
}
stepper1.runSpeed();
}
// ENDE

Vielen Dank für die Hilfe!

P.S. wenn ich noch gefunden hätte, wie ich den Quelltext nicht in die Nachricht eingeben - ich hätte es gemacht!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Bipolaren Stepper steuern DL8NAD 4 719 03.12.2015 22:38
Letzter Beitrag: Scherheinz
  Accel Stepper Library für Schrittmotoren Problem Rampe fahren Schrittmotor 0 983 13.10.2015 21:03
Letzter Beitrag: Schrittmotor
  Anfänger und Stepper Cubiator 3 1.353 20.09.2015 17:52
Letzter Beitrag: Cubiator
  Stepper mit Feuchtesensor Warmbronner 9 1.417 02.08.2015 11:26
Letzter Beitrag: Scherheinz
  Stepper mit Arduino und Poti Hannes1984 3 958 01.08.2015 16:34
Letzter Beitrag: Scherheinz
  2 Stepper parallel mit easydrivern Endlagen und Mittelstellung murdok1980 4 1.078 18.06.2015 21:08
Letzter Beitrag: murdok1980
  Stepper und NeoPixel gleichzeitig paq 3 1.066 25.05.2015 10:33
Letzter Beitrag: rkuehle
  Arduino DUE mit 4 Stepper und 4 Poti Jok3r89 0 1.292 31.01.2014 21:45
Letzter Beitrag: Jok3r89
  Midi Bibliothek bremst Stepper aus? Brauche Programmiertipp arduzo 3 2.465 28.08.2013 11:07
Letzter Beitrag: Stefan

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste