PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wann steht Ausgangspin auf high?



datatom
24.01.2012, 20:02
Hallo zusammen,

ich habe das Motorboard 18V15 http://www.robotikhardware.de/download/High_PowerMotortreiber18V15.pdf von Pololu, dass an dem RN-Mega2560 angeschlossen ist. Leider dreht sich der angeschlossenen Motor nicht:(. Auf Seite 6 der Motorboard-Doku steht, wie die Pins des Boards angeschlossen werden. Auf der linken Seite des Boards habe ich an den Pins V+ und GND ein Netzteil mit 9 V angeschlossen und den Moter an OUTA und OUTB. Auf der rechten Seite des Boards habe ich V+ und GND mit 5 V, kommend vom RN-Mega2560, angeschlossen. Aus dem Pin 5V (out) kommt sogar 5 V heraus, hurra. Die beiden Pins FF1 und FF2 geben 0,02 V bzw. 0,016 V.

Die Frage ist nun, stehen die beiden Pins FF1 und FF2 mit den Werten 0,02 bzw. 0,016 auf high oder auf low?

Vielen Dank für die Antwort.

Grüße

datatom

rolber
24.01.2012, 20:49
Hallo !

High = 5V
Low = 0V

Lass einfach das was hinterm Komma steht weg.

Roland

datatom
24.01.2012, 21:22
Das heißt beide Pins stehen auf 0. Dann sollte der Motor drehen. Tut er aber nicht:-(. Was kann die Ursache sein? Die Pinleiste und die Kabelklemmen mußte ich selbst anlöten. Habe ich dabei etwas zerstört?

Kampi
24.01.2012, 22:33
Also V+ muss an 5V angeklemmt werden und GND dann an das GND von der 5V Spannungsquelle.
An dem PWM Eingang legst du die PWM an, welche festlegt wie schnell sich der Motor dreht. Legst du den Pin auf 5V hast du maximale Drehzahl des Motors.
Ein Pegelwechsel an DIR ändert die Motordrehrichtung. Allerdings solltest du vorher die Spannung am PWM Eingang auf 9V reduzieren, da der Motortreiber sonst abschalten kann. In diesem Fall musst du den erst mittels des RESET-Pins resetten.
Wenn du willst das sich der Motor dreht legst du den PWM Eingang auf High und dann DIR entweder auf Low oder High (ist egal bestimmt nur die Drehrichtung des Motors).
Mach das mal und guck ob das funktioniert.

datatom
24.01.2012, 23:08
Den Pin V+ auf der Seite von 5 V (out) habe ich mit 5 V versorgt und den Pin GND mit dem zugehörigen GND. Das PWM Signal müßte eigentlich richtig kommen, da ich vorher ein LED angeklemmt habe, welchen leuchtet bzw. nach hell und nach dunkel dimmt. Dir hab ich auf high gesetzt. Aber es tut sich nichts:-(

datatom
25.01.2012, 05:54
Kann es auch sein, dass das Board defekt ist? Wie kannich das überprüfen?

Kampi
25.01.2012, 06:00
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.

datatom
25.01.2012, 06:55
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?

Kampi
25.01.2012, 07:41
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?

joar50
25.01.2012, 15:53
Hallo,
ich kenne zwar das Board nicht, aber wenn ich die Doku dazu lese fällt mir folgendes auf.

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.
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.
Wie gesagt nur eine Vermutung, die nicht richtig sein muss.

datatom
25.01.2012, 18:02
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:



' 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


Hat jemand einen Tip?

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?

Kampi
25.01.2012, 19:17
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.

datatom
28.01.2012, 21:03
Hurra, ich kann den Motor jetzt zum Drehen bringen. Die Lötstellen waren nicht astrein :mad:

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:


' 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

Habe folgenden Motor http://www.conrad.de/ce/de/product/222365/GETRIEBEMOTOR-501-45-15V-540ER-MOTOR


Ist die Frequenz falsch?
(http://www.conrad.de/ce/de/product/222365/GETRIEBEMOTOR-501-45-15V-540ER-MOTOR)