-
PWM Motorsteuerung
Hallo,
habe eine Motorbrücke (L293 D) aufgebaut und wollte diese mit einem Mega32 ansteuern, habe dafür folgendes Programm geschrieben, muss dazu sagen, dass ich noch totaler Anfänger auf diesem Gebiet bin.
Code:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 8000000
$baud = 9600
Config Porta = Output ' LED zum Test auf an
Config Portd.5 = Output ' PWM Leitung Motor 1
Config Portd.7 = Output ' Eingang A Motor 1
Config Portc.1 = Output ' Eingang B Motor 1
Led Alias Porta.0
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 8
Fwd Alias Portd.7
Rwd Alias Portc.1
Do
Led = 1
Compare1a = 200
Fwd = 1
Rwd = 0
Loop
End
Mein Problem ist nun, wie kann ich die Geschwindigkeit des Motors verändern? bei unter 200 dreht sich nix mehr, geht nur ganz langsam mit 200, was mach ich falsch :( vielleicht bin ich auch mit dem pwm auf dem ganz falschen Weg.
-
Hallo,
schon mal probiert, den Prescaler zu verändern? Damit sollte sich die PWM-Frequenz verändern. Mit Prescale = 1 habe ich bislang gute Erfahrungen gemacht. Allerdings nicht bei Motorsteuerungen sondern nur beim Dimmen von LEDs.
-
Also, der Prescaler von 8 ist für einen Motor schon ziemlich okay. Die PWM-Frequenz kannst Du aus Quarzfrequenz, Prescaler und Bandbreite des Timers errchnen: Quarzfrequenz / (Prescaler * 2 * PWM-Bandbreite), in diesem Fall also 8000000/ (8*2*256), das wären etwa 2kHz. Damit fühlen sich die meisten Motoren wohl.
Ich bin mir sicher, dass auch ich noch heute ergebnislos an meinen diversen PWM-Einstellungen rumbasteln würde, wenn ich nicht ein Oszi zur Hilfe gehabt hätte, mit dem ich sehen konnte, was am OCR-Pin passiert.
Falls Du keins hast, reicht für diese Zwecke schon ein "Soundkarten"-Oszi, mit dem man sich über den Soundkarten-Eingang Wechselspannungen ansehen kann (z.B. bei http://www.zeitnitz.de/Christian/Scope/Scope_ger.html).
Ansonsten seh´ ich auf den ersten Blick auch nichts, was definitiv verkehrt wäre...
-
Hallo,
also Lösung des Problems war, das der Motor zu viel Strom gezogen hat, zumindest vermute ich das mal, mit einem kleineren Motor funktioniert die Schaltung und das Programm tadellos.
LG
Daniel
-
Na, das klingt ja gut! PWM ist überhaupt eine großartige Erfindung :-)