PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PWM Motorsteuerung



daniel.weber
07.03.2008, 21:53
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.



$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.

StevieL
08.03.2008, 08:47
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.

Sauerbruch
08.03.2008, 11:32
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...

daniel.weber
08.03.2008, 11:35
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

Sauerbruch
08.03.2008, 11:41
Na, das klingt ja gut! PWM ist überhaupt eine großartige Erfindung :-)