Forum: Mikrocontroller und Digitale Elektronik Schrittmotor über DMX gesteuert


von Nico (Gast)


Lesenswert?

Hallo,

Ich bin gerade dabei mir ein über DMX gesteuertes Stroboskop zu bauen.
Das Strobo soll noch einen Farbwechsler erhalten den ich über einen
Schrittmotor steuern möchte. Die Ansteuerung der Schrittmotore ist auch
soweit klar. Ich benutze einen 2313, den UART nehm ich fürs DMX und
einen Timer nehm ich für die Strobimpulse der andere währe noch frei.
jetzt weiß ich nur nicht ob es zu Zeitverlusten kommt wenn ich mit dem
zweiten Timer die Schritte für den Motor steuere, und in diesem moment
ein strobimpuls des ersten Timers erzeugt wird.

meine Frage:

a) kann man die Sache mit den Timern umgehen

b) gibt es speziele Treiber für Schrittmotoren denen man z.B. nur
   die Anzahl der Schritte übergibt und um Takt, Anfahren, Bremsen
   kümmern die sich alleine

Danke schonmal im vorraus


Gruß Nico


P.S.  ich schreibe meine Programme in Assempler wäre also nett
      wenn evtl. Quellcode auch in Assempler wäre.

von marco (Gast)


Lesenswert?

Hi,

