-
L293D und zwei Motoren
Moin Moin,
Ich brauche eueren Rat, ich bin am verzweigeln.
Ich habe mir das L293D IC gekauft, und dies Fachgerecht mit mehrfachem nachprüfen angeschlossen. Die Motoren laufen beide ganz normal, wenn ich nur spannung an diese anlege.
Wenn ich sie jedoch mit dem IC betreibe, dreht sich nur einer, der andere immer nur so eine halbe Sekunde am Anfang.
Hier der Code:
Code:
$regfile = "m16def.dat"
$crystal = 16000000
Config Portc = Output
Config Portb = Output
M1 Alias Porta.5
M2 Alias Porta.6
M3 Alias Portc.6
M4 Alias Portc.5
Do
Portb.2 = 1
Portc.3 = 1
M1 = 0
M2 = 1
M3 = 0
M4 = 1
Wait 1
M1 = 1
M2 = 1
M3 = 1
M4 = 1
Wait 1
Loop
Hier die verwendeten Anschlüsse am Controller:
Motor 1:
Enable = portA.4
A = portA.5
B = portA.6
Motor 2:
Enable = PortC.7
A = portC.6
B = portC.5
Am IC kann es nicht liegen, ich habe zwei von dennen, beide machen das gleich.
Die Anschlüsse habe ich mit einem Multimeter mehrfach nachgemessen, sie sind an den angegebenen Ports.
Bitte helft mir!
Gruss JeyBee
-
In Deinem Code sind Fehler:
Config Portc = Output
Config Portb = Output
Ich denke, Porta sollte ein Output sein!!! Dann:
Do
Portb.2 = 1
Portc.3 = 1
Ich denke, hier willst Du die Enables einschalten, die liegen aber doch auf:
Motor 1:
Enable = portA.4
A = portA.5
B = portA.6
Motor 2:
Enable = PortC.7
A = portC.6
B = portC.5
Fazit: Anschlußbelegung und Code passen nicht zusammen!!!
-
hi,
vergleich mal deinen code mit dem was du darunter geschrieben hast, da stimmt was nicht.
im code verwendest du portb.2 und portc3. unten schreibst du aber porta.4 und portc.7
EDIT // Uffi war schneller
-
Es tut mir schrecklich Leid, ich habe euch den falschen Code geschriben.
Hier der richtige!
Code:
$regfile "m16def.dat"
$crystal = 16000000
Config Porta = Output
Config Portc = Output
M1 Alias Porta.5
M2 Alias Porta.6
M3 Alias Portc.6
M4 Alias Portc.5
Do
Porta.4 = 1
Porta.7 = 1
M1 = 1
M2 = 0
M3 = 1
M4 = 0
Loop
-
schon mal mit porta.4 = 0 und porta.7 = 0 probiert?
-
Da ist immer noch ein Fehler drin:
Der enable für Motor 2 laut Deiner Beschreibung: Enable = PortC.7
Im Code:Porta.7 = 1
Damit ist auch klar, warum nur ein Motor läuft.
-
Dann passiert logischer weise nichts. Diese Ports müssen auf 1 stehen, denn sie "aktivieren" die Motoren
Edit: Uffi war wieder schneller.
Stimmt ja ](*,)
Aber leider stimmt da immer noch was nicht. Ich werde dass mal noch einmal überprüfen.
Bin zur Zeit gestresst.
-
Komisch, Hardware (verdrahtungs) technisch ist alles Ok,
Wird wohl der Microcontroller down sein.
Andere Ideen?
-
So Jungs,
Sry das ich euch so an den Nervern zerrte, aber das Porblem ist jetzt gelöst. Ich habe einfach jeden einzelnen Pin als Output defniert, also so:
Config Porta.4 = Output
Config Porta.5 = Output
Config Porta.6 = Output
Config Portc.7 = Output
Config Portc.6 = Output
Config Portc.5 = Output
Also, danke an alle!
Mfg JeyBee