-         

Ergebnis 1 bis 5 von 5

Thema: Unipolarer Schrittmotor

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    19.04.2005
    Ort
    Blender
    Beiträge
    36

    Unipolarer Schrittmotor

    Anzeige

    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


    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...

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    06.02.2005
    Ort
    Bonn
    Alter
    60
    Beiträge
    17
    Hallo,

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

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    19.04.2005
    Ort
    Blender
    Beiträge
    36
    ?? 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
    ....

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2004
    Ort
    durmersheim international
    Alter
    57
    Beiträge
    159
    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
    der kopf ist rund damit das denken seine richtung ändern kann...

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    19.04.2005
    Ort
    Blender
    Beiträge
    36
    danke! läuft schon!
    am m8 liegen auch keine 24 sondern nur 5 volt an!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •