Guten Morgen meine Lieben,
ich möchte ein Recheck-Signal um einen konstanten Faktor erhöhen.
Das Eingangssignal welches ich erhöhen möchte reicht von etwa 1kHz bis
10kHz.
Dieses Signal möchte ich vorerst um den Faktor 4 erhöhen (nach einigen
Tests später vielleicht um den Faktor 9 bis 10).
Habt ihr Ideen wie man das ohne großen Aufwand und wenig Geld
hinbekommt? Ich kenne mich nicht sehr mit der gesamten Thematik aus,
jede ausführtliche Hilfe wäre großartig.
FYI worum es eigentlich geht:
Bei einem 3D-Drucker möchte ich das STEP-Signal, welcher die
Schrittmotoren antreibt erhöhen. Der Schrittmotor soll mit einem
Servomotor ausgetauscht werden. Der Encoder des Servomotors ist aber
leider sehr genau. Er verlangt bei meinem bisherigen Aufbau 13000
Step-Signale um sich eine Umdrehung zu drehen. Der alte Schrittmotor hat
lediglich 3200 Steps verlangt. Der Prozessor des Druckers, kann aber nur
eine maximale Step-Frequenz von 10kHz erzeugen. Wenn ich mit gleicher
Geschwindigkeit Drucken möchte brauche ich aber etwa eine Frequenz von
40kHz. Wenn ich noch schneller drucken möchte brauche ich eine Frequenz
von bis zu 90-100kHz. Deshalb dachte ich wäre es gut zwischen
Drucker-Ausgang und Motor-Eingang eine Art Multiplier einzubauen,
welcher die Frequenz um einen bestimmten Faktor erhöht. Idealerweise
sollte dieses Signal so schnell wie möglich erhöht werden, aber ich
schätze einige 100ms wären noch verkraftbar.
Vielen Dank für jede Anwort
Liebe Grüße
maxim
Du kannst vielleicht auch das Encoder Signal vom Motor durch 4 teilen.
Alles andere wie PLL oder Frequenzvervielfachung wird vermutlich zu
Positionsfehlern führen.
pegel schrieb:> Du kannst vielleicht auch das Encoder Signal vom Motor durch 4 teilen.
hilft nicht bei folgendem Problem:
maxim schrieb:> Der Prozessor des Druckers, kann aber nur> eine maximale Step-Frequenz von 10kHz erzeugen. Wenn ich mit gleicher> Geschwindigkeit Drucken möchte brauche ich aber etwa eine Frequenz von> 40kHz.pegel schrieb:> Alles andere wie PLL oder Frequenzvervielfachung wird vermutlich zu> Positionsfehlern führen.
das wird aber leider stimmen, je nachdem wie schnell sich die Frequenz
ändert, aber besonders bei den Beschleunigungsrampen wirst du Probleme
bekommen (der Stepper wird sehr wahrscheinlich von 0Hz aus anlaufen).
Die PLL müsste sehr schnell (Sekunden oder eher weniger) mit anlaufen
und bis 0Hz Eingangsfrequenz verarbeiten können.
wenn du programmieren kannst wäre ein µC eventuell die Lösung
- miss die Zeit vom ersten zum Zweiten Impuls
- gib vier Pulse (nach dem zweiten Impuls) in derselben Dauer aus
-> sollte je nach Implementierung bis zum Stillstand gehen
-> nur ein Step Verzögerung
-> Step count wird nicht verfälscht
- eventuell reset nach einigen Sekunden(bruchteilen)(motor steht etwas
länger) + Einschaltverzögerung einbauen, falls es damit Probleme gibt
du könntest den Eingang als Interrupt schalten, mit einem schnellen
Timer (>100kHz) die Zeitdauer messen, und mit einem zweiten Timer den
Ausgang regeln, es wird etwas Jitter geben der sich aber im Mittel
ausgleicht, da das Ende des ersten Pulses der Start des Zweiten ist.
theoretisch würd nen Tiny85 oder so reichen (der kann einen Timer über
PLL mit 64MHz takten, Stichwort fast PWM).
mit nem Atmga/STM32/etwas größerem PIC könntest du sogar mit 2-3 Steps
Verzögerung eine richtige Rampe rekonstruieren, aber das wird wohl kaum
nötig
Vielen Dank für eure Hilfe.
Die Idee mit den Frequenzteiler hört sich für mich erstmal plausibel an.
Warum rechnest du dabei mit Problemen @K.S. ?
Im Groben ist die Motorsteuerung wie folgt aufgebaut:
Wenn ein Step-Signal reinkommt wird ein Zähler hochgezählt. Der Motor
wird in Drehung versetzt. Jetzt gibt der Motor ein Encoder-Signal
zurück, welcher diesen gleichen Zähler um 1 reduziert.
Mit µC Programierung kenne ich mich nicht aus, würde mich freuen wenn
das vermeidbar wäre ;)
Christian S. schrieb:> das kannst Du mit 4024 und 4046 machen. PLL ist normalerweise für> dauerhafte Signale geeignet. Der Einschwingvorgang dürfte hier stören.
was macht nen Counter und eine PLL besser als nur eine PLL? Wenn das
wirklich funktioniert würde es mich interessieren wie.
maxim schrieb:> Die Idee mit den Frequenzteiler hört sich für mich erstmal plausibel an.> Warum rechnest du dabei mit Problemen @K.S. ?
Aufgrund deiner Aussage dass der Controller nur 10kHz ausgeben kann, du
aber gerne 40kHz hättest für die gleiche Geschwindigkeit wie früher.
Ansonsten sehe ich keine Probleme, das wäre sogar recht einfach mit
Logik ICs aufgebaut.
Ist hier momentan ein Hotspot von Frequenzteilern und -erhöhen? :-))
În jeder vernünftigen 3D-Drucker-Firmware kann man die Steps/Länge
eingeben. Die funktionieren ja meist mit irgend einem Arduino. Was ist
es denn für einen Drucker?
Gruss Chregu
K. S. schrieb:> Aufgrund deiner Aussage dass der Controller nur 10kHz ausgeben kann, du> aber gerne 40kHz hättest für die gleiche Geschwindigkeit wie früher.> Ansonsten sehe ich keine Probleme, das wäre sogar recht einfach mit> Logik ICs aufgebaut.
Ja ich denke auch, dass das die einfachste Lösung wäre, Danke ;)
Christian M. schrieb:> În jeder vernünftigen 3D-Drucker-Firmware kann man die Steps/Länge> eingeben. Die funktionieren ja meist mit irgend einem Arduino. Was ist> es denn für einen Drucker?
Es ist ein Anycubic i3 Mega, wahrscheinlich die 8-Bit Variante. Das
Problem ist, dass es nicht mein Drucker ist und ich nicht auf die
schnelle nachschauen kann.
Ja was man einstellen kann ist die steps/mm-Rate. Was ich ausgerechnet
habe ist, dass ich 400 Steps für einen Millimeter brauche. Bei einem
Schrittmotor brauch man aber nur etwa 90 Steps. Möchte ich jetzt die
gleiche Geschwindigkeit wie vorher muss der Prozessor 4-mal schneller
Steps generieren.
maxim schrieb:> FYI worum es eigentlich geht
Immerhin.
So können sich die Leute dutzende von Antworten sparen, mit PLL oder
RateMultiplier.
maxim schrieb:> Vielen Dank für jede Anwort
Vergiss se, falscher Ansatz.
Die vernüftigste Lösung: Den Umbau ganz sein lassen.
Es kommt bei solchen Dingen auch auf die Motordynamik an, die du nicht
anpassen kannst.
Ausserdem bin ich ziemlich sicher, dass der ganze Umbasu nur auf
Hörensagen basiet, weil irgendwi irgendjeamd einfach mal dummgeschwätzt
hat.
So was wie 'druckt viel schneller' wenn man nur hunderte investietr.
maxim schrieb:> Ja was man einstellen kann ist die steps/mm-Rate. Was ich ausgerechnet> habe ist, dass ich 400 Steps für einen Millimeter brauche. Bei einem> Schrittmotor brauch man aber nur etwa 90 Steps. Möchte ich jetzt die> gleiche Geschwindigkeit wie vorher muss der Prozessor 4-mal schneller> Steps generieren.
das ist aber was anderes als
maxim schrieb:> Der Prozessor des Druckers, kann aber nur> eine maximale Step-Frequenz von 10kHz erzeugen.
so wie ich das jetzt verstehe ist das mit dem Teiler wirklich das
einfachste, das sollte entweder mit einem Counter (nach 4 counts
resetten) oder ein paar Flip-Flops erledigt sein.
/2 mit einem Flip-Flop, also nimm zwei hintereinander:
https://www.electronics-tutorials.ws/counter/count_1.html
Michael B. schrieb:> Ausserdem bin ich ziemlich sicher, dass der ganze Umbasu nur auf> Hörensagen basiet, weil irgendwi irgendjeamd einfach mal dummgeschwätzt> hat.> So was wie 'druckt viel schneller' wenn man nur hunderte investietr.
Bei allem respekt, wenn man keine Ahnung hat und nichts produktives zu
dem oben benannten Problem beitragen kann kann man sich auch so einen
Kommentar sparen.
K. S. schrieb:> so wie ich das jetzt verstehe ist das mit dem Teiler wirklich das> einfachste, das sollte entweder mit einem Counter (nach 4 counts> resetten) oder ein paar Flip-Flops erledigt sein.
Danke das werde ich demnächst mal ausprobieren.