Projektbericht: PLL-Regelung eines DC-Motors mittels Arduino Nano

+A -A
Autor
Beitrag
Hmeck
Inventar
#1 erstellt: 12. Okt 2017, 22:41
"Es gibt nichts Misslungenes, nur zu früh Aufgegebenes", so soll irgendein berühmter Schlauberger mal gesagt haben. Vor über einem Jahr hatte ich bereits versucht, eine PLL-Motorregelung für einen DC-Motor für einen Plattentellerantrieb zu konstruieren. Darüber hatte ich damals auch hier im Forum berichtet. Jetzt habe ich das Thema nochmals aufgenommen, und dieses mal ist es gelungen. Ich möchte Euch daher eine etwas ausführlichere Bildergeschichte von diesem Projekt präsentieren.

Übrigens: ich setze im Plattenspieler-Forum einen kurzen Beitrag mit einem Link auf diesen Beitrag hier, vielleicht könnte es dort auch Manchen interessieren, der sonst nicht hier vorbei kommt.

Nun, es geht los:

Der 1. Anlauf

01-pl_innenteller

Da war dieser schöne alte Plattenspieler. Reichlich defekt hatte er lange Jahre im Keller eines Freundes überlebt. Die Anschlüsse des Motors waren allerdings komplett wegkorrodiert, Thorens hätte bei den feinen Drähten säurefreies Flussmittel nehmen sollen. Dem Plattenteller nebst Lagerbuchse – gestern hatte er, wie man sieht, Geburtstag und ist 45 Jahre alt geworden – hat das alles nichts ausgemacht. Er befindet sich sozusagen in den besten Jahren. Deshalb sollte er einen schönen neuen Antrieb bekommen, PLL-geregelt, versteht sich.

02-pl_reflex-schranke

Natürlich sollte die Ist-Information für die Drehzahl berührungslos und dort, wo die einzig korrekte Stelle ist, nämlich am Plattenteller selbst, abgenommen werden. Eine Reflektorlichtschranke war schnell zusammengebaut und getestet. Die untere, die in Messingblech verpackte sollte durch die Neigung gegeneinander besser fokussieren, was sich aber als eher kontraproduktiv herausstellte. Die Ausrichtung in einer Ebene liefert ein besseres Signal

03-pl_strobo-01

Eine per Laserdrucker auf Folie gedruckte Stroboskopscheibe, auf einer CD befestigt, liefert das Signal, die Reflexions-Lichtschranke sitzt fest auf dem Subchassis. Das Stroboskop ist mittels dreier M3-Schraubbolzen befestigt, die in den Innenteller eingeklebt wurden. Ein bisschen Platz zum Zentrieren habe ich auch gelassen, . Das funktionierte alles auf Anhieb. Mit 2,3 kOhm Vorwiderstand am Sender und 4,7 kOhm am Empfänger erhalte ich eine Amplitude von ca 3,5 bis 4V pp, bei Ub=9V. Bei exakt 100 Hz ist dann die Solldrehzahl erreicht.

Leider hielt die Freude nicht allzu lange an. Es zeigte sich, dass das Material der Reflektor-CD zerbröselte und trotz ebener Auflage Spannungsrisse bekam wie eine dünne Eisschicht im Frühling.

04_strobo

Der Motor ist von Dual, einer von der Sorte, die neben den + / - Anschlüssen noch zwei Pins für einen einstellbaren Widerstand haben, mit dem man die Drehzahl in weiten Bereichen regulieren kann. Das ergibt, je nach Ausführung, eine eher bescheidene als erstklassige Drehzahlkonstanz, die aber deutlich besser ist als den Motor einfach mit konstanter Spannung zu versorgen. Motor-gegen-EMK erzeugt Regelspannung. Eine Standardlösung für unzählige Platten- und Kassettenspieler damals. Ich habe eine Motorhalterung dazu gefertigt, die mit drei recht elastischen Gummipuffern befestigt ist. Diese verrichteten in ihrem vorigem Leben in einem CD-Walkman ihre höchst elastischen Dienste. Das Motörchen wurde damit komplett unhörbar. Zu den schwarzen Flügelchen auf der Riemenscheibe kommen wir später.

05_a_mot_alt

