Zwei Motoren unabhänig über Timer1 - PWM

Gast #4763458
Lesenswert?
• ▲
▼
Hallo,

ich möchte gerne 2 Motoren unabhängig per PWM regeln und Drehrichtung 
ändern:

ich hab folgenen Code:

#define  MOTORB  PD4
#define  MOTORA  PD5

/* fpwm = F_CPU/(Prescaller*Obergrenze)*/
TCCR1A |= (1<<WGM11)|(1<<COM1A1)|(1<<COM1B1); /* Modus 14: Fast PWM mit 
beliebiger Schrittzahl (festgelegt durch ICR1) nicht 
Invertiert(COM1x1)*/
TCCR1B |= (1<<WGM13)|(1<<WGM12)|(1<<CS12) | (1<<CS10); /*(WGM13 und 
WGM12 gehören zu Modi auswahl) CS = Prescaler 1024*/

ICR1 = 31250;  /* Obergrenze */ /* Test Frequenz = 16MHz/(1024*31250) = 
0,5Hz = 2s Periodendauer*/

OCR1A = 31250/2; /* Einschaltzeit MOTORA 50%*/
OCR1B = 31250/3; /* Einschaltzeit MOTORB 33%*/

DDRD |= (1<<MOTORA)|(1<<MOTORB); /* MOTORA und MOTORB als Ausgang*/

das klappt auch super. hab die beiden andern Eingänge des Motors jetzt 
erstmal mit Masse verbunden so laufen beide unabhängig.

jetzt möchte ich auch die Drehrichtung ändern heißt ich müsste die 
beiden andern Eingänge jetzt auch am UC anschließen.

Jetzt sind ja ORC1A und ORC1B die PWM Ausgänge um die dreh Richtung zu 
ändern müsste ich ja die jetzigen PWM Ausgänge auf Masse ansteuern und 
die Masse Kanal die PWM bekommen.

Nur wie kann ich das bewerkstelligen.

Dachte es über Interrups für Overflow und Comp Match der beiden Motoren 
nur was passiert, wenn beide wenn beide Motoren die selbe Frequenz haben 
dann würden ja beide COMP Interrups gleichzeitig aufgerufen und das ist 
ja ein Problem oder?

oder gibt es dort bessere Lösungen?
#4763508
Lesenswert?
• ▲
▼
Also wenn Du die beiden anderen Eingänge der Motoren nicht auf Masse 
legst, sondern je ein Ausgang spendierst, kannst du die Drehrichtung 
ändern. Durch Änderung des Pegels an den zusätzlichen verwendeten 
Ausgängen.

Ich nehme jetzt mal bewust keine Rücksicht auf die Belastbarkeit der 
Ausgänge. Die sind normalerweise nicht für eine Motoransteuerung 
geeignet.


PWM ----- Motor1 ----- Ausgang(low) Drehrichtung links

PWM ----- Motor1 ----- Ausgang(high) Drehrichtung rechts

Du musst natürlich beim ändern der Drehrichtung auch das PWM Verhältnis 
umkehren.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.