PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ansteuerung Getriebemotor



Mesut
16.05.2006, 18:52
](*,)

Ich bekomme einfach den getriebemotor nicht zum laufen


](*,)

Das kann doch nicht so schwer sein

was ist denn daran falsch


Declare Sub Motortest()


$regfile = "m32def.dat"


Config Pinc.6 = Output
Config Pinc.7 = Output
Config Pind.4 = Output



Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pind.5 = Output



Sub Motortest()

Portc.6 = 1
Portc.7 = 0
Portd.4 = 1

Portb.0 = 1
Portb.1 = 0
Portd.5 = 1


End Sub

Mike3012
16.05.2006, 19:26
Declare Sub Motortest()
$regfile = "m32def.dat"

Config Pinc.6 = Output
Config Pinc.7 = Output
Config Pind.4 = Output

Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pind.5 = Output



Header --> richtig ;)


Sub Motortest()

Portc.6 = 1
Portc.7 = 0
Portd.4 = 1

Portb.0 = 1
Portb.1 = 0
Portd.5 = 1


End Sub

Sub --> richtig ;)

Es gibt keinen Fehler, du hast nur vergessen, den Sub aufzurufen. Versuche es damit:



Declare Sub Motortest()
$regfile = "m32def.dat"

Config Pinc.6 = Output
Config Pinc.7 = Output
Config Pind.4 = Output

Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pind.5 = Output

Call Motortest() '### vergessen :P ###

Portc.6 = 0 'vergiss nicht, die Motoren wieder auf
Portc.7 = 0 '0 zu schalten, damit die Restspannung
Portc.4 = 0 'rausgeht (hat schon akkus leergemacht)

Portb.0 = 0
Portb.1 = 0
Portd.5 = 0

Sub Motortest()

Portc.6 = 1
Portc.7 = 0
Portd.4 = 1

Portb.0 = 1
Portb.1 = 0
Portd.5 = 1


End Sub


Ich hoffe ich konnte dir helfen, gruß Mike

uwegw
16.05.2006, 19:32
wobei man nach dem Aufruf noch ne gewisse Pause einfügen sollte, ansonsten werden dei Motoren sofort wieder abgeschaltet... und wenn man schon mal dabei ist, kann man ja auch gleich "Sub MotorenAus" einbauen...

Mesut
16.05.2006, 21:30
Dankeschön für die Antwort werde es mal testen ob es läuft

Mesut
17.05.2006, 11:23
](*,) ](*,)

klappt wieder nicht

komischerweise funktioniert die steuerung über PWM

aber die simple direkte ansteuerung nicht ist was kaputt??

bitte helfen

Declare Sub Motortest()
$regfile = "m32def.dat"

Config Pinc.6 = Output
Config Pinc.7 = Output
Config Pind.4 = Output

Config Pinb.0 = Output
Config Pinb.1 = Output
Config Pind.5 = Output

Call Motortest()

wait 40

Portc.6 = 0
Portc.7 = 0
Portc.4 = 0

Portb.0 = 0
Portb.1 = 0
Portd.5 = 0

Sub Motortest()

Portc.6 = 1
Portc.7 = 0
Portd.4 = 1

Portb.0 = 1
Portb.1 = 0
Portd.5 = 1


End Sub

uwegw
17.05.2006, 11:26
Kommentier mal rein, an welchem Pin welcher Anschluss des Motortreibers angeschlossen ist...

17.05.2006, 12:19
Declare Sub Motortest()
$regfile = "m32def.dat"

Config Pinc.6 = Output Linker Motor Kanal 1
Config Pinc.7 = Output Linker Motor Kanal 2
Config Pind.4 = Output Linker Motor PWM

Config Pinb.0 = Output Linker Motor Kanal
Config Pinb.1 = Output Linker Motor Kanal
Config Pind.5 = Output Linker Motor PWM

Call Motortest()

wait 40

Portc.6 = 0 Richtung
Portc.7 = 0 Richtung
Portc.4 = 0 Ein/Aus

Portb.0 = 0 Richtung
Portb.1 = 0 Richtung
Portd.5 = 0 Ein/Aus

Sub Motortest()

Portc.6 = 1 Richtung
Portc.7 = 0 Richtung
Portd.4 = 1 Ein/Aus

Portb.0 = 1 Richtung
Portb.1 = 0 Richtung
Portd.5 = 1 Ein/Aus


End Sub


Dieses funktioniert, aber die kanäle sind doch gleich, beim oberen liegt keine spannung an der motoren an

$regfile = "m32def.dat"

Dim I As Word


$crystal = 8000000 'Quarzfrequenz

Dim Geschwindigkeitlinks As Word
Dim Geschwindigkeitrechts As Word

'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
Geschwindigkeitlinks = 50
Geschwindigkeitrechts = 2900
Pwm1a = Geschwindigkeitrechts
Pwm1b = Geschwindigkeitlinks
Tccr1b = Tccr1b Or &H02 'Prescaler = 8


'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
Loop Until I > 1023

Wait 1
Do

Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 1


Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus


End

uwegw
17.05.2006, 12:31
L293D???
Versuch mal, den PWM-Eingang auf 0 statt auf 1 zu schalten. Ich hatte auch schon mal mit nem L293D zu kämpfen, bis ich rausgefunden habe, dass bei meiner Version der Enable-Pin bei 0 den Treiber einschaltete. Das PWM-Signal im zweiten Programm ist anscheinedn invertiert, somit gleich sich der Effekt aus...

Mike3012
17.05.2006, 12:39
Dann steuer das ganze eben über PWM an, das mach ich auch. Damit komm ich ganz gut zurecht.

17.05.2006, 12:40
Es ist das rn board 1.22

da ist der l297 drin

funktioniert leider auch nicht