Die erste PLL-Regelschaltung. Die Grundidee war, einen J-FET als steuerbaren Widerstand über ein entsprechendes Widerstandsnetzwerk an diesen Motorsteuer-Anschluss anzuklemmen. Der FET wiederum erhält seine Steuerspannung vom Phasenvergleicher des bewährten PLL-ICs 4046. Als Frequenz-Referenz diente erst einmal ein externer, quarzgenauer DDS-Generator. Mit ein paar Versuchen mit der Zeitkonstante und der Regelverstärkung sollte sich dann bald die PLL-Kopplung mit dem Referenzgenerator ergeben.Im Prinzip funktionierte das auch, mit einem 2. Generator anstelle des Inputs von der Reflektorscheibe konnte ich astrein nachweisen, dass alles richtig gedacht war. Allerdings – praktisch konnte ich auch mit vielen Versuchen nur kurzfristige und sehr instabile Synchronisation erreichen.

05-b_pl_regelung_01-gehtnicht1

Klar, eine Messmöglichkeit jenseits von Oszilloskop und Strobo-Scheibe musste her. Mit der Soundkarte ist schon mal eine prima Hardware dafür gegeben. Leider bietet Audacity zwar vielfältige Auswertungen in seinen Plugins, ein Programm für eine exakte Frequenz-Demodulation habe ich aber dort nicht gefunden.

Also habe ich selbst eines programmiert. Der „Sound“ von der Strobo-Scheibe wird aufgenommen und als WAV-Datei gespeichert. Diese wird in einem Pascalprogramm gelesen und dann anhand der Nulldurchgänge analysiert. Die einzelnen Samples liegen als 2-Byte-Integer vor, immer abwechselnd linker und rechter Kanal, wie lang der Header ist, hatte ich auch schnell ermittelt, schließlich ist das Format hinreichend dokumentiert.

Wenn nun ein Sample größer gleich 0 ist, UND das vorhergehende kleiner war, dann haben wir einen 0-Durchgang. Der zeitliche Abstand zwischen den einzelnen 0-Durchgängen ergibt sich aus der Anzahl der Samples von einem zum nächsten 0-Durchgang.

Ich setze bei der Ermittlung der Periodendauer zwischen zwei 0-Durchgängen aber nicht nur auf die Anzahl der Sample, sondern bestimme auch den genauen Zwischenwert. Annahme: Der Signalverlauf zwischen dem Sample unter und dem über (oder auf) der Null-Linie bildet eine Gerade, was weitestgehend stimmen dürfte. Dann lässt sich aus den Werten der beiden Samples mit simpler Dreiecks-Berechnung der genaue Schnittpunkt mit der Null-Linie berechnen, und zwar als Real-Wert (bzw. Double). Es trifft sich gut, dass die Samples im WAV-File als Integer-Werte vorliegen, denn damit entfällt die Fehlerquelle, dass Werte bei der Abfrage „durch die Lappen“ gehen könnten.

Das Programm bietet nach Eingabe des Dateinamens und Auswahl linker / rechter Kanal außerdem die Möglichkeit, beliebig viele 0-Durchgänge jeweils zu einem einzigen Wert zusammenzufassen, was die Datenmenge reduziert und die Genauigkeit erhöht. Ausgegeben werden die Zeit seit Beginn der Messung und die Dauer seit dem letzten ausgewertetem 0-Durchgang jeweils als ein Werte-Paar.

Dass das Verfahren völlig korrekt funktioniert, konnte ich anhand von im Soundeditor selbst generierten Signalen und auch mit externem Generator verifizieren.

06-strobo-mess-1

So, nun endlich ein paar konkrete Anmerkung zu den Kurven. Aufgenommen wurde die Strobo-Scheibe, auf der Y-Achse sehen wir die Abweichung vom Soll-Wert 100. Es wird hier also jeder 0-Durchgang ausgewertet. Die X-Achse ist auf 1,8 sec. skaliert, was genau einer Umdrehung entspricht. Damit wird sehr deutlich, wie sich die Ungenauigkeit der Strobo-Scheibe pro Umdrehung wiederholt. Mit anderen Worten: Das Ding eiert wie sonstwas. Rein optisch, bei Beleuchtung und mit dem bloßen Auge betrachtet, wird das aber nicht klar.

