HeXPloreR
10.11.2012, 21:50
Hallo Leute,
ich hab mal wieder ein Problem, diesmal sind es Motoren an der RN-Control 1.4 m32:
Das Testprogramm habe ich draufgeladen, und einen Motor angeschlossen.
Wenn ich nun den taster T2 drücke um den Testlauf zu starten, fährt der Motor auch hoch, aber er wird nicht wieder langsamer :shock:
Laut Code zählt er I bis > 1023 dann geht er in die nächste Schleife und zählt auch wieder runter.
Aber Motor fängt direkt an zu drehen, und wird mit steigendem I-Wert langsamer, dann beim Schleifenwechsel kommt ein kleiner Ruck, und dann gehts andersrum - mit sinkendem I-Wert wird der Motr wieder schneller. Dann kommt der Beep, wo eigentlich der Motor wenigstens aufhören müsste zu drehen.:-k
Ich habe kurzer Hand ein Print in jeder Schleife eingebaut, und eines nach beenden des runterzählens.
Mache ich was falsch? Wurde der Testcode vielleicht zwischenzeitlich abgeändert?
Anscheinend wird das PWM nicht richtig ausgegeben, bzw benutze ich es falsch.
Ausschnitt des Originalcode (nur mit eingebautem Print):
' Für Motorentest
'Ports für linken Motor
Config Pinc.6 = Output 'Linker Motor Kanal 1
Config Pinc.7 = Output 'Linker Motor Kanal 2
Config Pind.4 = Output 'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output 'Rechter Motor Kanal 1
Config Pinb.1 = Output 'Rechter Motor Kanal 2
Config Pind.5 = Output 'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Tccr1b = Tccr1b Or &H02 'Prescaler = 8
'Testet Motoren und Geschwindigkeitsreglung
Sub Motortest()
'Linker Motor ein
Portc.6 = 1 'bestimmt Richtung
Portc.7 = 0 'bestimmt Richtung
Portd.4 = 1 'Linker Motor EIN
'Rechter Motor ein
Portb.0 = 1 'bestimmt Richtung rechter Motor
Portb.1 = 0 'bestimmt Richtung rechter Motor
Portd.5 = 1 'rechter Motor EIN
I = 0
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I + 5
Print I
Loop Until I > 1023
Wait 3
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Print I
Loop Until I < 1
Print "fertig"
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
Wait 3
End Sub
- - - Aktualisiert - - -
Einen L293D hat es nun schon gekostet...ich fürchte an der Platine hat schon jemand rumgelötet.
Um überhaupt erstmal den ISP nutzbar zu machen musste ich drei schlecht bis garnicht verlötete Kontakte am ISP-Stecker (nach)löten und den Kondensator C11.
Der Kondensator C10 auf der Rückseite der Platine wurde wohl auch schon mal getauscht oder wenigstens nachgelötet.
Ich habe jetzt einen kleineren Motor gewählt, der die Leistung des (neuen) L293 nicht überstapaziert.
Das Problem mit dem PWM bleibt aber bestehen.
ich hab mal wieder ein Problem, diesmal sind es Motoren an der RN-Control 1.4 m32:
Das Testprogramm habe ich draufgeladen, und einen Motor angeschlossen.
Wenn ich nun den taster T2 drücke um den Testlauf zu starten, fährt der Motor auch hoch, aber er wird nicht wieder langsamer :shock:
Laut Code zählt er I bis > 1023 dann geht er in die nächste Schleife und zählt auch wieder runter.
Aber Motor fängt direkt an zu drehen, und wird mit steigendem I-Wert langsamer, dann beim Schleifenwechsel kommt ein kleiner Ruck, und dann gehts andersrum - mit sinkendem I-Wert wird der Motr wieder schneller. Dann kommt der Beep, wo eigentlich der Motor wenigstens aufhören müsste zu drehen.:-k
Ich habe kurzer Hand ein Print in jeder Schleife eingebaut, und eines nach beenden des runterzählens.
Mache ich was falsch? Wurde der Testcode vielleicht zwischenzeitlich abgeändert?
Anscheinend wird das PWM nicht richtig ausgegeben, bzw benutze ich es falsch.
Ausschnitt des Originalcode (nur mit eingebautem Print):
' Für Motorentest
'Ports für linken Motor
Config Pinc.6 = Output 'Linker Motor Kanal 1
Config Pinc.7 = Output 'Linker Motor Kanal 2
Config Pind.4 = Output 'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output 'Rechter Motor Kanal 1
Config Pinb.1 = Output 'Rechter Motor Kanal 2
Config Pind.5 = Output 'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Tccr1b = Tccr1b Or &H02 'Prescaler = 8
'Testet Motoren und Geschwindigkeitsreglung
Sub Motortest()
'Linker Motor ein
Portc.6 = 1 'bestimmt Richtung
Portc.7 = 0 'bestimmt Richtung
Portd.4 = 1 'Linker Motor EIN
'Rechter Motor ein
Portb.0 = 1 'bestimmt Richtung rechter Motor
Portb.1 = 0 'bestimmt Richtung rechter Motor
Portd.5 = 1 'rechter Motor EIN
I = 0
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I + 5
Print I
Loop Until I > 1023
Wait 3
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Print I
Loop Until I < 1
Print "fertig"
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
Wait 3
End Sub
- - - Aktualisiert - - -
Einen L293D hat es nun schon gekostet...ich fürchte an der Platine hat schon jemand rumgelötet.
Um überhaupt erstmal den ISP nutzbar zu machen musste ich drei schlecht bis garnicht verlötete Kontakte am ISP-Stecker (nach)löten und den Kondensator C11.
Der Kondensator C10 auf der Rückseite der Platine wurde wohl auch schon mal getauscht oder wenigstens nachgelötet.
Ich habe jetzt einen kleineren Motor gewählt, der die Leistung des (neuen) L293 nicht überstapaziert.
Das Problem mit dem PWM bleibt aber bestehen.