Hallo Leute, Komme einfach nicht weiter, ich hoffe ihr könnt mir hilfreiche Tipps geben. Meine Schaltung ist im Anhang. Problem ist: Der Motor dreht sich vlt nur ganz kurz, also er zuckt nur ganz kurz und ganz schwach weg. Den Motor habe ich von der Schule bekommen, ich kenne keine Daten, aber einmal haben wir schon mal was mit dem gearbeitet und was ich weiß benötigt er im Leerlauf 200mA. Die Funktion ist es die Drehrichtung zu steuern indem ich auf einem Port einen Taster betätige ( einen für links einen für rechts). Wenn ein Taster gedrückt wird so soll am anderen Port auf einem Pin ein Signal rauskommen das 5V beträgt und soll so in eine Richtung drehen. Wieso dreht sich der Motor aber ganz kurz und ganz schwach, de rührt sich nur einen halben mm vom Fleck und dann bleibt er stehen. Also er macht nicht mal einen Schritt ( ist ein Schrittmotor ). Die 3,3V an den Tastern sind nur dazu da um ein beim drücken ein HIGH am PIN0 oder PIN1 beim Port-C zu intepretieren. Ich habe mir am Anfang gedacht das der Motor mehr Strom benötigt also dass an VS ( Die Motorspannung ) mehr Spannung anliegen soll. Das stimmt meiner Meinung nach nicht weil, wenn ich zum Beispiel einen Input zum Beispiel den Input 2 nicht am Portpin angesteckt habe sondern der in der Luft hängt sozusagen, läuft der Motor und das mit den eigentlichen 5V. Am Enable PIN wo eigentlich eine PWM sein müsste, habe ich auch von einem Portpin am PortB eine reine Gleichspannung von 5V anliegen, der Motor soll sich einfach permanent drehen. Könnt ihr mir da helfen, suche den Fehler schon 2,5h und finde in einfach nicht, ich verstehe das einfach nicht :S Danke im Voraus
> Wieso dreht sich der Motor aber ganz kurz und ganz schwach, > de rührt sich nur einen halben mm vom Fleck und dann bleibt > er stehen. Also er macht nicht mal einen Schritt ( ist ein > Schrittmotor ). Das klingt für mich nach genau dem was ein Schrittmotor machen würde, wenn man einfach eine Spannung an eine Wicklung anschliessen würde: Einen Schritt. Und das was du da bescheibst, das klingt ganz genau nach einem Schritt. Oder was hast du dir erwartet, was ein Schritt ist? Aber ich bezweifle ehrlich gesagt, dass du da einen Schrittmotor hast. Ein Schrittmotor hat mehr als 2 Anschlüsse.
Kann es sein, dass du da ganz gewaltig den L298, der ein reiner Leistungstreiber (also H-Brücke) ist, mit dem Gespann aus L297 + L298 verwechselst. Ein L297 hat die ganze Logik eingebaut, die die einzelnen Spulen eines Schrittmotors entsprechend durchschalten, so das der Motor dreht. Der L298 sorgt dann für den nötigen Strom. Hast du keinen L297 dann muss dein Programm die Aufgabe dieses Bausteins übernehmen und die einzelnen Spulen eines Schrittmotors (über den Leistungstreiber) durchschalten. Mit dem Setzen eines Ausgansgpins auf 1 ist es da nicht getan. D.h. falls das was du da hast, tatsächlich ein Schrittmotor ist. Wenn der nur 2 Anschlüsse hat, dann ist es keiner.
Es liegt ja Spannung an an dem Motor, also beim drücken von den Tastern da kommt dann an einem Input 0V und am anderen +5V. Der zuckt aber nur ganz kurz. Wenn ich den Motor so am Netzgerät hänge ( wo ich die selbe Spannung anlege ) dann dreht er sich ganz normal. :S
Stefan_im_Stress schrieb: > Es liegt ja Spannung an an dem Motor, also beim drücken von den Tastern > da kommt dann an einem Input 0V und am anderen +5V. Der zuckt aber nur > ganz kurz. > > Wenn ich den Motor so am Netzgerät hänge ( wo ich die selbe Spannung > anlege ) dann dreht er sich ganz normal. OK. Dann ist es kein Schrittmotor. Das wäre also geklärt.
Mein Code: #define ALLOCATE_EXTERN #include "ezusb.h" #include "ezregs.h" void main (void) { int a=0x00000000; PORTCCFG=0x00; PORTBCFG=0x00; OEB=0x07; OEC=0x00; while(1) { if(PINSC&0x01) { OUTB=0x05; } else { OUTB=0x04; } if(PINSC&0x02) { OUTB=0x06; } else { OUTB=0x04; } } }
Und was sagt dein Voltemeter, wenn du einfach mal an den Pins misst? WElche Spannung liegt an INPUT1, welche an INPUT2, welche an ENABLE?
Und mach dein erstes Programm nicht so 'kompliziert'. Der Taster ist schon wieder eine Fehlerquelle, die keiner beim Testen braucht. Erstes Testprogramm
1 | #define ALLOCATE_EXTERN
|
2 | #include "ezusb.h" |
3 | #include "ezregs.h" |
4 | |
5 | void main (void) |
6 | {
|
7 | PORTCCFG = 0x00; |
8 | PORTBCFG = 0x00; |
9 | OEB = 0x07; |
10 | OEC = 0x00; |
11 | |
12 | OUTB = 0x05; // ENABLE und drehen |
13 | |
14 | while( 1 ) |
15 | {
|
16 | }
|
17 | }
|
dann hat man auch beide Hände zum messen frei und muss nicht ständig einen Taster drücken
Das ist es ja, alles stimmt, beim drücken den ersten Tasters liegt an Input1 eine Spannung ( 5V) und an Input2 gar nichts. Umgekehrt genau so. An enable liegt 5V konstant, auch wenn ich keinen Taster drücke liegen da 5V an. So hab ichs im Programm geschrieben. PS: Danke dir für die schnellen Antworten. MFG
Foto vom Aufbau Edit: Bitte so, dass man auch die jeweiligen Versorgungen erkennen kann.
Hallo, benutzt du da einen L298, ist schlecht zu sehen, wenn ja schein deine Pinbeschriftung falsch zu sein. Im Datenblatt ist 2 + 3 Output, nicht 3 + 6. Oder ist es ein L293 ? Schöne Grüße Thomas
Hallo, Fotos sind in 5min da. @Thomas : Ich verwende den l293D. Die Pins habe ich richtig angeschlossen. Wirst du am Foto sehen. MFG
Nein nur der µC wird mit 5V versorgt. Die andern 5V in kommen vom Netzgerät, also Vs ( die Motorspannung ) und Vss ( Logikspannung ) hängen an den 5V vom Netzgerät.
Stefan_im_Stress schrieb: > Hallo, > > Fotos sind in 5min da. > > @Thomas : Ich verwende den l293D. Die Pins habe ich richtig > angeschlossen. Wirst du am Foto sehen. Laut welchem Datenblatt? Den L298 gibts auch im DIP Gehäuse? Wusste ich gar nicht und ich hab dazu auch nichts gefunden.
Laut diesem Datenblatt: http://www.datasheetcatalog.org/datasheet/SGSThomsonMicroelectronics/mXyzuxsr.pdf Ich habe aber eine Idee wieso es sich zuuu schwach oder gar nicht bewegt. Habe an den OUTPUTPINS vom Motortreiber gemessen während ein taster betätigt wird. OUTPUT2 = 0,50V und OUTPUT1= 1,40V. Ich vermute das sich der Motor mit folgender Spannung dreht: 1,40V - 0,50V = 0,90V. Ich vermute das das zu wenig ist, oder liege ich mit meiner vermutung komplett falsch? MFG
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.