Es wird auch verständlich, wie in dem enormen Streufeld der Messwerte eine PLL kaum Fuß fassen konnte. (Die schwarze Durchsnittslinie ist rein rechnerisch ermittelt) Ich habe dann noch ein paar weitere Versuche gemacht, die Strobo-Scheibe zu verbessern, neu zu justieren, von einem Kopier-Center ausdrucken zu lassen, mehrere Strobo-Ausdrucke spiegelverkehrt übereinander zu legen – ALLES MURKS! Der beste Versuch war der untere, er wurde ein bisschen nach unten verschoben, damit es sich das nicht überlagert.

07-strobo-mess-2

Endlich wieder ein Bild! Zwei Messungen, diesmal gleichzeitig als Stereoaufnahme von der Strobo-Scheibe und dem Antriebsmotor aufgenommen. So tragisch erscheint es gar nicht, wenn man nur den Motor und nicht den Plattenteller kontrolliert, es gibt keinen nennenswerten Schlupf. Was anderes bleibt auch gar nicht mehr übrig, da ich nicht weiß, wo ich eine Präzisions-Stoboscheibe hernehmen könnte.

08_pl_3

Und jetzt wird auch der Sinn der schwarzen Flügelchen deutlich. Gabellichtschranke liest die aktuelle Drehzahl mit. Eine kleine Überraschung für mich war aber das Verhältnis der Drehzahlen von Teller und Motor, er hätte dem Verhältnis der Durchmesser von Antriebsscheibe und Innenteller entsprechen müssen. So dachte ich. Tatsächlich gibt es eine Abweichung von ca. 7%. Mittels angestrengten Nachdenkens kam ich dann darauf, dass der effektive Durchmesser für den Antrieb nicht an den Oberflächen der Scheiben liegt, sondern irgendwo im inneren des Flachriemens liegt, der die Antreibsscheibe umschlingt. Damit stimmts.

Genug – hoffe, es hat Euch bis hierher interessiert. Wie Ihr seht, sind wir noch längst nicht beim Arduino angekommen. Da müsst Ihr noch ein bisschen Geduld mit mir haben.

Fortsetzung folgt, versprochen!

Hmeck
Hmeck
Inventar
#2 erstellt: 14. Okt 2017, 19:34
So, 47 Aufrufe bis jetzt. Ob es wohl jemand gelesen hat und evtl. sogar interessant fand? Nun, auf jeden Fall:09_pl_pll-test

ES GEHT WEITER

Dies ist einer der letzten Tests mit dem PLL-IC 4046. Es ließ sich scheinbar eine ausreichende Synchronisation erreichen, aber die nun mögliche Langzeitmessungen mit dem oben beschriebenen Programm zeigte, dass dann nach 10 oder 15 Minuten plötzlich Ausreißer kamen im Bereich von ein etlichen %, die man voll als Jaulen hören würde. Es zeigte sich, dass der Motor defekt war – hätte ich auch eher merken können – und irgendwann spielte die eingebaute Regelung verrückt und nichts passte mehr.

Es folgte ine lange Projektpause, dann der

2. ANLAUF

Dann kam ich auf den Arduino und war begeistert, was der alles kann. Der kann nicht nur eine beliebige quarzgenaue Referenzfrequenz synthetisieren, der kann auch gleich eine Motorregelung realisieren. Er hat einen Zugriff auf die vergangenen Mikrosekunden seit Programmstart, das sollte reichen. Leider fand ich im Netz kein Programm für die PLL-Regelung eines DC-Motors, dafür alle Mögliche für Stepper-Motoren.

Also erfand ich selber eine Software dazu, die folgendermaßen funktioniert: Es gibt eine Soll-Zeit und eine Ist-Zeit namens t_soll und t_ist. Der Impulsgeber löst einen Hardware-Interrupt aus. In der zugehörigen Routine wird t_ist festgestellt. Anschließend wird die Differenz zwischen t_ist und t_soll gebildet, aus der direkt die Nachsteuerspannung erzeugt wird. Die neue Soll-Größe wird einfach dadurch erzeugt dass der soll_Zähler um einen festen Betrag von Mikrosekunden hochgezählt wird, der beispielsweise einer Umdrehung entspricht. Für den Fall, dass die Ist-Zeit eine ganze Periode vor- oder nachhinkt, was beim Start oder bei starken Störungen der Fall ist, wird die Soll-Zeit neu gestartet, damit die Regelung wieder eine Chance hat, zu synchronisieren.

10_1-pll-schema

