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
Accelstepper libary und Schrittmotor
17.01.2020, 21:07 (Dieser Beitrag wurde zuletzt bearbeitet: 17.01.2020 22:32 von Lothileinchen.)
Beitrag #1
Accelstepper libary und Schrittmotor
Hallo!!

Code:
#include <AccelStepper.h>

const  int stepPin = 5 ;//für Nema Motor
const  int dirPin = 4 ; //für Nema Motor
const  int enPin = 8 ;  //für Nema Motor
int LEDPIN = 13;
int taster1 = 9;
int taster2 = 10;
int taster3 = 11;
int taster4 = 12;
long int Pos = 0;
long int weg = 2400;
AccelStepper stepper(AccelStepper::DRIVER, stepPin, dirPin);

void setup()
{
  Serial.begin(9600);
  pinMode(LEDPIN, OUTPUT);
  pinMode(taster1, INPUT_PULLUP);
  pinMode(taster2, INPUT_PULLUP);
  pinMode(taster3, INPUT_PULLUP);
  pinMode(taster4, INPUT_PULLUP);
  pinMode (stepPin, OUTPUT);
  pinMode (dirPin,  OUTPUT);
  pinMode (enPin,   OUTPUT);
  digitalWrite (enPin, LOW);

  stepper.setMaxSpeed(4200);
  stepper.setAcceleration(10000);
}
void Taster(int x)//  Taster gedrückt !

