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
Anfänger und Stepper
30.08.2015, 10:38
Beitrag #1
Anfänger und Stepper
Hallo zusammen,

ich lese zwar schon einige Zeit mit hatte mich programiertechnisch noch nicht wirklich ausgetobt.

Nun spiele ich eine wenig mit einem Schrittmotor an einem Mega2560, der Schrittmotor ist über einen ULN2003 am Arduino angeschlossen und läuft auch.

Zur Übung habe ich vor im seriellen Monitor die Schritte einzugeben die der Stepper (links oder rechts) drehen soll, nun hänge ich aber an einem Problem bei dem ich nicht weiter komme.

Mittlerweile meine ich verstanden zu haben das Serial.read() nur einzelne Bytes ausliest und nicht eine Variable(Zahl/Text) übernehmen kann.

1.Ist das so richtig?

2.Wie löse ich das Problem denn anders?

3.Ist read.String() mein Lösungsansatz?

Zur Verdeutlichung mal mein Code, bitte seht mir den Aufbau nach!Blush
[/code]
Zitat:#define ledPin 13            //Pindefinition für LED
#include <Stepper.h> //Laden der Stepperlib

int SPMU = 32;
Stepper myStepper(SPMU, 2,3,4,5); //Stepperpins zum ULN2003

int Schritte; //Vaiable für Schritte
int Drehwinkel; //Später Drehwinkel aus Schritten errechnet

void setup() {
    Serial.begin(9600); //Serielle Schnittstelle aktivieren
    pinMode(ledPin, OUTPUT); //LED-Pin auf Augang schalten
    myStepper.setSpeed(500); //Einstellung der Steppergeschwinigkeit(Steuer)
}
void loop() {
    if (Serial.available()) {
    Serial.println("Schritte eingeben 1-2048");
    Schritte = Serial.read();
    Serial.println(Schritte);
    myStepper.step(Schritte);
     }
}

Danke Cubiator
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.08.2015, 12:58 (Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2015 14:56 von rkuehle.)
Beitrag #2
RE: Anfänger und Stepper
Hallo Cubiator,
um es kurz zu machen:
1. Ja
2. Siehe Code
3. Im Prinzip schon. Allerdings hättest du einen String als Ergebnis, der dann wieder umgewandelt werden müsste.
Code:
// Eingabe von Integer <=65535
// Wichtig im SerialMonitor Neue Zeile / NewLine aktivieren
void setup() {
  Serial.begin(9600);
}
unsigned int integerValue=0;
char incomingByte;

void loop() {
  if (Serial.available())                                  // Wenn Zeichen über Serial reinkommen
  {
    integerValue = 0;                                      // ... den letzten Integer löschen
    while(1)                                               // ... und gehe in eine Schleife bis newLine kommt
    {
      incomingByte = Serial.read();
      if (incomingByte == '\n') break;                     // ...raus aus der Schleife wenn NewLine kommt
      if (incomingByte == -1) continue;                    // ... Wenn kein zeichen im Serialbuffer (also -1) weitermachen
      integerValue *= 10;                                  // ...Wert mal 10 nehmen
      integerValue = ((incomingByte - 48) + integerValue); // ...Konvertierung ASCII zu Integer
    }
    Serial.println(integerValue);                          // Hier kann dein Code den Integer-Wert verarbeiten
  }
}
Hope it helps!
Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.08.2015, 18:31
Beitrag #3
RE: Anfänger und Stepper
Hallo Ricardo,

Wow das ist mal deutlich komplizierter wie ich gedacht hatte.
Das schaue ich mir mal an und hoffe das ich das nachvollziehen kann.
Ich melde mich!

Danke
Cubiator
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.09.2015, 17:52
Beitrag #4
RE: Anfänger und Stepper
(30.08.2015 18:31)Cubiator schrieb:  Hallo Ricardo,

Ich melde mich!

Hi Ricardo,

Dein Sketch funktioniert wunderbar. Um den Stepper drehen zu lassen waren nur noch minimale Änderungen nötig.
Code:
// Eingabe von Integer <=65535
// Wichtig im SerialMonitor Neue Zeile / NewLine aktivieren
#include <Stepper.h>        //Laden der Stepperlib
int SPMU = 32;  
Stepper myStepper(SPMU, 2,3,4,5);  //Stepperpins zum ULN2003

void setup() {
  Serial.begin(9600);
  myStepper.setSpeed(500);      //Einstellung der Steppergeschwinigkeit(Steuer)
}
unsigned int integerValue=0;
char incomingByte;

void loop() {
  if (Serial.available())                                  // Wenn Zeichen über Serial reinkommen
  {
    integerValue = 0;                                      // ... den letzten Integer löschen
    while(1)                                               // ... und gehe in eine Schleife bis newLine kommt
    {
      incomingByte = Serial.read();
      if (incomingByte == '\n') break;                     // ...raus aus der Schleife wenn NewLine kommt
      if (incomingByte == -1) continue;                    // ... Wenn kein zeichen im Serialbuffer (also -1) weitermachen
      integerValue *= 10;                                  // ...Wert mal 10 nehmen
      integerValue = ((incomingByte - 48) + integerValue); // ...Konvertierung ASCII zu Integer
    }
    Serial.println(integerValue);                          // Hier kann dein Code den Integer-Wert verarbeiten
    myStepper.step(integerValue);                          // Stepper um de eingebenen Wert drehen lassen
  }
}

Doch leider kann ich nur rudimentär nachvollziehen wie Dein Sketch arbeitet und ich lege ihne erst einmal bei Seite da ich denke das mir noch einiges an Erfahrung fehlt. Hier werde ich später mal weitermachen, ich gehe nun LEDs blinken lassen;-)


Danke
Cubiator
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Anfänger Fragen zum Thema Pc & Datenverarbeitung Hurdy 0 300 29.03.2016 12:36
Letzter Beitrag: Hurdy
Sad Programmier-Anfänger Chef_2 59 4.616 28.12.2015 18:52
Letzter Beitrag: Chef_2
  Bipolaren Stepper steuern DL8NAD 4 724 03.12.2015 22:38
Letzter Beitrag: Scherheinz
  Stepper 28BYJ-48 an UNO Symphonie 5 1.593 01.11.2015 09:07
Letzter Beitrag: Symphonie
  Hilfe bei Programmierung ANFÄNGER Icemann_2 14 2.033 23.10.2015 15:51
Letzter Beitrag: Binatone
  Accel Stepper Library für Schrittmotoren Problem Rampe fahren Schrittmotor 0 989 13.10.2015 21:03
Letzter Beitrag: Schrittmotor
  Anfänger: Code für "Mini-Alarmanlage" drugX 13 2.238 11.08.2015 16:00
Letzter Beitrag: torsten_156
  Stepper mit Feuchtesensor Warmbronner 9 1.426 02.08.2015 11:26
Letzter Beitrag: Scherheinz
  Stepper mit Arduino und Poti Hannes1984 3 960 01.08.2015 16:34
Letzter Beitrag: Scherheinz
  2 Stepper parallel mit easydrivern Endlagen und Mittelstellung murdok1980 4 1.091 18.06.2015 21:08
Letzter Beitrag: murdok1980

Gehe zu:


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