Die RESET Leitung hast du auch auf High bzw. 5V gelegt? Nicht das die dir irgendwie dazwischen funkt.
Wichtig ist auch das dein PWM Signal max. 40kHz hat. Wenn es das nicht hat kann das vielleicht der Fehler sein.
Werbung
Die RESET Leitung hast du auch auf High bzw. 5V gelegt? Nicht das die dir irgendwie dazwischen funkt.
Wichtig ist auch das dein PWM Signal max. 40kHz hat. Wenn es das nicht hat kann das vielleicht der Fehler sein.
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Der Resetpin liefert vom RN-Mega2560 zum Motorboard 5 V. Wie bzw. mit welchem Gerät kann ich die 40kHz überprüfen? Kann ich nicht davon ausgehen, dass das Signal vom RN-Mega2560 automatisch max. 40kHz liefert? Oder muss ich evt. Einstellungen vornehmen?
Die Frequenz des PWM-Signals kannst du mit einem Osziloskop messen.
Und nein du kannst nicht davon ausgehen das der Mega ein 40kHz Signal liefert.
Hast du ein Testprogramm für das Board?
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Hallo,
ich kenne zwar das Board nicht, aber wenn ich die Doku dazu lese fällt mir folgendes auf.
Es wird nur einmal von V+ gesprochen, egal ob rechts oder links. Ist es nicht evtl. so, dass aus der V+ (5,5V - 30V) die 5V gebildet werden und der TO nicht zusätzlich zu seinen 9V (links) noch die 5V (rechts) anschließen darf.V+
Die maximale Eingangsspannung die zur Versorgung der Motoren und Elektronik genutzt wird. Sie
sollte zwischen 5,5 bis 30 Volt liegen. Über den Pin PWM kann diese später „runtergeregelt“
werden.
Wie gesagt nur eine Vermutung, die nicht richtig sein muss.
So, ich habe die Stromversorgung auf nur eine Seite begrenzt. Ich habe das Motorboard einmal auf der rechten Seite mit 5 V versorgt, der Motor stand leider still. Dann habe ich nur über die linke Seite das Board mit 9 V versorgt, hat leider auch nichts gebracht.![]()
Vielleicht liegt der Fehler im Programm:
Hat jemand einen Tip?Code:' PWM Testprogram $prog , 255 , &B11011100, $regfile = "m2560def.dat" $hwstack = 82 '80 $framesize = 68 ' 64 $swstack = 68 '44 $crystal = 16000000 'Quarzfrequenz $baud = 19200 Config Pind.5 = Output Led Alias Portd.5 Config Pinc.0 = Output ' Stiftleiste JP 2; Pin 3; PC0 Motor1_reset Alias Portc.0 Config Pinc.1 = Output ' Stiftleiste JP 2; Pin 4; PC1 Motor1_rotational_direction Alias Portc.1 Dim Motor1_speed As Integer Echo Off ' Timer 1 ist ein 8 Bit Timer Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1 ' Stiftleiste JP 1; Pin 24 Led = 0 ' LED einschalten Motor1_reset = 1 Motor1_rotational_direction = 1 Motor1_speed = 127 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Do Compare1a = Motor1_speed ' Stiftleiste JP 1; Pin 24 Loop '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' End
Das mit den 40kHZ muss ich allerdings noch ausprobieren, aber vielleicht sieht jemand ja schon den Fehler im Programm. Kann das Board evt. nicht Signale von einem 8 Bit Timer verarbeiten?
Das hat mit dem Timer nichts zu tun. 8 Bit heißt nur das der Timer ein 8-Bit großes Zählregister hat. Abgesehen vom Zählregister unterscheiden sich 8,16 und 32 Bit Timer nicht.
Schaut ruhig mal auf meiner Homepage vorbei:
http://kampis-elektroecke.de
Oder folge mir auf Google+:
Daniel Kampert
Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.
Gruß
Daniel
Hurra, ich kann den Motor jetzt zum Drehen bringen. Die Lötstellen waren nicht astrein
Das mit den max. 40 kHz habe ich jetzt auch berücksichtigt. Ich war bei 200 kHz, jetzt bin ich bei 30,517578125 kHz.
Allerdings ruckelt der Motor bei ansteuern mit PWM. Das Test-LED flackert auch. Woran kann das liegen?
Hier mal mein Programm:
Habe folgenden Motor http://www.conrad.de/ce/de/product/222365/GETRIEBEMOTOR-501-45-15V-540ER-MOTORCode:' PWM Testprogram '''''$prog , 255 , &B11011100, $prog , 255 , &B11011001, $regfile = "m2560def.dat" $hwstack = 82 '80 $framesize = 68 ' 64 $swstack = 68 '44 $crystal = 16000000 'Quarzfrequenz $baud = 19200 Config Pind.5 = Output Led Alias Portd.5 Config Pinc.0 = Output ' Stiftleiste JP 2; Pin 3; PC0 Motor1_reset Alias Portc.0 Config Pinc.1 = Output ' Stiftleiste JP 2; Pin 4; PC1 Motor1_rotational_direction Alias Portc.1 Dim Motor1_speed As Integer Echo Off ' Bei dem Motortreiber 18V15 von Pololu liegt die PWM Frequenz (kHz) bei max. 40 kHz, siehe Doku des Motorboard auf Seite 3 ' Formel zur kHz-Berechnung: Ausgangsfrequenz = (Quarzfrequenz/Prescale ) /(Timerauflösung*2) ' Quarzfrequenz = $crystal = 16000000 ' Prescale = 8, 64, 256, 1024 für Timer1 Seite 164 der Doku für ATMEGA2560 ' Timerauflösung = Bit, bzw. Pwm = 8, Bit ist dann 8. Mit dem Wert Bit wird die Zahl 2 hochgenommen => 2 hoch 8 = 256 ' (16000000:1024):(256*2) = 30,517578125 kHz ' Timer1 ist ein 16 Bit Timer, wird in diesen Fall auf 8 Bit gesetzt. Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1024 ' Stiftleiste JP 1; Pin 24 ' (16000000:1024):(256*2) = 30,517578125 kHz Led = 0 ' LED einschalten Motor1_reset = 1 Waitms 1 Motor1_reset = 0 Waitms 1 Motor1_reset = 1 Motor1_rotational_direction = 1 Motor1_speed = 127 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Do ' Der max. Wert von Compare1a liegt bei 2 hoch Bit-Wert => 2 hoch 8 = 256. Da ab 0 gezählt wird, ist der max. Wert für einen 8 Bit-Timer 255 Compare1a = Motor1_speed ' Stiftleiste JP 1; Pin 24 Loop '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' End
Ist die Frequenz falsch?
Geändert von datatom (28.01.2012 um 21:13 Uhr)
Lesezeichen