Hallo miteinander,
ich bräuchte etwas Unterstützung.
Situation: RN-Control 1.4 mit einem Schrittmotor ( PL15S-020 von NMB) aus einem CD-Laufwerk, Motor ist an Motoren-Pins (über L293D) angeschlossen.
Datenblatt Schrittmotor:http://www.fh-augsburg.de/~mgoebel/f...nearMotors.pdf
Mein Quellcode sieht so aus:
Dabei treten 2 Probleme auf:Code:;************************************************* ; ;Autor: Göbel Markus ; ;Schrittmotor PL15S-020 an RN-Control V1.4 über L293D ; ;Stand: läuft halbwegs ; ;Datum: 02.10.06 ; ;************************************************** ;*****includes .include "c:\m32def.inc" ;*****Namen**** ;*****INIT***** .org 0x0000 rjmp main ;starting at 0x00 .org 0x0060 ;*****Main***** main: ldi r16, low(RAMEND) out SPL, r16 ldi r16, high(RAMEND) out SPH, r16 immer: rcall fahr rjmp immer ;*****Subr. fahr fahr: ;I/0 Register init ldi r16,0xFF out DDRB,r16 ;Port B as output out DDRC,r16 ;Port C as output ;A1=PC6 A3=PC7 B1=PB0 B3=PB1 ;step 1 fah_lo: cbi PORTC,6 ;-++- sbi PORTC,7 sbi PORTB,0 cbi PORTB,1 rcall wait ;step 2 cbi PORTC,6 ;-+-+ sbi PORTC,7 cbi PORTB,0 sbi PORTB,1 rcall wait ;step 3 sbi PORTC,6 ;+--+ cbi PORTC,7 cbi PORTB,0 sbi PORTB,1 rcall wait ;step 4 sbi PORTC,6 ;+-+- cbi PORTC,7 sbi PORTB,0 cbi PORTB,1 rcall wait ret ;*****Subr. wait wait: ;ca 1 700 000 cycles ldi r20,0x03 ;ca 0,1 sec. --> 10 steps/sec out_lo: subi r20,1 breq wa_end ldi r21,0xFF in_lo: subi r21,1 breq out_lo ldi r22,0xFF iin_lo: subi r22,1 breq in_lo rjmp iin_lo wa_end: ret
1: Der Motor wird sehr schnell sehr heiss, auch bei der schnellsten Drehzahl die ich hinbekomme (was das 2. Problem ist). Ich habe gelesen, dass die Dinger heiss werden, aber so schnell und so heiss? Im Datenblatt steht nix über ne max. Temperatur drin. Anfassen kann man ihn jedenfalls nach 2 Sekunden nicht mehr.
2: Die schnellste Drehzahl, die funktioniert, sind ca. 10 Schritte pro Sekunde. Wenn ich versuche, den Motor schneller laufen zu lassen, indem ich die wait-Schleife weniger Durchläufe machen lasse, bewegt sich das Ding gar nicht. Laut Datenblatt sollen da 1400 PPS (soll das 1400 Schritte pro Sekunde heissen??!) gehen.
Ich habe ausser die INx vom L283D und DDRx von den entsprechenden Ports nichts belegt.
Könnte das Problem daran liegen, dass ich die einzelen Leitungen (A1,A3,B1,B3) nacheinander schalte, und so immer (wenn auch nur SEHR kurz) eine falsche Schaltfolge entsteht?
Ist es möglich, dass ich das Ding einfach (trotz mehrfacher Prüfung) falsch angeschlossen habe? Würde sich dann überhaupt irgendwas bewegen?
Wenn nur das Hitzeproblem wäre, würd ich mir denken, alles is schon o.k. irgendwie, aber das mit der niedrigen Drehzahl macht mich nachdenklich.
Wer weis was??
Danke schonmal,
Gruss
Markus
*edit: Quellcode besser Formatiert, danke für den Hinweis







Zitieren
Lesezeichen