Es gibt noch die Möglichkeit, mehrere Impulse zusammenzufassen, womit z.B. nur ganze Umdrehungen oder auch mehrere ausgewertet werden. Die besten Ergebnisse gab es mit einer Periode, die genau einer Umdrehung entspricht.

Außerdem habe ich einen neuen Motor verwendet, den der Chinamann für kleines Geld schickt.

10_2_pl_mot2_regel

Hier schon mal die komplette Schaltung, bestehend aus Arduino, Op-Amp mit Tiefpass und Schmitt-Triggern, sowie einen Opto-Koppler für die Motorregelung. Zunächst musste aber der Motor mal untersucht werden:

11_pl_mot_sig_01

Er hat 5 Anschlüsse für Versorgungsspannung, die Regelung über externen R und einen nicht weiter benannten Anschluss. An diesem stammt die obere Kurve, die Untere von einem externen Referenzgenerator.

12_pl_mot_sig_02

Nach einem Tiefpass kommt das heraus, was sich dann nach einem Schmitt-Trigger gut genug für den Interrupt-Anschluss des Arduino ist. Und wird dort wie oben beschrieben verwurschtelt.

13_pl_lichtschr

Nun muss die Regelgröße aber auch in den Motor wieder rein. Nach meinen bisherigen Versuchen war ich mir sicher, dass jedwede galvanische Kopplung mit dem Eingang am Motor für die Regelgröße vom Übel ist. Weiß ich denn, ob da drinne irgendeine Differenzverstärker arbeitet, der alles außer einem reinem R richtig übel nimmt? Deshalb der selbstgebaute Opto-Koppler aus LED und LDR. Ein fertiger schied aus, weil die eigentlich alle auf möglichst deutliche Schaltschwelle gezüchtet sind. In dem Komplett-Bild weiter oben sieht man ihn lichtdicht verpackt, zusammen mit den 3 Trimmern um Steilheit / Arbeitspunkt und sowas einstellen zu können.

14_optok_led_ldr

Einen richtig schön linearen Bereich kann man allerdings mit LED / LDR auch nicht erwarten. Vielleicht kann die Kennlinie Röhren-Fans begeistern. Von der Geschwindigkeit her könnte man damit eventuell ein Effektgerät für einen SUB-Bass herstellen

16_pl_helferlein2

Die kleinen Helferlein.

Versorgung der Reflektor-Lichtschranke mit 9V-Block, dann gehts es ab in die USB-Soundkarte. Analyse nach der Aufnahme mit dem weiter oben beschriebenen Programm. Und ein Stecker mit Spindeltrimmer, der einfach zum Vergleich mit / ohne PLL dient.

17_pl_ardu_vorn

Hier sehen wir die ganze Schaltung noch mal vor dem Einbau.

18_m06_teiler1-7

Nicht nur über den Plattenteller, auch über den Motor direkt kann man mittels „Serial.print“ des Arduino Werte gewinnen. In diesem netten Diagramm geht es um den Teiler des Impulszählers am Motor. Aufgetragen ist wieder die Zeit vs. Periodendauer. Es zeigt sich ganz klar, dass die Schwankung bei einer Teilung durch 6 die kleinste Schwankungsbreite entsteht. Das entspricht dann jeweils einer ganzen Umdrehung, obwohl ich nach dem Oszillogramm weiter oben eigentlich den Wert 5 erwartet hätte.

Bei der Diagramm-Erstellung bin ich übrigens inzwischen von der (für diesen Zweick) reichlich umständlichen Tab-Kalkulation auf Gnuplot umgestiegen. Superschnell und enorm leistungsfähig. Vom Arduino die Werte in eine Datei schreiben lassen (wo sie nicht mit der Soundkarte erhoben werden müssen) und dann – Zack – im Diagramm erstellen. 7 verschiedene Messreihen zusammendarstellen? Überhaupt kein Problem, einfach die 7 Dateien in einen Plot-Befehl.

19_ext_versch_frequ

Natürlich ergibt sich die Frage, ob meine Arduino-Sketche, so heißen dort die Progs, überhaupt das tun was sie sollen. Nun, die Frequenz mal nicht vom Motor, sondern von einem externen, quarzgenauen Generator zugeführt, und – linealglatt. Wird wohl stimmen.

20_m2-6

