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
Rampe ohne Delay DC-Motor
03.01.2015, 16:24
Beitrag #1
Rampe ohne Delay DC-Motor
Hey Leute,

ich habe demletzt angefangen mit Arduino zu programmieren usw.. Nachdem ich ein Buch durchgearbeitet habe, habe ich ich entschieden einen kleinen "Roboter" zu bauen und dort Schritt für Schritt weiter zu lernen und weitere Teile zu integrieren. Angefangen habe ich jetzt einfach mit einem Arudino UNO, H-Brücke L298n und 2 Motoren zum fahren. Vorwärts, Rückwärts usw. funktioniert alles soweit schon.

Jetzt aber zu meinem Problem. Zum beschleunigen und bremsen habe ich bis jetzt folgendes (zum kürzen nur der Ausschnitt zum Vorwärts-beschleunigen).

Code:
int PWM_Motor_links = 5;          // PWM Enable Motor links
int PWM_Motor_rechts = 6;         // PWM Enable Motor rechts
int Motor_links_zurueck = 7;      // Motor links zurück
int Motor_rechts_vor = 8;         // Motor rechts vor
int Motor_links_vor = 11;         // Motor links vor
int Motor_rechts_zurueck = 12;    // Motor rechts zurück
int max_Geschwindigkeit = 255;    // maximale Geschwindigkeit
int min_Geschwindigkeit = 150;    // minimale Geschwindigkeit
int Schritte_Beschleunigung = 10; // Delay für Beschleunigung
int mom_Geschwindigkeit;

void setup() {
  // Ausgänge
  pinMode(PWM_Motor_links, OUTPUT);
  pinMode(PWM_Motor_rechts, OUTPUT);
  pinMode(Motor_links_vor, OUTPUT);
  pinMode(Motor_rechts_vor, OUTPUT);
  pinMode(Motor_links_zurueck, OUTPUT);
  pinMode(Motor_rechts_zurueck, OUTPUT);

  // Eingänge
}

void loop() {

  vor();
}

// beschleunigen Vorwärts auf volle Geschwindigkeit
void vor() {
  int Geschwindigkeit = 0;
  // H-Brücke wird für Vorwärts angesteuert
  digitalWrite(Motor_links_zurueck, LOW);
  digitalWrite(Motor_rechts_zurueck, LOW);
  digitalWrite(Motor_links_vor, HIGH);
  digitalWrite(Motor_rechts_vor, HIGH);
  // Beschleunigung auf volle Geschwindigkeit
  for(int i = 150; i < max_Geschwindigkeit; i++) {
    Geschwindigkeit = i;
    mom_Geschwindigkeit = Geschwindigkeit;
    analogWrite(PWM_Motor_links, Geschwindigkeit);
    analogWrite(PWM_Motor_rechts, Geschwindigkeit);
    delay(Schritte_Beschleunigung);
  }
  // Motoren bleiben auf voller Geschwindigkeit
  analogWrite(PWM_Motor_links, max_Geschwindigkeit);
  analogWrite(PWM_Motor_rechts, max_Geschwindigkeit);
  mom_Geschwindigkeit = max_Geschwindigkeit;
}

Jetzt möchte ich parallel dazu eine Status-LED blinken lassen, was mit dem Delay beim Beschleunigen ja nicht geht. Ich habe Versucht den Delay in der Beschleunigung durch etwas wie im "Blink without Delay" zu ersetzen. Allerdings ist das gnadenlos gescheitert Big Grin.

Leider ist der Code davon auf dem anderen Rechner, wodurch ich ihn jetzt leider nicht posten kann. Werde es aber bei Gelegenheit nachreichen.

Kann / möchte mir hier jemand helfen?

Vielen Dank im Voraus schonmal Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
11.01.2015, 12:30
Beitrag #2
RE: Rampe ohne Delay DC-Motor
Moin Moin,
wenn Du dein Problem lösen willst musst Du mit dem millis() Befehl die Arduino laufzeit an eine Variable übergeben und die Motorbefehle in eine If Abfrage einmauern. So das die immer nur dann ausgeführe werden wenn die Beschleunigungszeit von 10ms überschritten ist.

Gruß Sven

Nichts auf der Welt ist unnütz, es kann im schlimmsten Fall immer noch als schlechtes Beispiel dienen.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2015, 14:19 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2015 14:20 von de_flexus.)
Beitrag #3
RE: Rampe ohne Delay DC-Motor
Sorry für meine späte Antwort und danke für deine Antwort.

Jep hab gemerkt das ich bei meinem Code (hatte das mit den millis ja schon probiert) en Denkfehler drin hatte.

Läuft jetzt soweit.

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.11.2015, 13:07
Beitrag #4
RE: Rampe ohne Delay DC-Motor
(01.02.2015 14:19)de_flexus schrieb:  Sorry für meine späte Antwort und danke für deine Antwort.

Jep hab gemerkt das ich bei meinem Code (hatte das mit den millis ja schon probiert) en Denkfehler drin hatte.

Läuft jetzt soweit.

Grüße

Wäre ja nicht schlecht, wenn du den nun funktionierenden Programcode posten könntest, würde vieleicht anderen Forumnutzern dann mehr helfen.
Danke
und Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Einmalige Servo Motor Ausführung BanditBandeh 23 682 03.01.2018 17:13
Letzter Beitrag: georg01
  Arduino Software ohne Bibliotheken-Manager bertl68 3 200 02.01.2018 18:36
Letzter Beitrag: Tommy56
  Arduino Software Serial - Delay notwendig? Zipfel1 18 622 02.01.2018 11:59
Letzter Beitrag: Tommy56
  Motor Shield V3 Analog Digital Converter Nextero 5 250 19.12.2017 10:54
Letzter Beitrag: Nextero
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 678 22.08.2017 15:17
Letzter Beitrag: Tommy56
  2 Servos ohne delay steuern Ratlos 27 3.047 26.07.2017 20:43
Letzter Beitrag: MicroBahner
  LEDs ansteuern ohne Delay mir MIDI abfrage OnkelPelle 11 1.272 20.07.2017 22:35
Letzter Beitrag: hotsystems
  Motor Steuerung durch Sensoren Werte Zerebrator 14 1.288 12.06.2017 14:36
Letzter Beitrag: Franz54
  delay(...) im Code ok? donut 4 691 08.06.2017 20:16
Letzter Beitrag: donut
  Brauche Zeitverzögerung delay/millis/timer? Spiecky 17 1.656 15.04.2017 09:41
Letzter Beitrag: hotsystems

Gehe zu:


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