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
  PWM-Lüfter mit Adafruit Motor-Shield steuern? phischmi 9 467 22.07.2016 18:06
Letzter Beitrag: phischmi
  Arduino Uno+Motor Shield+Velleman Mustercode funktionieren nicht Dubidu 8 492 20.07.2016 19:05
Letzter Beitrag: Scheams
  Delay nurmili 2 220 10.07.2016 16:55
Letzter Beitrag: nurmili
  Problem mit Delay und Millis funnyzocker 1 463 26.06.2016 09:54
Letzter Beitrag: hotsystems
  PID ohne Library MeisterQ 5 534 01.05.2016 09:23
Letzter Beitrag: MeisterQ
  nur ein URL aufruf ohne PHP toto1975 3 613 05.04.2016 08:26
Letzter Beitrag: iks77
  DC Motor in beide Richtungen steuern WIMunios 5 652 24.03.2016 12:04
Letzter Beitrag: Bitklopfer
  Motor Geschwindigkeitssteuerung mit L293DNE ArduinoFanX 12 1.231 11.01.2016 13:21
Letzter Beitrag: arduinofan
  Kann ich in eine For Schleife einen delay einbauen JanGamer11 6 616 05.01.2016 12:34
Letzter Beitrag: Hilgi
  Doppelblitz ohne Delay cleko 3 864 12.11.2015 08:02
Letzter Beitrag: Bitklopfer

Gehe zu:


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