PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : L293D und zwei Motoren



JeyBee
23.10.2008, 12:53
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:


$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

uffi
23.10.2008, 14:00
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!!!

civicbcc
23.10.2008, 14:04
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

JeyBee
23.10.2008, 15:10
Es tut mir schrecklich Leid, ich habe euch den falschen Code geschriben.

Hier der richtige!



$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

civicbcc
23.10.2008, 15:13
schon mal mit porta.4 = 0 und porta.7 = 0 probiert?

uffi
23.10.2008, 15:18
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.

JeyBee
23.10.2008, 15:18
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.

JeyBee
23.10.2008, 18:24
Komisch, Hardware (verdrahtungs) technisch ist alles Ok,

Wird wohl der Microcontroller down sein.


Andere Ideen?

JeyBee
24.10.2008, 10:24
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