Wie funktioniert Mikroschritt mit ULN2803?

  • Moin,


    hier scheint ja schon einiges an KnowHow über Selbstbaugeräte zusammengekommen sein, daher meine Frage.
    Wie krieg ich mit den einfachen ULN2803 Schrittmotor-Treibern eine Mikroschritt-Steuerung hin?


    Kurz zur Vorgeschichte:
    Ich hab von ebay einen defekten Showtec-Rotoscan ersteigert. Die Beschreibung gab nicht viel her, deshalb hab ich mal auf gut Glück drauf geboten und das Gerät auch recht günstig bekommen. "Defekt" erwies sich jedoch als leichte Unterrteibung, der Scanner wurde offensichtlich auf den Lüfter gestellt und längere Zeit so betrieben. Die hintere Platikabdekung war völlig verzogen und eine Lichtschranke bereits angeschmolzen bis die Thermosicherung des Trafos dem Sput ein Ende gesetzt hat.
    Also Trafo abgewickelt und Thermosicherung getauscht, Lüfter gewechselt und Endkappe halbwegs wieder zurechtgemacht.
    Das Gerät lief dann auch wieder, aber 1. nicht vernünftig da die Elektronik scheinbar auch etwas abbekommen hat und 2. war das ein Rotoscan der 1. Version und der hatte keinen Shutter. Der Anschluss vom Shutter war zwar auf der Platine vorgesehen, aber in der Firmware nicht implementiert.
    Ich hab dann bei highlite.nl nachgefragt, ob ich die Chips mit neuer Firmware noch bei denen als Ersatzteil beziehen kann, aber die Kiste wird nicht mehr produziert und Support gibts keinen mehr.
    Daher war der Scanner nicht wirklich kompatibel mit meinem anderen Rotoscan und der fehlende Shutter nervte schon ordentlich.


    Daher reifte der Entschluss die Elektronik rauszuwerfen und neu zu machen. Das hat auch soweit gut funktioniert, einen Shutter hab ich auf dem Weg auch mit eingebaut, ich bin nur mit der Spiegelbewegung noch unzufrieden.
    Der Rotoscan steuert den Spiegel im Mikroschrittbetrieb an und ermöglicht so schön weiche Spiegelfahrten.
    Mein Halbschrittbetrieb erzeugt merkliches ruckeln.
    Ich hab noch reichlich Speicher und Rechenzeit im Prozessor (AVR Mega32) frei, es muss irgenwie möglich sein, die Schrittmotoren mit diesen Treibern im Mikroschritt-Modus laufen zu lassen. Die origianl-Elektronik kann das auch und die Treiber-Schaltung hab ich davon übernommen.
    Hat jemand mit sowas mal Erfahrung gemacht? Wie ist das gemeint mir Sinus-Signal auf die Ausgänge legen? Ich hab ein wenig mit PWM rumexperiementiert aber zu keinem Ergebnis gekommen. Ich bin Maschinenbauer und kein Programmierer, daher liegt mir die Sache nicht so ganz.


    Ich hab die Schaltpläne und Firmware mal mit angehängt, die Schaltung lässt sich sicher auch als Grundlage für andere Eigenbau-Projekte verwenden. Sie bietet 6 Ausgänge für unipolare Schrittmotoren je mit max. 500mA, ein 16A-Schaltrelais und drei Eingänge für Gabellichtschranken. DMX-Adresse und Pan/Tilt-Invert werden über drei 7-Segmentanzeigen und Taster eingestellt, die befinden sich auf eine separaten Platine.
    Die Platine wurde mit Target gezeichnet, die Firmware mit Bascom geschrieben.


    Danke


    Marco

  • hoi


    microstepping hat erstmal nichts mit dem treiber zu tun !!
    das microstepping wird in der ansteuerung erzeugt. dabei wird das signal mit pwm geregelt.
    um keine leistung zu verlieren kann man dann noch den strom begrenzen oder erhöhen(für jeden zwischenschritt einzeln).


    hier kannste mal lesen--->http://www.stepperworld.com/Tutorials/pgMicrostepping.htm


    henne hat schon mit microstepping gearbeitet.


    mfg maik


    ps. hast du die fw selber geschrieben?? wenn ja kannst du mir evtl. helfen !:rolleyes:
    ich suche jemanden der mir ne fw schreibt auf basis der obigen transceiver-karte von henne.
    die soll aber nicht direkt signale (phasen) fürn stepper ausgeben, sonder nur ein takt(clock) + richtung(cw/ccw) ausgeben.
    mehr dazu findest du hier

  • moin,
    irgentwie funktioniert das ja mit dem Mikroschritt, auch wenn der ULN nur ein Transistorverstärker ist.
    Ich hab mal nen bischen rumprobiert, komme aber auf keinen grünen Zweig.
    Ich habe auch nirgentwo ein vollständiges Ablaufdiagramm gefunden, welche Phasen wann wie bestromt werden müssen.


    Tippfehler:
    Kannst du kurz zusammenfassen was du da haben möchtest?
    Wie man da http://www.dmxcontrol.de/wiki/Pan/Tilt_Eigenbau lesen kann funktioniert es ja schon.


    Nachtrag:
    Da steht ja auch das deine / Hennes Steuerung auch Achtelschritte erzeugen kann. Ist das geheim oder kann man das irgentwo nachlesen?

  • also:D



    Hier sind Werte für 20 Mikroschritte:
    spule1 : spule2
    PWM[0] 100 : 0
    PWM[1] 100 : 29
    PWM[2] 100 : 45
    PWM[3] 100 : 56
    PWM[4] 100 : 65
    PWM[5] 100 : 72
    PWM[6] 100 : 81
    PWM[7] 100 : 88
    PWM[8] 100 : 95
    PWM[9] 100 : 98
    PWM[10] 100 : 100
    PWM[11] 98 : 100
    PWM[12] 95 : 100
    PWM[13] 88 : 100
    PWM[14] 81 : 100
    PWM[15] 72 : 100
    PWM[16] 65 : 100
    PWM[17] 56 : 100
    PWM[18] 45 : 100
    PWM[19] 29 : 100


    wie du das nachher machen musst, weiss ich auch nicht?? henne tut nichts verraten:D

  • zu meienm projekt:rolleyes:


    ich habe mit henne seiner schaltung nen scanner gebaut!!
    das geht auch perfekt !!
    nun will ich aber nen MH bauen, jetze muss ich einen kompletten kopf bewegen.
    als untersetzung hab ich zahnriemenscheiben 12-->96 zähne gewählt = 1-->8 .
    trotzdem reicht die leistung von henne seiner schaltung nicht aus die masse zu bewegen (anfahrt+bremsen) wenn die masse mal in bewegung ist dreht sich's ja.
    also muss eine stärkere variante her. und das wäre diese hier. das ist nur ein microsteptreiber, der braucht nun noch ein dmx empfänger!!


    aslo was sollte die firmware können??


    1. takt(step)(ausgang)
    2. richtung(cw/ccw)(ausgang)
    3. anfahrt + bremsrampe
    4. referenzfahrt
    5. endanschlag(eingang)
    6. 16bit(pro motor 2 dmx kanäle)
    7. 2 motoren steuerbar


    also alles was henne seine kann, bis auf die ausgänge!! henne produziert die schritte in seiner fw.
    das kann ich aber nicht gebrauchen, ich brauche halt nur ein takt & richtungs signal(für jeden motor).


    mfg maik


    ps. ums einfach zu halten wäre es toll wenn man gleich henne sein platinen layout benutzen könnte :D
    da hab ich noch ne menge von

  • Klingt lösbar.
    Nen 8515 hab ich auch noch irgnetwo in der Ecke liegen.
    Wird allerdings nicht innerhalb von zwei Tagen fertig sein, muss bis 15.8 mein Bacherlorarbeit abgegeben haben und hab noch ne Veranstaltung von der Dorfjugend am Wochenende. (Bischen Werbung: http://www.highland-games-lochtrop.de )


    Nochmal zu den Mikroschrittproblem: Mir ist aufgefallen das die Originalfirmware auch immer nur auf Halbschritten stehen bleibt und nur für die Bewegung Mikroschritte verwendet. Scheinbar sind das keine stabilen Zustände.
    Also werde ich jetzt mal nen bischen mit einer Pulsbreitenmodulierung rumbasteln.


    mfg Marco

  • das ihr alle eure schritte selbst generieren wollt ;)
    ich setz immernoch auf L298 + L297, die haben spannungsmodulation und schrittgenerator in einem. ;)


    microschritt ansich gibts ja nicht. Auch ein Achtel oder viertelschritt ist nicht wirklich stabil. Im prinzip gibts ja nur 1er schritte, sprich von einem Magnet zum Anderen. Halbschritt heißt schon das dazwischen schon beide magneten an sind. dadurch wird der Motor in der mitte gehalten, er schwebt sozusagen. microschritt ist jetzt einfach nurnoch das ändern des verhältnis der magneten. Das problem ist das in diesen Übergängen der Magnetische Fluss nicht genau definiert werden kann und es somit nicht 100% sicher ist das der Rotor in der position stehen bleibt und vorallen hält.


    hennes firmware gibts ja zum downloaden, im thread von tippfehlers MH. er hat quasi feste wait-times zum an und abfahren der schritte, also beschleunigung. das ist alles


    ich würd dir lieber ne übersetzung empfehlen als microstepping, da das Haltemoment doch stark varieren kann.


    gruß
    basti

  • @ Marco_HSK


    zu den rampe ist noch zu sagen das sie mehrere tausend schritte lang sein muss!! am besten einstellbar ähnlich wie bei hennes fw.


    grund ich werde 16tel schritt verwenden & einen stepper mit 200 schritten, zu dem die unersetzeng von 8:1 und der kopf soll sich 360° drehen.
    somit ergeben sich 200x16x8=25600 schritte für eine volle umdrehung des kopfes, um den kopf nun langsam zu bremsen werden wohl 2000 schritte nötig sein


    mfg maik

  • zu meiner µ-Step FW:
    Ich sitze nicht auf dem Code. Wenn jmd. sich ernsthaft mit dem Thema beschäftigen möchte, mir mit den ANs weiterhilft und auch vielleicht was Interessantes für den AVR geschrieben hat, helfe ich gern konkret weiter. Das ist hier blos bislang nur zwei Mal geschehen...


    zu der Rampenlänge:
    Für WZ-Maschinen sind möglichst lange Rampen oder eine Echtzeitberechnung sicher günstig - hier sieht das anders aus:
    DMX streamt irgendwelche Positionen:
    Ich habe über eine endlose Rampe voll hochbeschleunigt und fahre mit voller Geschwindigkeit eine weit entfernte Position an.
    Nun setze ich die Sollposition in unmittelbarer Nähe zur Istposition.
    Der Motor schießt über das Ziel hinaus und fährt die Rampe bis Null runter.
    Der Motor beschleunigt in Gegenrichtung und bremst rechtzeitig vor dem Ziel ab.


    Das Fahrverhalten wird also ziemlich schwammig. Mit meinen 50 Werten gehe ich einen Kompromis ein zwischen höherer Geschwindigkeit und einer Schwammigkeit, die Ihr scheinbar noch nicht bemerkt habt :D


    Die Geschichte ist halt nicht einfach!


    Viele Grüße,
    Hendrik

  • Naja die Beschleunigung kann nur so groß sein wie es das polare Trägheitsmoment zulässt, ansonsten fängt der Schrittmotor an die Schritte zu verlieren. Der große Strahler mit der schweren Fresnellinse macht die Sache ja auch nicht einfacher.
    Ich muss allerdings gestehen in Regelungstechnik nicht wirklich gut ausgepasst zu haben.
    Die Lösung mit der Fahrradnarbe .. kreativ ;)


    Wegen dem uC-Code werd ich mich nächste Woche mal melden, ich würd das auch mit irgentwas gut machen, Platinen oder Frontplatten gravieren oder Frästeile machen.


    mfg Marco

  • @Marco:


    Platinen und kleine Frästeile hören sich super an - da bin ich bislang noch auf meine Uni angewiesen.


    Mit dem Trägheitsmoment hast Du natürlich Recht: T=J*a
    Das Problem des Überschwingens löst Du so aber nicht.



    Viele Grüße,
    Hendrik

  • Newly created posts will remain inaccessible for others until approved by a moderator.

    The last reply was more than 365 days ago, this thread is most likely obsolete. It is recommended to create a new thread instead.