PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : L298 und PWM



cipher
31.10.2008, 13:14
Hallo zusammen,

ich möchte gerne einen L298 zur Ansteurung von Gleichstrommotoren an einen AVR anschliessen. Im Buch "Roboter selbstgebaut" findet sich eine Schaltung, die mit 2 Leitungen pro Kanal auskommt: einmal ein PWM-Signal und einmal die Enable-Leitung. Die PWM-Leitung wird einmal direkt an Input 1 angeschlossen, einmal invertiert an Input 2. Das hat den Effekt, dass bei aktivierter Enable-Leitung bei einem Puls-Pause-Verhältnis von 50% der Motor steht, bei 75% sich mit halber Kraft vorwärts bewegt, bei 25% mit halber Kraft rückwärts usw.
Meine Frage nun: steigert das den Stromverbrauch nicht unnötig? Warum den Motor beschleunigen und dann wieder abbremsen?

Wäre es möglich, den Motor mit PWM zu beschleunigen bzw. abzubremsen, in dem nicht die Input-Leitungen sondern Enable gepulst wird? Der Controller würde dann an den Input-Leitungen rausschicken, was passieren soll (Motor vorwärts / rückwärts / bremsen). Über die (gepulste) Enable-Leitung würde dann die Stärke der Beschleunigung bzw. der Bremsung gesteuert.


Vielen Dank schon mal für die Antworten.


Viele Grüße,

Markus

Cairol
03.11.2008, 12:45
Wäre es möglich, den Motor mit PWM zu beschleunigen bzw. abzubremsen, in dem nicht die Input-Leitungen sondern Enable gepulst wird?

Genau so steuert man den L298 normalerweise an.

2 Ports des AVR's (egal welche) werden als "Input"-Leitungen verwendet und dienen nur dazu, die Drehrichtung anzugeben.
Je nach dem welcher 1 und welcher 0 ist, weis der L298 wie rum er den Motor antreiben soll.
Und an einen der PWM-Pins des AVR (oder falls du die PWM softwaremäßig erzeugst, ein beliebig gewählter Pin) wird der "Enable"-Eingang des L298 angeschlossen. Das PWM-Signal wird über diesen Enable-Pin zum L298 geleitet.

So wie das in deinem Buch angegeben wird, geht es zwar auch, aber wie du schon vermutet hast, wird der Motor dabei immer wieder beschleunigt und gewaltsam gebremst.

Was man damit erreicht: Man hat im Stillstand ein gewisses Haltemoment. Der Motor hält also auch gegen eine anliegende Kraft seine Position.
Nachteile:
1. Der Motor braucht auch im Stillstand Strom. (und das nicht zu knapp)
2. man verliert 50% der Auflösung für die Geschwindigkeitswahl

Falls du dieses Haltemoment nicht brauchst rate ich dir:
Mach es so wie es eigentlich vorgesehen ist.

cipher
10.12.2008, 08:57
Hallo nochmal!

Kann mir jemand sagen, ob es eine Grenzfrequenz für die Ansteuerung der ENABLE-Anschlüsse gibt? Die Enable-Anschlüsse sind an den Pins PB1 (OC1A) und PB2 (OC1B). Wenn ich nun die Ports per Software pulse, läuft der Motor. Ich kann also davon ausgehen, dass sowohl Input 1 - 4 richtig eingestellt sind, als auch, dass die Schaltung an sich korrekt und der Motortreiber in Ordnung ist. Per PWM über den Timer 1 haut's nicht hin. Der Mega8 läuft mit 16 MHz, die Prescaler für T1 ist auf 1024:1 eingestellt, die PWM erfolgt mit 8 Bit Genauigkeit. Ich habe die Modi "Fast PWM", "Phase Correct PWM" und "Phase and Frequency Correct PWM" versucht.

Danke schon mal für eure Antworten!

Viele Grüsse,

Markus


OK, hat sich erledigt. Hatte vergessen die Pins PB1 und PB2 als Ausgänge zu schalten.
](*,)