b) gibt es. z.B. den L297 von SGS Thomson ( http://www.st.com ), der
benötigt nen Takt und die Drehrichtung so weit ich weiß.

mfg marco

von Holger Fürstenberger (Gast)


Lesenswert?

Hallo Nico,

ich verwende für ein Projekt die Treiber PBL3771 in Kombination mit dem
PBM3960. Damit kann man aber den Mikroschritt-Betrieb nutzen, so wie er
bei einer Spiegelsteuerung erwünscht ist. Wenn du sehr 'grobe'
Schritte hast (1.8°) dann geht auch der Treiber oben. Viel Erfolg.

Gruß

Holger

von Oliver R. (Gast)


Lesenswert?

Hi Nico,
ich habe gerade ein ähnliches Projekt am laufen. Ich hab zwar leider
keine Lösung für dich, aber du vielleicht für mich.
Mich würd Interressieren wie du das mit dem DMX empfangen machst????
Schreib mir einfach mal ne mail.Danke im vorraus.

CU
Oliver

von Holger (Gast)


Lesenswert?

Hallo Oliver,

DMX empfangen kannst du ganz einfach mit dem UART. Benutzte doch
einfach Google. Da sollest du ein paar Antworten finden. Ansonsten
schreib mir nochmal und ich kann dir ein paar Seiten nennen oder auch
Lösungen sagen.

Gruß

Holger

von Nico (Gast)


Lesenswert?

Hallo

Danke erst mal für euere Antworten
Der Vorschlag mit der L297, L298 Kombination kliengt recht gut. Hab mir
die Datenblätter runtergeladen und hab da noch ne Frage, es sind dort
noch Anschlüße wo ich nicht ganz weiß wie ich die beschalten soll z.B
sync, home, sense kann da vielleicht mal jemand helfen?
Was passiert eigentlich ich wenn gerade einen Interrupt bearbeite
(Timer der den Motor taktet) und es tritt ein zweiter Interrupt auf
(UART empfängt Daten) gehen mir die dann verloren?


@Oliver

Ich benutze den UART stelle ihn auf 250 kHz, 9 Datenbit, 1 Stopbit
überprüfe dann das 9 Bit ob gesetzt oder gelöscht somit weiß ich ob ein
Reset auftrat. war das der Fall wird eine interne Zählvariable auf null
gesetzt das nächste Byte müßte null sein wenn nicht garnichts machen,
wenn ja Zähler um 1 erhöhen bei jedem weiterem Byte Zählvariable mit
DMXAdresse vergleichen wenn Zählvariable gleich DMXAdresse +1 dann
haben wir unser gesuchtes Byte. Und immer weiter auf das 9 Bit achten
wegen Reset der kann ja auch schon vor 512 Byte`s
eintretten.
Wenn ich mit meinem Code soweit bin stell ich ihn hier rein mir fellt
noch die Adressauswertung da ich mit BCD Schaltern arbeite ist aber
auch fast fertig.

Gruß Nico

von Nico (Gast)


Lesenswert?

Kann mal jemand helfen?

von twice_rock (Gast)


Lesenswert?

lad dir mal das application-note zum l297 runter. da siehst du, wies mit
dem anschließen geht. ist sehr ausführlich beschrieben glaub ich (habs
nur kurz überflogen).

sync und home kannst du eigentlich weglassen (deren beudeutung steht
aber auch im normalen datenblatt).

von mmerten (Gast)


Lesenswert?

@nico
warum denn 9 Datenbit, 8 und 1 Stopbit reichen bei reinen
DMX-Empfängern vollständig. BREAK-Erkennung über FE-Error.

von Nico (Gast)


Lesenswert?

@mmerten

ja das stimmt so gehts auch ich nehm aber meine Variante bin damit ganz
zufrieden.

Nico


P.S. es führen ja bekanntlich viele wege nach Rom...

von anfänger (Gast)


Lesenswert?

geht das mit dem "dmx über uart" auch in bascom?

von anfänger (Gast)


Lesenswert?

???

von Steffen H. (Gast)


Lesenswert?

Hallo Holger,

mich interessiert das auch was Du in Deinem Projkt gemacht hast.
Ich habe vor, eine Scanner Spiegelsteuerung ebenfalls mit dem
Pärchen PBL3771 und PBM3960 zu bauen, da der Siemens TCA3727 ein wenig
umständlich ist. Jedoch sind mir das Pärchen noch ein Rätsel.
Weiß nur das der Controller PBM3960 einen Dateneingang und Strob, CS
Eingang besitzt und irgendwie sogar Positionen auswerten kann. Aber
irgenwie tappe ich noch immer im Dunkeln. Weiß auch noch nicht wo ich
diese IC´s her kriege.

Wäre echt nett wenn mir da jemand helfen könnt....

Mfg Steffen

von Stefan (Gast)


Lesenswert?

@Nico:

Wenn Du 9 Bit einstellst, kannst Du Probleme bekommen, wenn Du einen
schnellen Sender (Mischpult ..) hast. Da der Sender nur 8+1 Bits
sendet, kann Dein Empfänger überfahren werden; er empfängt dann das
Stopbit (=Bit 10), während der Sender bereits das erste Bit des zweiten
Bytes überträgt.

Dieser Fehler ist umso ärgerlicher, weil er Dir lange nicht auffallen
muss (wahrscheinlich macht Dein Sender im Moment immer kleine Pausen
zwischen den Bytes, 4us reichen da schon).

Die Methode von mmerten funktioniert prima, habe ich auch schon so
gemacht.

Stefan

von Oliver R. (Gast)


Lesenswert?

Hmmm...vielleicht könntet ihr uns an euren Ergebnissen teilhaben
lassen.....z.B. mit einem Codebsp.!!!????

CU

Oliver

von Holger (Gast)


Lesenswert?

Hey Hallo,

@Steffen

schau doch mal auf meiner Homepage
(http://www.lj-skinny-development.de) bei den Datenblättern nach. Da
steht eigentlich ziemlich viel drin. Der PBM3960 erzeugt aus dem
Dateneingang eine pos/neg analoge Spannung die du für die Eingänge des
PBl3771 brauchst um Mikrostepping zu machen. Also im Prinzip nur ein
D/A Wandler. Ja stimmt, die Teile sind echt schwierig herzubekommen,
aber ich habe einen Lieferanten gefunden, der allerdings nur an Firmen
liefert. Wieviele würdest du denn benötigen?


Gruß

Holger

von Nico (Gast)


Lesenswert?

Hallo

also hab jetzt alles soweit mal aufgebaut und funzt auch alles echt
gut.Hab mich für nen UCN 5804 als Treiber entschieden da hab ich nur
ein IC und der ist auch billiger als die L297 + L298 Kombi.

@anfänger
Ich denke mal schon, das wird auch in bascom laufen hab mich nur noch
nie mit bascom beschäftigt aber wenn du dort den UART benutzen kannst
sollte das kein Problem sein.

@Stefan
Also laut DMX512/DIN müssen zwei Stopbit gesendet werden.Ich hab jetzt
schon mehrere DMX-Geräte gebaut die arbeiten genauso und hatte da bis
jetzt noch nie Probleme mit. Aber vielleicht gibts ja Sender die nicht
ganz richtig "senden" ???

Gruß Nico

von mmerten (Gast)


Lesenswert?

alle DMX Standards DMX512/1990, DMX512A/2000 und DMX512/DIN schreiben
als Datenformat 1 Start, 8 Daten und 2 Stopbits zwingend vor. Ebenso
sind die minimale Länge von BREAK und MAB klar definiert. Also ein
Sender mit nur 1 Stop Bit ist nicht DMX512 konform!

von Stefan (Gast)


Lesenswert?

Oh sorry, das mit den 2 Stopbits hatte ich nicht mehr im Kopf.
Dann müsste es also auch mit Deiner Methode 9 Bits + 1 Stop
funktionieren.

Stefan

von Nico (Gast)


Lesenswert?

Kein Problem!

von A. Arndt (Gast)


Lesenswert?

Hallo,

ich würde gerne einen DMX-Dimmer mit AVR steuern, 6x1000W, finde aber
kein pass. Material zur Steuerung, sollte ja nur Kanal und Leuchtstärke
sein...

Gruss
A. Arndt

von Holger Fürstenberger (Gast)


Lesenswert?

Schau doch mal bei http://www.theaterzentrum.at/technix/index_html Da
wurde schon ein kompletter Dimmer mit AVR aufgebaut. Allerdings mit 12
Kanälen. Aber die Schaltung kannst du ja einfach ändern.

Grüße

Holger

von Steffen (Gast)


Lesenswert?

Hallo Holger,

ich hab das jetzt aufgegeben mit dem PBL3771(NJM3771) und dem PBM3960
(NJU 39610, da die auch viel zu teuer sind. Die kosten pro Stk so ca.
10 EUR !!! Hab jetzt, glaub ich jedenfalls, eine Alternative gefunden.
TRINAMIC ( www.trinamic.de ) hat da ein paar tolle Lösungen gefunden.
 Die haben einen Controller mit Integrierten Motortreiber entwickelt,
der (fast) keine Wünsche mehr offen lässt.
Er nennt sich TCM222 und kann bis zu 800mA treiben.
FUTURES:
- I2C Schnittstelle
- Rampengenerator
- Schutzschaltungen für Motor und Elektronik
- StatusFlags
- Controller- und TreiberParameter frei programierbar
- u.v.m.
Und der Kostet nur 8 EUR
Bin gerade dabei das Datenblatt zu übersetzen. Wenn ich soweit bin,
stelle ich es gerne ALLEN zur Verfügung. Wird aber noch so ca. eine
Woche dauern.

Gruß Steffen

von Holger Fürstenberger (Gast)


Lesenswert?

Hallo Steffen,

wieviele und ich welcher Stückzahl brauchst du denn die Treiber? Soweit
ich mich noch erinnern kann hab ich damals dafür keine 5 EUR pro Stück
gezahlt. Bräuchte demnächst wahrscheinlich auch nochmal welche, da sich
mein Projekt noch etwas vergrößert hat, da würde eine Sammelbestellung
dann doch wieder Sinn machen. Aber meld dich einfach mal nochmal. Hab
mir dir Datenblätter noch nicht angeschaut, aber wenn die was taugen,
wären die wohl auch ne interessante Lösung...

Grüße

Holger

von Steffen (Gast)


Lesenswert?

Hallo Holger,

Ich weiß jetzt nicht genau von welchen IC´s du hier schreibst.
Aber wenn Du den TMC222SI meinst, dann kommen wir bestimmt ins
Geschäft. Hab den bis jetzt nur bei www.schuricht.de geordert.

Gruß Steffen

von Holger Rüschenschulte (Gast)


Lesenswert?

Frage (evtl. off topic, sorry):
Ich möchte einen Schrittmotor steuern (wollen hier wohl alle),
allerdings möchte ich dazu keinen Rechner benutzen, sondern eine
Steuerung über Taster/Schalter. Hintergrund: Zur Drehung eines
Plattenkondensators für einen Antennentuner (Amateurfunk), ohne
Endanschlag, ohne Auswertung (Stellung etc). Nur rechts/links eventuell
noch schnell/langsam, also 2, maximal 3 Taster. Ich bin schon auf
diverse Controller gestoßen (Samotronic 101, TCA 3727 und die hier
beschriebenen), allerdings hilft mir das nich besonders viel weiter, da
ich keine Ahnung von der Ansteuerung habe. Schrittmotoren stehen
diverse zur Verfügung. Wie ich herausgefunden habe wohl bipolare, da
mit 5 Anschlüssen aus HP DeskJet-Druckern. Ach so, billig solls
natürlich auch sein!
Angebot:
Wer mir entscheidene Hinweise geben kann (Schaltplan?), den kann ich
mit ebenselbigen Motoren zuschmeißen, da wir dir Drucker entsorgen.

Hinweise bitte an: dg1rue[at]n44[dot]de

Danke für's lesen, bin auch schon wieder weg.   ;-)

von Steffen (Gast)


Lesenswert?

Hallo Holger,

Ich Kann Dir da die Steuerung von ELV empfehlen. ( www.elv.de )
Die bieten eine Schrittmotorsteuerung mit schon programmierten GAL an
der kleine Schrittmotoren (unipolar oder bipolar) mit Phasenströmen bis
500mA treiben kann. Diese Steuerung verwendet einen Taktimpuls für
Schrittgeschwindigkeit (Taktgenerator, gibt es bestimmt auch bei ELV
oder bei Conrad), einen Schalter für Voll/Halbschrittbetrieb und einen
Schalter für die Drehrichtung. Das ist glaub ich die einfachste
Variante für Dein Vorhaben. Kosten von ca. 11Eur bei ELV.

Übrigens suche ich noch Schrittmotoren mit einer Auflösung von min. 1,8
Grad/Schritt, besser noch 0,9 Grad, Phasenstrom von 400 .. 800mA,
oder einen R_phase = 7 .. 20 Ohm.

Vieleicht kannst du mich ja damit totschmeißen ;-)
Bau ach meistens Drucker dafür auseinander. Einen passenden hab ich
sogar schon gefunden, und der war in einem EPSON.

Schönen Gruß noch

Steffen H.

von A. Arndt (Gast)


Lesenswert?

@Holger

Hallo,

einen Dimmer habe ich schon, der kann auch DMX, aber die Steuerung der
Leitungen mit einem AVR wäre interessant, Sourcecode in Schema- oder
Basicart.

Gruss
A. Arndt

von Steffen (Gast)


Lesenswert?

Hallo,

Ich hab es nun endlich geschafft den Datasheet für den Schrittmotor
Controller/Treiber TMC222 zu übersetzen und in ein einigermaßen gutes
deutsch zu bringen.

Noch kurz an Holger F.

Ich hab es hinbekommen mit den Daten auslesen mit den GetFullStatus
Befehlen. Lag doch an meiner I2C Software.
Also wünsch ich Dir noch maximale Erfolge.

Wenn es klappt schicke ich das Datenblatt als Dateianhang auf 4
Einträge verteilt hinterher. Ansonsten schreibt mir ne e-mail wenn Ihr
den deutschen Datasheet für den TMC222 braucht. Ich schick ihn dann
zu.

Gruß Steffen H.

von Neu (Gast)


Lesenswert?

Hallo Steffen,

ich habe auch ein TCM222 rum fliegen und den will ich jetzt benutzen.

Deine übersetzuung und auch vielleicht den Code können sehr hilfreich 
sein.
ich benutze einen 8515 und glaube, dass die die Anpassung wird schneller 
gehen als alles neu zu schreiben.

(Es ist etwas lange hier aber vielleicht hast du noch die Sachen)

Gruß

von Alexander B. (lpc900)


Lesenswert?

Hallo,
ich bin auch gerade dabei einen Schrittmotor über DMX zu steuern.
DMX empfang läuft soweit jetzt habe ich das problem das ich ja meinen 
Schrittmotor erst mal Referenz fahren lassen muß das ist soweit auch 
kein problem nur jetzt habe ich ja das probelm das ich meinen 
schrittmotor von dem Referenzpunkt aus Absolut positionieren soll wie 
kann man so etwas realiesieren ich benutze einen L293 ich muß ja die 
Bitmuster übergeben.

Vielleicht kann mir ja jemand helfen .

achso ja ich benutze ein LPC932 ahnlich 8051

Code ist in C geschreiben.

Danke schon im vorraus.

gruß Alex

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.