Und was sagt uns dieses nette Bildchen? Hier kommen die Signale vom Motor, aber der ist ungeregelt. Außerdem werden auch hier die verschiedenen Teiler der Motorimpulse ausgetestet. Wir sehen, dass die Teiler durch 2 u. 3 gar nicht funktionieren. Da der Arduino bei jedem zweiten oder dritten Impuls mit der Verarbeitung nicht nachkommt. Somit schwanken die Werte im Verhältnis von 1 : 2 bzw 2 : 3. Was ihn ausbremst, ist übrigens nicht seine eigentliche Aufgabe, sondern die Serielle Ausgabe der Werte. Wenn er sie für sich behalten darf, schafft er auch den Teiler 2, Teiler 1 (also jeden Impuls sofort zu verarbeiten) habe ich nicht ausprobiert.

21_m2-6-normalisiert

Um nun abzuschätzen, welcher Teiler die wenigste Schwankungsbreite erzeugt, habe ich sie auf der X-Achse zusammengeschoben und in das Ergebnis hineingezoomt. Ergebnis: Sie machen, ungeregelt, alle die gleiche Zitterpartie.

22_m04_beide_2

Bleibt jetzt noch die Aufgabe, den günstigsten Arbeitspunkt für den ganzen Kram zu finden. Zu diesem Zwecke habe ich ein Hilfsprog geschrieben, welches den ganzen Ausgansspannungsbereich (anaologWrite von 0 .. 255) so langsam durchläuft, dass Motor und Plattenteller mitkommen können. Damit dann eine Ausgabe von ca. der Hälfte (also 127) verglichen, mit dieser Methode war die korrekte Stellung der Potis dann recht schnell zu ermitteln.

23_m06_pll2_vs_freilauf

Hurra! Die PLL funktioniert! Es geht schön Waagerecht, und wenn ich auf das kleine Helferlein, den Stecker mit dem Spindeltrimmer umstecke, sieht man bestens, dass es ohne PLL schon viel, viel schlechter geht.

Trotzdem, warum sind die Linien so breit, doch noch soviel Schwankung drinne, selbst die viel dünnere, eigentlich einzig interessierende des Plattentellers?

24_m06_pll2_zoom

Hineingezoomt, und – leider gibt es eine recht deutliche Regelschwingung. Sozusagen nach dem Motto: Operation geglückt, Patient tot. Will sagen: Die PLL funktioniert zwar einwandfrei, hat aber zu viel Schwankungen innerhalb der Phase.

Das war der Zeitpunkt, wo ich mich von dem Konzept verabschiedete, die Original-Regelung extern zu verbessern. Und vom dem an sich ganz hübschen Motor des China-Mannes. (Bin eigentlich sicher, man hört die Schwankungen nicht, wenn man den einfach original-belassen betreibt, aber …)

So, eine weitere Fortsetzung soll folgen - mit dem Happy End dann. Bis dahin dürft Ihr mir aber ruhig Eure Meinung sagen - egal ob sie "genial" oder "was hat der denn da fürn Mist zusammengetackert" lautet.

Hmeck


[Beitrag von Hmeck am 14. Okt 2017, 19:36 bearbeitet]
jehe
Inventar
#3 erstellt: 15. Okt 2017, 01:36
keine Sorge, hier wird schon mitgelesen
Auch wenn ich nicht auf der Plattenspieler-Welle mitschwimmen, ist es doch interessant zu verfolgen wie du versuchst das ewig anhaltende und leidige Thema Gleichlaufschwankung anzugehen.
Na ja, ich werde es auf jeden Fall weiter verfolgen und mal sehen zu welcher Lösung du kommst.
Ste_Pa
Stammgast
#4 erstellt: 15. Okt 2017, 04:42

