Hallo ich steuere mit meinem PIC einen Schrittmotor ich habe ihn so programmiert, dass wenn man Taster1 gedrückthält der Motor links herum läuft und bei Taster2 rechts herum. Sobald man den jeweiligen Taster wieder loslässt hört der Motor auf sich zu drehen. Mein Problem ist, dass nach dem ich ihn ein paar mal in beide Richtungen gedreht habe, gibt er geräusche von sich und ich kann ihn nur noch in die zuletzt verwendete richtung drehen wo liegt mein problem? ist es ein programmierfehler oder ist mein motor kaputt??
Aha, da ist er wieder. 1. Geruchstest. 2. Auch wenn er nicht nach Amp. stinkt bedeutet das gar nichts. Hänge ihn ab ud miß die Motorwicklungen mit einem Multimeter nach. Die Widerstandswerte müssen annähernd gleich sein, weder hochohmig, noch beinahe 0 Ohm. 3. Mir ist in früherer Yeit 3x der L297 Schrittmotortreiber kaputtgegangen... Ändere dein Programm so ab, daß du gaaanz langsam mit dem Multimeter an den Ausgängen der Treiberstufe die Schaltstufen mitverfolgen kannst. 4. Ich weiß jetzt nicht auswendig ob der 16F84 einen Watchdog hat. Aber das wird wohl eher nicht das Prob. sein. Und ohne Veröffentlichung deines Quellcodes kann dir eh niemand helfen (wiederladen des Timer-Registers zur Impulserzeugung vergessen? Interrupt-Flag zurückgesetzt?). 5. Bist du sicher, daß der PIC noch 100% funktioniert (Induktionsspannung...)? Kannste mit dem PIC wenigstens noch ne LED blinken lassen? Joachim
also der PIC funktioniert noch einwandfrei ich habe andere programme getestet hier ist mein programm: main call INIT ;Beginne mit der Initialisierung des PICs A0 btfss Taster0 goto A1 goto Linkslauf A1 btfss Taster1 goto A0 goto Rechtslauf goto A0 ;******************************************************************** ; Linkslauf bei gedrückter Taster0 Betätigung * ;******************************************************************** Linkslauf L1 call Phase1 ;Springe in Phase1 btfss Taster0 return ;springe zurück goto L2 ;gehe zu L2 L2 call Phase2 ;Springe in Phase2 btfss Taster0 return ;springe zurück goto L3 ;gehe zu L3 L3 call Phase3 ;Springe in Phase3 btfss Taster0 return ;springe zurück goto L4 ;gehe zu L4 L4 call Phase4 ;Springe in Phase4 btfss Taster0 return ;springe zurück goto L1 ;gehe zu L1 ;******************************************************************** ; Rechtslauf bei gedrückter Taster1 Betätigung * ;******************************************************************** Rechtslauf R1 call Phase2 ;Springe in Phase1 btfss Taster1 return ;springe zurück goto R2 ;gehe zu R2 R2 call Phase1 ;Springe in Phase2 btfss Taster1 return ;springe zurück goto R3 ;gehe zu R3 R3 call Phase4 ;Springe in Phase3 btfss Taster1 return ;springe zurück goto R4 ;gehe zu R4 R4 call Phase3 ;Springe in Phase4 btfss Taster1 return ;springe zurück goto R1 ;gehe zu R1 ;******************************************************************** ; Setze Phase 1 * ;******************************************************************** Phase1 bcf I11 bcf I12 bsf PH1 call delay bsf I11 bsf I12 return ;******************************************************************** ; Setze Phase 2 * ;******************************************************************** Phase2 bcf I11 bcf I12 bsf PH2 call delay bsf I11 bsf I12 return ;******************************************************************** ; Clear Phase 1 * ;******************************************************************** Phase3 bcf I11 bcf I12 bcf PH1 call delay bsf I11 bsf I12 return ;******************************************************************** ; Clear Phase 2 * ;******************************************************************** Phase4 bcf I11 bcf I12 bcf PH2 call delay bsf I11 bsf I12 return ;******************************************************************** ;* ENDE * ;******************************************************************** END ;Ende
Viele goto's drinne... aber meinetwegen. Ansonsten ist der Code ok (zumindest das was du veröffentlicht hast und ohne die Hardware zu kennen (weil immer noch kein Schaltplan dabei, gell?). >gibt er geräusche von sich und ich kann ihn nur noch in >die zuletzt verwendete richtung drehen Wird der Motor in die andere Rchtung denn bestromt? Sprich: merkt man Vibrationen wenn man an den Motor langt oder die Welle festhält? Wie gesagt, nimm einen Multimeter und kuck genau nach was die Ausgänge der Treiberstufe machen.
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.