PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unipolarer Schrittmotor



gRaf-eny
19.04.2005, 15:40
Hallo,

Ich muss für die Schule 2 Schrittmotoren steuern, jedoch habe ich nur ein wenig visual basic programmier erfahrung...

Das ist mein Microcontroller: AtMega8
http://www.bildfaenger-film.de/CC1.gif

Ich möchte jetzt über den Pc 0 -> Pc 5 einen unipolaren schrittmotor steuern:

Also rot habe ich an + 24V drann
und die anderen: Schwarz, Braun, Orange Gelb sind an Pc0,Pc1,Pc,2,Pc3

-----------------

Habe jetzt schon sowas probiert, weil ich irgendwas gelesen hab von wegen leitungen a b c d abwechselnd 1 / 0 setzen....



$crystal = 6000000
Config Portd = Input '
Config Portb = Output
Config Portc = Output
'

Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
Config Lcd = 16 * 2

Do

Pinc.0 = 0
Pinc.1 = 1
Pinc.2 = 0
Pinc.3 = 1

Wait 1

Pinc.0 = 1
Pinc.1 = 0
Pinc.2 = 1
Pinc.3 = 0

Wait 1

Pinc.0 = 1
Pinc.1 = 1
Pinc.2 = 0
Pinc.3 = 0

Wait 1

Pinc.0 = 0
Pinc.1 = 0
Pinc.2 = 1
Pinc.3 = 1

Wait 1

Pinc.0 = 1
Pinc.1 = 0
Pinc.2 = 0
Pinc.3 = 1

Wait 1

Pinc.0 = 0
Pinc.1 = 1
Pinc.2 = 1
Pinc.3 = 0

Loop


Naja, also ihr seht -> das ist es nicht wirklich

Also ziel ist es später Poties einzulesen und dann je nach stellung der poties die motoren unterschiedlich schnell drehen lassen...

macrofoto
19.04.2005, 15:46
Hallo,

ich denke mal du hast die Motoren noch nicht angeschlossen, sonst wäre den Mega bestimmt schon kaput !!

gRaf-eny
19.04.2005, 16:13
?? ne also kaputt ist er nicht...
er gibt in nem anderen code ja text auf lcd aus...

*
er gibt so auch fehler aus:


Variable can not be used with set [DDRC] , in File C:\ [...] test.bas
...
You can not write to a Pin register [PINC.1] , in File C:\ [...] test.bas
....

harryup
19.04.2005, 16:55
hi,
den output auf low oder high schalten ist ziemlich witzlos, wenn an der versorgung eines unipolar-steppers 24v hängen, im einen fall (output high) würden dann 19v an der spule anliegen, im anderen (output low) wären's eben 24v, ein magnetfeld steht in beiden fällen allemal.
der avr raucht aber auch in beiden fällen ab, alles über 6v bringt ihm langfristig um.
du müsstest zwischen motor und avr einen treiber wie uln2003 hängen, damit wird's dann was, aber auch nur, wenn der motor max. 500ma betriebsstom je spule zieht. die erf. schutzdioden hat der uln schon onboard.
zu deiner ansteuerung: du bestromst immer 2 spulen gleichzeitig, das funtzt zwar, es werden aber immer nur die 1/2 schritte ausgeführt - aber ohne vollen schritt dazwischen.
im einfachsten fall bestromst du spule 1-4 (1 - 3 - 2 - 4) nacheinander, dann haste vollschrittbetrieb.
für den halbschritt-mode werden noch die steps zwischen den vollschritten angeschaltet (1 - 1&3 - 3 - 3&2 - 2 - 2&4 - 4), während der halben steps, also immer dann, wenn 2 spulen gleichzeitig bestromt werden, muss der einzelne spulenstrom auf 70% abgesenkt werden, dann gibt's einen richtig schönen runden lauf.
grüssens, harry

gRaf-eny
21.04.2005, 13:37
danke! läuft schon!
am m8 liegen auch keine 24 sondern nur 5 volt an!