PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schrittmotor läuft nur langsam und wird heiss



breznsuezer
03.10.2006, 02:32
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/free/wasauchimmer/PermanentMagnetLeadScrewLinearMotors.pdf

Mein Quellcode sieht so aus:


;*************************************************
;
;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


Dabei treten 2 Probleme auf:
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

Manf
03.10.2006, 10:35
Es bleiben etwa 5W in dem "Stück Würfelzucker" großen Motor. Er wird dadurch heiß. Er ist wohl kaum für Dauerbetrieb mit den Daten ausgelegt.



Formatierte
Programme kann
man im "Code" Fenster
darstellen, wenn man das Blank in der ersten Klammer wegläßt.

Formatierte
Programme kann
man im "Code" Fenster
darstellen, wenn man das Blank in der ersten Klammer wegläßt.

breznsuezer
03.10.2006, 19:35
Hi,

danke für den Format-Tipp.

Mit der Hitze kann ich vorerst leben, lass ihn eh nur zu Testzwecken kurz laufen.

Wie siehts mit der Drehzahl aus. Wieso komm ich über 10 Schritte pro Sekunde nicht heraus? Und was genau heisst im Datenblatt 1400 PPS (Pule per sec.)? Heisst das dass der Motor pro Sekunde 1400 Schritte machen kann?

Gruss

Markus

Manf
03.10.2006, 19:56
Heisst das dass der Motor pro Sekunde 1400 Schritte machen kann?
Wieso komm ich über 10 Schritte pro Sekunde nicht heraus?
Pulses per second, - ja, -

Gute Frage, ein solches Verhalten könnte aufkommen, wenn durch einen Windungsschluß das Magnetfeld bei gleichem Strom sehr geschwächt ist.
Am deutlichsten bemerkt man es beim Messen und Vergleichen der Wicklungswiderstände.
Manfred

breznsuezer
03.10.2006, 20:04
Wundersamer weise hast du völlig recht,
anstatt den angegebenen 10 Ohm aus dem Datenblatt habe ich nur ca 1,0 Ohm gemessen, aber bei JEDER Wicklung (fast) genau 1,0 Ohm.

Habe deshalb angenommen das ist o.k. so, bzw. glaubte (hoffte) dass ich mich einfach bei der Einheit verguckt habe.

Das erklärt dann auch die extreme Wärmeentwicklung.

Vielen Dank nochmal,

Markus