jehe (Beitrag #3) schrieb:
... keine Sorge, hier wird schon mitgelesen


Absolut!

Zumal alles sehr detailliert und aufbereitet dokumentiert ist.


[Beitrag von Ste_Pa am 15. Okt 2017, 04:43 bearbeitet]
ZeeeM
Inventar
#5 erstellt: 15. Okt 2017, 08:37
Interessant finde ich Problematiken in den man
reintappt, die so nicht abzusehen waren, also den Teufel im Detail.
Hmeck
Inventar
#6 erstellt: 15. Okt 2017, 09:26
Vielen Dank für Euer Interesse!
Ich werde nachher mal ein paar weitere Bilder raussuchen und dann den "Faden" weiter spinnen.
Hmeck
Inventar
#7 erstellt: 15. Okt 2017, 13:43
@ Jehe: nö, eine neue Platte würde ich mir auch nie kaufen, wenn, dann Flohmarkt-Funde. Und was ich wirklich höre, habe ich digitalisiert. Aber Plattenspieler-Bau-Fan und Plattenfan sind zwei ganz verschiedene Nummern.

3. Anlauf und Sprung

25_a_bremse

Zum Aufwärmen erst mal ein Bildchen von einem weiteren Helferlein. Schließlich muss so eine Regelung ja auch mal zeigen, dass sie auch was wegregelt, und die Fingerbremse ist nicht besonders gut dosierbar.

25_b-Mot_vs_DDS

Interessehalber noch mal was Misslungenes. Der Quarz zieht unbeirrt seine Bahn, und der Motor macht, was er will.

25_c_DDS_solo

In den selben Plot hineingezoomt, die selben Messwerte, auf den Quarz zentriert. Nun können wir auch die Zappelnummern von Quarzen sehen. Bis zu der Genauigkeit, die beispielsweise einen Funkamateur glücklich machen könnte, ist es noch ein weiter Weg. Für meinen Level hier ist natürlich nicht auszumachen, ob das „digitale Rauschen“ nun vom Arduino oder vom Generator kommt, vermutlich von beiden.

Es war nun mal klar, dass das Konzept mit der eingebauten Original-Regelung fürs Grobe und der PLL für die Feinheiten nicht zu retten ist. Folglich wurden erst mal die Motoren geschlachtet.

26_a_china_mot_demont

Der vom Chinamann ließ sich leicht von seinem Deckel trennen. Mehr Fummelei war es, die Schaltung von den Schleifkontakten zu trennen.

26_b_china_mot_bürste

Hier sieht man mal, warum diese Motörchen so relativ leise sind. Die Bürsten sind mehrfach gefiedert, haben kaum Masse und sind außerdem mit Plastikstreifen bedämpft. Ob ich das Teil heil und ohne Verbiegen wieder zusammen bekomme, weiß ich allerdings nicht.

l26_pl_dualmot_demont

Das Dual-Motörchen sträubte sich zunächst heftiger. Bis ich die komischen Einschnitte, an denen der Deckel mit der Dose verschweißt oder irgendwie verkrimpt war, einfach wegschliff. Schön, dass der Motor als solcher unbehelligt blieb. Noch schöner, dass er neben der Stromzuführung einen eigenen Tacho-Generator mitbringt. Und ließ sich auch leicht wieder zusammenbauen, ohne Regelschaltung. Der Tacho-Gen. erzeugt bei Solldrehzahl ca. 3,5 Vpp reine, unterbrechungsfreie Wechselspannung. Also ist keine weitere Signal-Aufbereitung außer einem Schmitt-Trigger nötig, und ab geht es in den Arduino Int0-Eingang.

Praktischerweise liefert der Ardu auch stabilisierte 5 VDC, womit der CMOS-Hex-Inverter 4009 betrieben wird. (Ja, ich weiß, outdatet, aber ich hab die noch vorrätig, und der 4049 tuts ebenso, ist noch lieferbar) Zwei der Gatter sind als Schmitt-Trigger geschaltet, die Werte: am Eingamg 15 kOhm, die Rückkopplung 150 kOhm, frei Schnauze dimensioniert, passt. Die übrigen Gatter sind dann vielleicht mal für den Tonarm-Lift oder so zu verwenden.

27a_ardu_stromvers

Jetzt ist vielleicht mal Zeit für Schaltbildchen. Keine Lust gehabt, es neu „auf schön“ zu malen, Handskizze muss reichen Als Stromversorger dient ein übriggebliebenes 9 V-Schaltnetzteil, dessen Restwelligkeit erst mal ordentlich verringert wird. Es sind übrigens 3 Dioden eingebaut, was 2,1 V Vorspannung für den Mot. Ergibt und somit den Regelbereich sinnvollerweise einschränkt.

27b_ardu_u_trigger

Die hochkomplexe Schaltung mit dem Ardu. Ich glaub‘, das ist selbsterklärend.

27c_mot_treiber

Der Motortreiber ist so so ausgelegt, dass das Motörchen von 2,1 bis 7,1 V das „analogWrite“ - Angebot tatsächlich auch nutzen kann. Die damit erreichbaren Drehzahlen reichen von ca 16 U/min bis deutlich über 45 U/min am Plattenteller. Leistungsmäßig ist er erheblich überdimensioniert, aber mir könnte ja auch mal ein besserer Motor über den Weg laufen.

27_pl_ardu1

Mal die alte und die neue Platine von unten. Wenn man korrekt lötet, ist das Verfahren sehr sicher und auch änderungsfreundlich. Lieder hatte der 1. Arduino seine Pins V-förmig verbogen, so dass ich Langlöcher fräsen musst, um ihn irgendwie auf die LR-Platine zu bekommen. Das nächste Mal nur Arduinos ohne Kontaktleisten.

28_pl_pll_ist_bereit

Fertig angeschlossen über USB mit Software betankt. Es kann los gehen.

29_regelung_u_Teller

Hier sieht man sehr deutlich, wie die Regelung (blau) sich abmüht, um den Plattenteller(orange) schön konstant zu halten. Bzw dem Motor seine Eigenwilligkeiten auszutreiben. Oder sieht das Ganze nur wegen des Maßstabes so schön gerade aus?

3030_pll_vs_quarz

Nun, in die X-Achse Richtung Plattenteller-Drehzahl hineingezoomt. Und die Quarzreferenz des Arduinos neu mit in den Plot genommen. Erkennbar ist:
- Den Zeit-Step für die PLL (Absolutgeschwindigkeit) muss ich nochmal einstellen.

- Das Quarzsignal weist auch Störungen auf. Diese kommen NICHT von der Software, etwa vom Integer-Überlauf. Laut Doku hat die micros()-Funktion des Ardus auch eine Unsicherheit von 4 µSec. Wenn sich die bei aufeinanderfolgenden Impulsen mal nach oben und mal nach unten auswirken, kann das schon diese „Gliches“ ergeben. Dennoch scheint der Teller das wegzustecken.

Ich vermute sogar, dass das Ergebnis am Plattenteller deutlich besser ist, als dieser als Reflektorlichtschranke getarnte Rauschgenerator anzeigt.


Ich bin mit dem Ergebnis erst mal zufrieden. Werde jetzt (vermutlich) erst mal ein wenig mechanische Bastelei betreiben, Tonarm bauen und so. Danach kann ich ja noch mal eine Runde Feintuning machen.

Grüße, Hmeck
Suche:
Das könnte Dich auch interessieren:
geschwindigkeit eines motors regulieren
timonteo am 12.10.2009  –  Letzte Antwort am 18.10.2009  –  11 Beiträge
PLL 4046
Igel08 am 12.06.2008  –  Letzte Antwort am 12.06.2008  –  2 Beiträge
Arduino Uno Mp3 Player
Technoente94 am 11.04.2016  –  Letzte Antwort am 11.04.2016  –  3 Beiträge
Frage zu Arduino
Cauga am 31.03.2019  –  Letzte Antwort am 03.04.2019  –  2 Beiträge
18650 liion akku mittels dc Konverter laden
MLKart am 30.12.2017  –  Letzte Antwort am 29.01.2018  –  6 Beiträge
Crossfeed mit Regelung
johny123 am 14.07.2008  –  Letzte Antwort am 17.07.2008  –  10 Beiträge
Qualitäts-Verstärker + Aktive Regelung?
Butters_Capt._Chaos am 18.01.2010  –  Letzte Antwort am 18.01.2010  –  3 Beiträge
DC-DC Wandler
jmetzkow am 24.09.2013  –  Letzte Antwort am 27.09.2013  –  14 Beiträge
12,6 Volt ac in 12,6V dc umwandeln
Ralf_K. am 04.11.2006  –  Letzte Antwort am 04.11.2006  –  2 Beiträge
Drosseln für DC/DC Schaltnetzteil
old-DIABOLO am 28.04.2006  –  Letzte Antwort am 06.05.2006  –  14 Beiträge
Foren Archiv
2017

Anzeige

Aktuelle Aktion

Partner Widget schließen

  • beyerdynamic Logo
  • DALI Logo
  • SAMSUNG Logo
  • TCL Logo

Forumsstatistik Widget schließen

  • Registrierte Mitglieder925.731 ( Heute: 1 )
  • Neuestes MitgliedTschoker
  • Gesamtzahl an Themen1.551.073
  • Gesamtzahl an Beiträgen21.537.425

Top Hersteller in Elektronik Widget schließen