{
  while (  ! digitalRead(taster1))// Taster 1 gedrückt ----solange diese  Taste gedrückt wird --- drehen.
  {
    digitalWrite(LEDPIN, HIGH); //Taster gedrückt LEDPIN ist HIGH
    for (int r = 0; r < x; r++)
    {
      stepper.setSpeed(4000);
      stepper.runSpeed();
    }
    digitalWrite(LEDPIN, LOW);
  }

  while ( ! digitalRead(taster2)) // Taster 2 gedrückt ----solange diese  Taste gedrückt wird --- drehen.
  {
    digitalWrite(LEDPIN, HIGH); //Taster gedrückt LEDPIN ist HIGH
    for (int l = 0; l < x; l++)
    {
      stepper.setSpeed(-4000);
      stepper.runSpeed();
    }
    digitalWrite(LEDPIN, LOW);
  }

  while (  ! digitalRead(taster3))// Taster 3 gedrückt ------Position NULL anfahren
  {
    digitalWrite(LEDPIN, HIGH); //Taster gedrückt LEDPIN ist HIGH
    while (stepper.currentPosition() != 0) // Full speed basck to 0
    {
      // stepper.run();
      stepper.runToNewPosition(0);
    }
    digitalWrite(LEDPIN, LOW);
  }

  while (  ! digitalRead(taster4))//Taster 4 gedrückt----automatisch definierte Position und mit definierte Geschwindikeit anfahren
  {
    digitalWrite(LEDPIN, HIGH); //Taster gedrückt LEDPIN ist HIGH

    while (stepper.currentPosition() != weg)
    {
      stepper.moveTo(weg);//setzt Position
      stepper.setSpeed (2000 );//setztempo = steps je sekunde
      stepper.runSpeedToPosition();
    }
    digitalWrite(LEDPIN, LOW);
  }
}
void loop()
{
  Taster(1);
  Pos = stepper.currentPosition ();
  Serial.print("POS=  ");
  Serial.println(Pos);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.01.2020, 21:09
Beitrag #2
RE: Accelstepper libary und Schrittmotor
Stelle Deinen Sketch bitte in Codetags. So ist er auch auf portablen Geräten lesbar.
Wie das geht, steht hier.
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.01.2020, 22:28
Beitrag #3
RE: Accelstepper libary und Schrittmotor
Ich muss gestehen, ich kann deinen Sketch fast nicht lesen.

Durch die "saumäßige" Formatierung finde ich da nicht durch.

Formatiere den Sketch bitte in der IDE mit "Strg + T" und setze den erneut rein. Du kannst den schlecht formatierten Sketch überschreiben. Dann sehe ich mir den gern nochmal an.

Was ich jetzt schon erkennen kann, ich kann nur ein Drücken der Taste 1 in der Loop erkennen. Wo werden die anderen Tasten gedrückt ?

Aber evtl. wird es mit einer sauberen Formatierung deutlicher.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.01.2020, 22:49
Beitrag #4
RE: Accelstepper libary und Schrittmotor
(17.01.2020 22:28)hotsystems schrieb:  Ich muss gestehen, ich kann deinen Sketch fast nicht lesen.

Durch die "saumäßige" Formatierung finde ich da nicht durch.

Formatiere den Sketch bitte in der IDE mit "Strg + T" und setze den erneut rein. Du kannst den schlecht formatierten Sketch überschreiben. Dann sehe ich mir den gern nochmal an.

Was ich jetzt schon erkennen kann, ich kann nur ein Drücken der Taste 1 in der Loop erkennen. Wo werden die anderen Tasten gedrückt ?

Aber evtl. wird es mit einer sauberen Formatierung deutlicher.

Taster(1)--Funktionsaufruf mit Parameter Übergabe-- siehe void Taster(int x)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2020, 09:54 (Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2020 09:55 von MicroBahner.)
Beitrag #5
RE: Accelstepper libary und Schrittmotor
Kannst Du mal erklären, was Du uns mit diesem Post sagen (oder fragen?) willst? Und was der übergebene Parameter bewirken soll?

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2020, 16:34
Beitrag #6
RE: Accelstepper libary und Schrittmotor
(18.01.2020 09:54)MicroBahner schrieb:  Kannst Du mal erklären, was Du uns mit diesem Post sagen (oder fragen?) willst? Und was der übergebene Parameter bewirken soll?


Upss/Sorry ich habe mein Anliegen/Problem versehendlich (nach dem Editieren )gelöscht.

Taster 1:
Motor dreht im Uhrzeigersinn. --- Okay ----
Taster 2:
Motor dreht gegen Uhrzeigersinn. ---Okay----
Taster 3:
Motor fährt/dreht zur Ausgangsposition—NULL—. ---Okay----
Taster 4:
Motor fährt mit definierter Geschwindigkeit die definierte Position an. ----Okay----
“““ABER> ABER ““““““
Wenn ich nach Taster 4-> Taster 3 drücke, Motor dreht etwa eine halbe Umdrehung entgegen der NULL-Position und fährt dann auf Null---Position.
Taste 4 dann Taste 1 oder 2 dann Taste 3 das gleiche Problem.
Wie kann ich das verhindern bzw. was mache ich falsch?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2020, 17:07
Beitrag #7
RE: Accelstepper libary und Schrittmotor
Mein Tipp:
Mache deinen Sketch übersichtlicher, damit auch wir erkennen können, was passiert, wenn du die jeweilige Taste drückst.
So steigt da kein außenstehender durch.

Ich habe es mehrfach versucht.....klappt nicht.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.01.2020, 19:38
Beitrag #8
RE: Accelstepper libary und Schrittmotor
(18.01.2020 17:07)hotsystems schrieb:  Mein Tipp:
Mache deinen Sketch übersichtlicher, damit auch wir erkennen können, was passiert, wenn du die jeweilige Taste drückst.
So steigt da kein außenstehender durch.

Ich habe es mehrfach versucht.....klappt nicht.

Hallo Dieter! Danke für deine Bemühungen!
Ich hatte den Sketch in der IDE mit "Strg + T neu formatiert und den schlecht formatierten mit Codetags überschreiben.
Auf meinen Schlepptop ist alles gut lesbar.
Was soll das Programm machen.
Taster 1:
Motor dreht im Uhrzeigersinn. --- Okay ----
Taster 2:
Motor dreht gegen Uhrzeigersinn. ---Okay----
Taster 3:
Motor fährt/dreht zur Ausgangsposition—NULL—. ---Okay---- mit Beschleunigung und abbremsen
Taster 4:
Motor fährt mit definierter Geschwindigkeit die definierte Position an. ----Okay----
“““ABER> ABER ““““““
Wenn ich nach Taster 4-> Taster 3 drücke, Motor dreht etwa eine halbe Umdrehung entgegen der NULL-Position und fährt dann auf Null---Position.
Taste 4 dann Taste 1 oder 2 dann Taste 3 das gleiche Problem.
==================================
Ich habe nun den Code in Taster 3 geändert.
Es funktioniert jetzt wie gewollt aber leider ohne Beschleunigung und Abbremsverhalten.
Code:
while (  ! digitalRead(taster3))// Taster 3 gedrückt ------Position NULL anfahren
  {
    digitalWrite(LEDPIN, HIGH); //Taster gedrückt LEDPIN ist HIGH
    while (stepper.currentPosition() != 0)
    {
       stepper.moveTo(0);//setzt Position
      stepper.setSpeed (4000 );//setztempo = steps je sekunde
      stepper.runSpeedToPosition();
    }
    digitalWrite(LEDPIN, LOW);
  }
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  sleep Libary huber5093 4 513 15.07.2020 20:11
Letzter Beitrag: Tommy56
  Wegbegrenzung für Schrittmotor Scouter 62 7.940 10.02.2019 13:48
Letzter Beitrag: Scouter
  Projekt Portionierer mit Schrittmotor, Bluetooth hilfe Flieger 3 1.623 09.08.2018 13:02
Letzter Beitrag: Hilgi
  Bewegung zweier Motoren mit unterschiedlicher Geschwindigkeit mit AccelStepper Yoink 2 1.633 15.07.2018 06:40
Letzter Beitrag: MicroBahner
  accelstepper und enable Grissu112 4 2.386 21.04.2018 16:36
Letzter Beitrag: Grissu112
  Endschalter für Schrittmotor clemens5555 10 5.227 18.04.2018 14:37
Letzter Beitrag: Tommy56
  Schrittmotor mit Puls/Richtung Steuern Günni 6 3.944 19.01.2018 10:30
Letzter Beitrag: Tommy56
  NodeMCU 12E - Libary für Arduino für den Node kompatibel machen ? Stargazer 4 2.082 04.11.2017 17:36
Letzter Beitrag: Stargazer
  Schrittmotor Geschwindigkeit mit Wägezelle + HX711 Modul steuern Schrittmotor 10 5.725 30.08.2017 23:45
Letzter Beitrag: hotsystems
  Schrittmotor mit l298n Sequenz huber5093 10 4.959 26.04.2017 15:06
Letzter Beitrag: huber5093

Gehe zu:


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