Tandberg 10X(D) Umbau Capstanmotor von Original zu Fälschung ...
#1
Die Vorgeschichte zu diesem Thread ist in nachfolgendem Thread zufinden:

10X(D) Capstanmotor

Hier denn jetzt der "Umbau" des Capstanmotors von Original zu Fälschung .....

Da in dem "Vorgeschichten-Thread" die benötigten Daten "lose" aufgeführt sind, zuerstmal die "Basics" nochmals auf einen Blick:

Die Servicemanuals zur 10X(D) schweigen sich hinsichtlich Motordrehzahlen, Tachofrequenzen aus - also nix zu finden .....

Hier hilft nur Rechnen anhand der vorgegebenen Abmessungen Capstanwelle, Schwungscheibendurchmesser, Durchmesser Motorpulley ....

Capstanwellendurchmesser: 5 mm
Capstanschwungscheibendurchmesser: 95 mm
Durchmesser Motorpulley: 34,5 mm

Berechnungsgrundlage ist 19 cm/s !

Umfang der Capstanwelle: 15,7 mm
d.h. für 19 cm/s werden 12,1 Capstanumdrehungen/Sekunde gebraucht
dies entspricht 726 Capstanumdrehungen/Minute

für 9,5 cm/s dann 363 Capstanumdrehungen/Minute
für 38 cm/s dann 1452 Capstanumdrehungen/Minute

Die Motordrehzahlen dann wie folgt:
Durchmessercapstanschwungscheibe / Durchmesser Motorpulley ergibt 2,75

folglich für 19 cm/s dann 726 * 2,75 = 1996,5 Motorumdrehungen/Minute

für 9,5 cm/s dann 998,25 Motorumdrehungen/Minute
für 38 cm/s dann 3993 Motorumdrehungen/Minute

Die Lichtschrankenimpulse pro Sekunde:
Zahnkranz 54 Zacken

daraus ergibt sich 54 * 12,1 = 653,4 Impulse/Sekunde bei 19 cm/s

für 9,5 cm/s dann 326,7 Impulse/Sekunde
für 19 cm/s dann 1306,8 Impulse/Sekunde

Das sind die rechnerischen Werte ! Die Nachkommastellen werden ignoriert !

Damit sind die Anforderungen an den DC-Motor zur Hälfte (Drehzahlbereich) definiert. Ferner stehen die Soll-Werte der Capstan- / Motorumdrehungen fest !!

-------------------------------------------------

Schaltungstechnisch wird der originale Capstanmotor aus einer gesonderten Netztrafowicklung mit 20 Volt AC versorgt. Diese AC-Spannung wird gleichgerichtet, so das nach Gleichrichtung ca. 28 Volt DC im Leerlauf vorliegen. Unter Last dann ca. 24 Volt DC.

Damit steht ein weiterer Motorparameter fest: 24 Volt DC Motor, Drehzahl max. 6000 Umdrehungen/Minute (Sicherheit einkalkulieren, nicht auf Kante bauen ...)
Weitere Parameter sind Stromaufnahme, Laufruhe und Abmessungen.

Gewählt wurde ein Motor mit 24 Volt DC, max. 7000 U/min, Stromaufnahme max. 2 A (Die braucht er nicht real !!! Im Betrieb ca. 500 Milliampere, passt zum Netztrafo) .
Aber Wellendurchmesser 8 mm !! Also kein Original-Motorpulley verwendbar .....Was sich noch rächen sollte ........

Schaltungstechnisch hat Tandberg auf der Motorregelung für den Capstanmotor hier noch ein Feature eingebaut: Eine Pitchfunktion !!

   

Diese muss zwar "extern" realisiert werden, aber schön wäre es ja wenn das beim Umbau nicht verloren geht .....

Wie realisiert sich jetzt hieraus eine neue Drehzahlregelung für den Capstanmotor ??

Mittels µComputer ala Arduino und Co ! Entsprechende Beispiele für passige "Regelsoftware" in Form eines PID-Reglers gibt es ja (wenn MANN sie versteht) ...

Insofern stand das grobe Konzept zur Realisierung des Umbaues fest:

DC-Motor 24 Volt, Spannungsversorgung aus der 20 Volt AC Wicklung, PWM-Ansteuerung Motor, Regelsoftware mittels PID-Regler auf Plattform Arduino, Beibehaltung des original Geschwindigkeitsschalters, externe Pitchfunktion .....

Problem Nummer EINS:
Im Standard erzeugt ein Arduino ein PWM-Signal mit 490 Hz. Was zu Motorpfeifen führen kann ..... also muss die PWM-Frequenz höher sein und somit nicht hörbar.
Diese Frequenz lässt sich zwar ändern, mit dem "unschönen" Nachteil, dass hier direkt ins Register des µComputers geschrieben wird ...... Nö, lass mal sein ..... 
DAS muss eleganter gehen .....
ESP32 und MINI D1 ESP32 haben eine höhere Taktfrequenz und somit können sie "hoch-frequente" PWM-Signale erzeugen OHNE Registerprogrammierung !! Einfach per Software.

Also fiel die Wahl des µComputers auf einen MINI D1 ESP32. Die PWM-Frequenz beträgt jetzt 22 Kilohertz !! Ohne Registerprogrammierung ! Weiterer Vorteil: Der Regelbereich des PWM-Signals wird "feinfühliger", da der zulässige Wertebereich des PWM-Signals erweitert wird.

Problem Nummer EINS gelöst ! Und auch genug Computer-Chinesisch ....

Problem Nummer ZWEI:
Die Lichtschranke an der Capstanschwungscheibe ! Diese erhält ihre Versorgungsspannung aus dem + 27Volt Netzteil der 10Xe. Bedingt durch die Wahl des ESP32 darf aber der Ausgang der Lichtschranke nicht über 3,3 Volt bei High liegen ...... also hier die Lichtschranke getauscht durch ein Exemplar das am ESP32 betrieben werden darf.

Problem Nummer ZWEI gelöst !

Der steinige Weg der Umsetzung:

Im ersten Ansatz den "neuen" Capstanmotor mit einem umschaltbaren PWM-Generator betrieben (also OHNE Regelung, aber PWM-Frequenz 22 khz) um zusehen, ob sich das a) so realisieren lässt und b) weitere Parameter wie Stromaufnahme etc. passen.

Zu a:
Es lässt sich so realisieren ! Der DC-Motor passt in die 10X, Laufruhe ist gegeben, Stromaufnahme überfordert den Netztrafo nicht, PWM-Pfeifen nicht hörbar (dank 22 khz).

Zu b:
Als Problem stellte sich das Motorpulley dar. Unterschiedliche Motorpulley erzeugten entweder ein unruhiges Laufbild oder der Riemen zog sich vom Pulley. Letztlich wurde das Original-Motorpulley an den neuen Achsdurchmesser des DC-Motors angepasst. Jetzt läuft es so wie soll !

An dieser Stelle nochmals ein dickes Dankeschön an Bernd (aka capstan) für die "Aufarbeitung" bzw. Neukonstruktion des Motorpulley!

Also als nächstes die Baustelle Software - Angstgegner bzw. Respekt vor dem Zeug. Zumal C-plusplus hier nicht gerade der "Liebling der Nation" ist ..... eher Fortran95 ....

An dieser Stelle ein Dankeschön an Binse (aka Selbstbauer) für das Überlassen seines Quellcodes für seine Motorensteuerung bei seinen Projekten. Nach Lesen und Verstehen wurde es Licht im Tunnel.

Mittlerweile ist der Software-Prototyp ebenfalls fertig und geht fehlerfrei über den Compiler. Ob er tut wie soll - we will see .....

Also ist jetzt Stand der Dinge:
- µComputer liegt vor
- Lichtschranke ist umgebaut
- Motorpulley wieder original
- Prototyp Software fertig inkl. externe Pitchfunktion
- MOSFET-Treiber Prototyp fertig
- neue Halteplatte für den DC-Motor fertig
- neuer Motor passt ins Gehäuse
- an PWM-Generator (ohne Regelung) funktioniert so wie gedacht

Die nächsten Schritte sind dann alles zusammenbauen und testen ! Zuerst Einzelkomponenten dann im Zusammenspiel.

--------------------------------

An dieser Stelle nochmals ein ganz, ganz dickes Dankeschön an alle Beteiligten - ohne Hilfe wäre die Maschine ein Ersatzteillager geworden !!

-------------------------------

to be continued

beste Grüße

Christian
Zitieren
#2
Ja, ich drücke die Daumen!

Gegen das PWM-Pfeifen sollte man das Signal erst mal durch einen Tiefpass schicken. Zwar hat eine "echte" PWM-Ansteuerung einer Last den Vorteil geringerer Verluste, aber die erzeugte beträchtlichen Hf-Leistung willst du in keinem Hifi-Gerät haben. Auch wenn sie leicht über dem Hörbereich liegt. Und ein passendes LC-Filter zu dimensionieren und zu bauen der das wirklich so gut wegfiltert wie ein simpler Tiefpass, das ist nicht trivial. Während ein aktiver 12 dB-Tiefpass auf vielleicht 50 Hz wirklich alles wegputzt und gegenüber der Motorträgheit nur eine ganz unbedeutende Regelverzögerung bedeutet. Übrigens: Performt dein µP wirklich standardmäßig auf 22 kHz bei PWM-Ausgabe mittels "analogwrite"? Hast du das geprüft? (Selbst wenn er nur 500 Hz macht: mit einem aktiven Filter dahinter gehts auch)

MfG
Binse
Zitieren
#3
Nur mal so nebenbei...

es heißt "Thread" und nicht "Threat"

https://de.wikipedia.org/wiki/Thread_(Internet)
Zitieren
#4
Bei 22Khz aus dem Controller hab ich Bauchschmerzen. 
Ich würde die PWM extern erzeugen und aus dem Prozessor nur die Regelspannung zuführen.
Ist wesentlich einfacher zu realisieren. 

Aber wenn du das so zuverlässig hin bekommst, warum nicht.

Gruß Mani
Besonders gerne repariere ich meine Philips, Braun, Akai und TEAC Geräte Big Grin
Keine Hilfe bei fehlender Rückmeldung
Zitieren
#5
Soderle,

heute mal ein bischen Zeit gehabt (neben anderen Baustellen) und mal mit der Umsetzung angefangen. Sprich Motor montiert und an den externen PWM-Generator angeschlossen.

       

Ergebnis:

Das von Bernd angefertigte Motorpulley läuft super, Motor dreht, Drehzahl lässt sich über den Generator regeln, Riemen läuft ruhig und sauber (JUHU !!!)

Stromaufnahme im Leerlauf (ohne anliegende Andruckrolle) ca. 270 mA, mit anliegender Andruckrolle ca. 380 mA. Passt !!

ABER:
Wird die Geschwindigkeit abruppt umgeschaltet zieht es den Riemen runter ! Ursache ist die PWM. Das Regelverhalten der PWM ist zu schnell für die mechanische Trägheit des Konstruktes (zumindest am externen PWM-Generator). Sprich der Motor geht sofort auf die geänderte Drehzahl und die Capstanschwungscheibe kommt nicht nach ......

Das Problem wird als "Hausaufgabe" für die Software mitgenommen ..... Im Prinzip läuft das ggfs. auf ein "Fading" hinaus ... DAS wäre jetzt nicht das Problem ....

Parallel dazu die "Hausaufgabe" sich in die PWM-Dokumentation und deren Programmierung des ESP32 einzulesen. Weil statt dem klassischen analogWrite() hier statdessen ledcWrite() verwendet wird.

Nächster Schritt ist dann, die Lichtschranke zumontieren. Dann die Maschine sprich Motor auf 19 cm/s einstellen und die Funktion Lichtschranke testen, sprich einmal die Impulse für 19 cm/s auslesen/ermitteln und mit dem gerechneten Werten vergleichen ......

Berechnungsgrundlage ist und bleibt 19 cm/s !

Und dann geht es weiter ..... Alles schön schrittweise .....

Zumindest gehts schon mal so wie gedacht ! Und von diesem nachgefertigten Motorpulley bin ich immer noch begeistert .....

to be continued

beste Grüße

Christian

@BINSE

PWM beim ESP32 auf 22 khz stellen:
const uint32_t PWM_FREQ = 22000; // 22 Khz
const uint8_t PWM_RES = 10; // 10-Bit Auflösung Wertebereich 0-1023

PWM-Pin konfigurieren z.B. PWMPIN
ledcAttach(PWMPIN, PWM_FREQ, PWM_RES);

PWM-Signal auf Pin schreiben
ledcWrite(PWMPIN, 777);

Ich mess das aber nach .... sobald der ESP32 mit dran ist .....
Zitieren
#6
Moin,

das ist doch ein Gleichstrommotor, da könntest du doch ganz einfach durch einen Kurzschluss/kleinen Widerstand eine Bremse einbauen.

Gruß, Piet
Zitieren
#7
Hi Christian,
Welche Lib einbinden für ledcAttach und ledcWrite? Welcher Pin ist als PWMPIN definiert?
MfG,
Binse
Zitieren
#8
Hallo,

die Idee mit dem Widerstand - mal abwarten wie sich das Ganze am PID-Regler verhält. Momentan ist ein PWM-"Generator" dran der feste, schaltbare Duty-Cycle hat .....

ledcWrite und Co. sind eine API (also kein extra include etc. erforderlich) und in der Arduino IDE enthalten. PWMPIN steht als Variable für einen PWM-fähigen PIN am ESP32 ..... Ich nutze hier Pin 25 .

beste Grüße

Christian
Zitieren
#9
So,

die Thematik Lichtschranke bzw. Tachosensor ließ mir keine Ruhe, weil damit steht oder fällt es ...  Also mal mutig dabei ...

   

Mit ein bischen Geschiebe (Anpassen Lichtschrankenhalter) und Schreiben eines "Programmes" für den Arduino ist die Geschichte "vom Tisch". Die Impulse der Lichtschranke werden ausgelesen, stehen somit zur weiteren Verarbeitung mittels µComputer zur Verfügung. D.h. der Tachosensor tut schon mal ......

Ist zwar noch ein bischen "Fine-Tuning" notwendig, aber es tut schon mal ...

Nächster Schritt ist dann, ein Referenzband 19 cm/s mit 1 khz abzuspielen und sich dann die ermittelten Impulse anschauen. Also die zuvor gemachten Berechnungen auf Stichhaltigkeit zu prüfen....

Ach so, der so geschaffene Quellcode für den Arduino wird dann auf den ESP32 portiert ..... Deshalb nicht wundern, wenn hier der Arduino anstelle des ESP32 genutzt wird.

Für das Problem der abruppten Lastwechsel zeichnet sich auch eine Software-Lösung, wenn erforderlich, ab:

Die Ledc-API beinhaltet die Anweisung ledcFade. Mittels dieser Anweisung besteht die Möglichkeit, die Duty-Cycle von einem Startwert hin zu einem Endwert innerhalb eines gesetzten Zeitintervalles ansteigen bzw. absteigen zulassen. Also, alles nur Software .......

beste Grüße

Christian
Zitieren
#10
Respekt, Christian.
Einfach nur toll, wie du die Probleme angehst.
Ich drücke dir die Daumen, dass weiterhin alles klappt und du den neuen Capstanmotor perfekt integriert bekommst.

Diverse 10X Besitzer werden es dir (hoffentlich) danken.

Groetjes, Frank
Hau wech, den Schiet - aber sech mir, wohin


Zitieren
#11
Das wird schon was.
Er geht ein Problem nach dem anderen an.
Auf das fertige Ergebnis freue ich mich schon für ihn.

Gruß Mani
Besonders gerne repariere ich meine Philips, Braun, Akai und TEAC Geräte Big Grin
Keine Hilfe bei fehlender Rückmeldung
Zitieren
#12
SO,

das "wildeste" sollte erledigt sein:

Die Lichtschranke oder auch der Tachosensor !

Im ersten Atemzug wurde eine Lichtschranke aus dem "Arduino-Zubehör" verwendet, die einen Abstand zwischen den Zinken von 10 mm hat. Das funktioniert zwar, erzeugt aber Impulszahlen die zu sehr streuen. Also keine näherungsweisen konstanten Werte .... Das war verbesserungswürdig. Zumal diese Lichtschranke mechanisch nicht so ohne weiteres in die Maschine geht. Das läuft auf einen neu anzufertigen Halter hinaus ...

Die Wahl fiel dann auf eine Lichtschranke CNY 37 bzw. TCST 2103. Hier beträgt der Abstand 3,1 mm und hat den Vorteil, das sie mechanisch in den original Halter geht. Ok, einmal kurz die Schlüsselfeile und passt .... Ist ein vertretbarer Aufwand !

Wobei, das müsste auch mit der originalen Lichtschranke gehen .... Mal schauen ...

Verschaltung dann relativ simpel: 180 Ohm Vorwiderstand für die LED, Lastwiderstand zwischen Kollektor und + Ub 2,2 KOhm, Signalabgriff für den µComputer dann am Kollektor und siehe da der µComputer zählt die Impulse. Das schöne: Läuft mit 5 Volt UND 3,3 Volt - also Thema ESP auch erledigt. Baustellenanzahl minus eins.

Und schon passen die Impulszahlen, wenn auch mit geringen Abweichungen pro Umlauf, aber das ist jetzt tolerabel.

So, dann grob 650 Impulse eingestellt und dann Band mit 19 cm/s und 1 Khz abgespielt und hierrüber die Impulsanzahl eingestellt ...... So dass am Ausgang (LINE-OUT) 1 khz vorhanden sind .....

Also die zuvor gemachten Berechnungen gegenprüfen:

Ergebnis: Für 19 cm/s braucht es 653 Impulse - und die werden geliefert, gezählt und können somit weiterverarbeitet werden ! Also stimmt die Berechnung !

Bei der Gelegenheit dann noch den "Impulsbereich" des Motors abgeprüft, sprich ob er im benötigten Impulsbereich auch zuverlässig dreht. Impulsbereich von 200 - 1600 Impulse dreht er einwandfrei. Somit ist 9,5 und 38 sauber abgedeckt ! 

Ist die Andruckrolle angezogen, so erhöht sich die Stromaufnahme bei 19 cm um ca. 40 mA. Also grob 200 mA Stromaufnahme Motor unter Last .... Alles im grünen Bereich.
Wichtig war, dass der Motor das dreht - und das tut er ....

Die Maschine stört sich auch nicht an dem neuen Motor. Logik läuft wie gewohnt (Vor- / Rückspulen, Play, Stop alles ok). Im Grunde hat die Maschine den Motortausch nicht mitgekriegt.

Die nächsten Schritte sind dann MOSFET-Leistungstreiber, dann die Pitch-Funktion und dann die große Baustelle Software .....

beste Grüße
Christian
Zitieren
#13
Hallo Christian,

ich bin begeistert wie du die Problematik angegangen bist und bisher erfolgreich durchgezogen hast.

Hut ab, Bernd
Zitieren
#14
tolle Arbeit!!

bei mir steht auch eine 10X mit kaputtem Motor
Gruß Ulf

TF-Berlin
Zitieren
#15
Erst mal Danke für die Blumen - aber fertig ist noch nicht .....

Aber bis hierhin schon mal ein Lichtschimmer am Horizont .....

So, dann heute nachmittag mal die "Nebenschauplätze" abgearbeitet. Auf PWM-Leistungstreiber fehlte heute mal die Motivation ....

Die "Nebenschauplätze" :

- Schalterverschaltung
- Pitch-Funktion
- Software dazu

   

Der "Versuchsaufbau" mit
- Lichtschranke (Tachosensor)
- Speed-Schalter
- Schalter für Pitchfunktion
- Poti für Pitchfunktion
- und "HOCHWICHTIG" : 6 Widerstände zur Pegelanpassung bzw. Lichtschrankenbeschaltung ....
- alles am Arduino verklemmt und Software geschrieben .....

Ergebnis: ES LÄUFT !! Fehlt jetzt nur noch PWM-Leistungstreiber und der Softwareanteil PID-Regler .

Zur Pitchfunktion:
Diese ist schaltbar ausgelegt und der Stellbereich des Potis liefert saubere Werte, die nach Umrechnung auf den benötigten Bereich stabil bleiben. D.h. selbst bei Vari-Speed greift dann der PID-Regler. Also "freie" Geschwindigkeit einstellbar, die dann mittels des PID-Reglers konstant gehalten wird. Wesentlich anders hat Tandberg das auch nicht umgesetzt .....

Und bei der Gelegenheit festgestellt, das Speed- und Pitchschalter innerhalb der Software nicht entprellt werden müssen (permanentes Abfragen der Schalter ...). Spart Tipperei ......

Für den Pitch-Regler gilt identisches: Dieser wird permanent abgefragt und erst wenn das Poti "stillsteht" wird dieser Wert an den nachfolgenden Softwareanteil (PID-Regler) übergeben.

Nachfolgend das Code-Beispiel für die Pitch-Funktion:

Code:
// Potiwerte einlesen

poti_wert = analogRead(poti_pin);
    Serial.print("Poti_ROH_wert ");
    Serial.println(poti_wert);
// poti mappen
poti_skaliert = map(poti_wert, 0, 1023, 320, 400);
poti_endwert = constrain(poti_skaliert, 320, 400);
    Serial.print("Poti_SKALIERTER_wert ");
    Serial.println(poti_endwert);
// Arduino Wertebereich 0-1023
// ESP32 Wertebereich 0-4095

Bitte beachten: Bei der Pitchfunktion wird mit Umdrehungen/Sekunde gerechnet und nicht mit Impulse Lichtschranke pro Sekunde !!
Die Impulse pro Sekunde sind auf RPM umgerechnet !!!
Also läuft die Pitch im Wertebereich +/- 10 Prozent der Sollumdrehungen !!

So und jetzt noch den Leistungstreiber und die PWM-Klamotte  ----   aber in aller Ruhe ......

beste Grüße

Christian
Zitieren
#16
Sieht gut aus!
Und macht Spaß, das mitzulesen ...

Freundliche Grüße
Binse
Zitieren
#17
Heuer ist dann "Buchführungstag" - sprich das bis hierhin prototypische Entwickelte mal schriftlich zu fixieren. MANN wird ja älter ....

Also mal die "Nebenschauplätze" in Form von Schaltbildern dokumentiert. Wie sagte mein alter Chef immer: "Gute Doku ist das halbe Leben" ....

   

Im Einzelnen:

Die notwendige +5 Volt-Versorgung für den µComputer wird aus den +27 Volt gewonnen, die von der Netzteilplatine A5 zum Motorcontrolboard A13 gehen. Die benötigten + 24 Volt für den Motor werden dann aus den 20 Volt AC des Netztrafos gewonnen. Also wie im Original die Trennung der Spannungsversorgungen Motorregelung und Motorantrieb. Die Entwickler bei Tandberg haben sich da wohl was bei gedacht .....

Steckverbinder P3 geht im Ist vom Speedschalter zum alten Motorcontrolboard A13. Diese Verbindung wird jetzt einfach mit Pulldown-Widerständen versehen und geht dann an die "Schalt-Pin" des µComputers. Bestehende Verkabelung benutzen ist hier die Intention .....

Die Lichtschranke bekommt eine neue vieradrige Verbindung !!! Im Original ist diese dreiadrig. Somit werden alle Anschlüsse der Lichtschranke zur neuen Motorregelung geführt ! Die Vorwiderstände der Lichtschranke sitzen dann direkt mit auf der Motorregelung !

Die Vorwiderstände der Lichtschranke sitzen aus folgendem Grunde mit auf der Motorregelung:
Im "Standard" werden meistens 10 KOhm als "Lastwiderstand" für den Phototransistor genommen. Das funktioniert auch, aber nur wenn die Lichtschranke als "langsamer Schalter" genutzt wird. Die gelieferten Pegel für Ein/Aus liegen dann bei 5 bzw. 0 Volt. Wird dieses Konstrukt jetzt als Tachosensor mittels Zahnkranz betrieben, so liegen die Pegel für Ein/Aus bei 5 / 2,8 Volt. Und jetzt der Gag dabei: Die Schaltschwelle zwischen High/Low liegt beim Arduino wie auch beim ESP32 bei ca. 2 Volt für Umschaltung High/Low ...... Und für Low kommen jetzt 2,8 Volt ... D.h. es wird niemals LOW und somit werden keine Impulse gezählt !! Das war ein Tag suchen .......

Werden jetzt besagte 10 KOhm auf 2,2 KOhm verkleinert, so sinkt der Spannungswert für "Aus" an der Lichtschranke und es wird auch ein LOW erzeugt und Impulse gezählt !!
Auf den Bolzen komm mal einer ..... Nur zum Wahnsinnig werden ..... Oder anders formuliert: Alles hängt von einem Widerstand ab .......

Die Pitchanschlüsse werden zunächst nur auf einen vierpoligen Steckverbinder auf der neuen Motorregelung geführt. Ab hier kann das dann optional nach Außen geführt werden. Also wie im Original. Hier wird sich die "Eigenart" des µComputers zu Nutze gemacht, das Schaltereingänge des µComputers bei keinem Signal anliegend auf  "LOW" liegen .... Zur Sicherheit wird aber in der Software genau dieser PIN per default auf  "LOW" initialisiert. D.h. erst wenn dieser PIN über die externe Pitch - hier Schalter "Pitch EIN" - auf  "HIGH" geschaltet wird funktioniert die Pitch auch. Und erst dann werden die Spannungswerte des Poti gelesen ..... Aber das ist Software .....

Kurzes Wort noch zu den Pulldown-Widerständen (10 KOhm):
Dadaurch wird erreicht, das bei nicht geschalteten Zustand der Schalter der Pegel am entsprechenden PIN des µComputers verlässlich auf "LOW" liegt. Wird der Schalter geschaltet, so geht der Pegel auf "HIGH" und der Schalter ist aktiv. Und - Nebeneffekt - so werden stabile Schaltzustände gewährleistet und innerhalb der Software brauchts kein Beachten, ob die internen Pulldown/Up-Widerstände aktiviert werden müssen oder nicht. Und es muss sich nicht in der Software mit "invertierender Logik" rumgeärgert werden. Schalter Ein = HIGH und bei Invertierung der Logik wäre dann Schalter Ein = LOW ......

Zielvorstellung ist dann, das alles auf einer Platine samt µComputer und Leistungstreiber zusammenzufassen und letztlich nur noch "Strippen" verdrahten .....

So, jetzt mal schauen wo das Schaltbild vom Leistungstreiber sich hin verzogen hat und dann mal den an das Bestehende "dran-tüdeln" .....

beste Grüße

Christian
Zitieren
#18
Und damit das Wochenende zufrieden abgeschlossen werden kann:

   

Die MOSFET-Leistungsstufe tut auch ......

--------------------------------- Streichen Anfang -----------------
Allerdings mit einem "klitzekleinem" Haken, der lediglich in der Software berücksichtigt werden muss:

Statt wie üblich:

 --- pwmpin, pwmwert sind Variablen ---

analogWrite(pwmpin, pwmwert);  muss der pwmwert wie folgt kodiert werden (nur wenn Invertierung Dutycycle erforderlich):

//KORREKTUR analogWrite(pwmpin, (255-pwmwert));  , falls das Signal mal invertiert werden muss !! //KORREKTUR !!

Aber damit kann man leben !! Alternativ H-Brücke mit L298 .... mal schauen .....

---------------------------- Streichen ENDE ---------------------------

Also, dann in Ruhe mal alles zusammenstecken, austesten und dann Platine bauen .....

Es wird !!

beste Grüße

Christian
Zitieren
#19
Mal eben fix bisserl Zeit gehabt und mal den L298N als Leistungstreiber an den Motor gehängt und das Verhalten zum anderen Leistungstreiber verglichen .....

Fazit:

Der L298 braucht noch zwei zusätzliche Steuerleitungen ( liegt in der Natur der Dinge da eine H-Brücke mit implementiert ist) und kann maximal 2 Ampere verkraften .....

Der andere Leistungstreiber ist ein reiner Leistungstreiber OHNE H-Brücke. Also zwei Kabel und somit 2 Pin am µComputer weniger ..... Und der kann maximal 10 Ampere ab (bei entsprechender Kühlung)  ....

Die Software zeigt keinen Unterschied zwischen den beiden Leistungstreibern auf - und: Das PWM-Signal muss NICHT invertiert werden !! Weiß einer, was das gestern war ....

D.h. es wird der Leistungstreiber von gestern genommen ! Der L298 ist mir persönlich zu dicht "auf Kante", zumal es durchaus nicht abwegig ist, dass der Motor mal richtig Strom zieht und sich der L298 dann in die "ewigen Jagdgründe" verabschiedet .....

Also jetzt das ganze zusammenbauen und testen !!

Die Schaltung des anderen Leistungstreibers ist im beigefügten Anhang Kapitel 5.2 beschrieben. Entsprechende Modifikationen für 24 Volt sind gemacht !! Und er geht auch am ESP32 !! 

beste Grüße

Christian


Angehängte Dateien
.pdf   arduino_driving_power_mosfet.pdf (Größe: 936.96 KB / Downloads: 9)
Zitieren
#20
Weil es einem ja doch keine Ruhe lässt .......

Das Ganze mal zusammengesteckt als "wilder Drahtverhau", also µComputer, Tachosensor (Lichtschranke), Schalter, Pitch-Poti und Leistungstreiber. Also die komplette Hardware !!

   

Die Bildqualität bitte ich jetzt mal zu entschuldigen .....

and here are the results .... :

- Impulse werden gelesen
- Schalter tun so wie sollen
- Pitch-Poti tut so wie soll
- Motor reagiert auf das PWM-Signal

Oder anders formuliert: 

 ****************** DER DRAHTVERHAU TUT WIE GEDACHT !!! *****************

So, bevor die Euphorie überschwappt:

- abruppter Lastwechsel von z.b. 9,5 auf 19 führt zu "Antriebsriemenverlust", sprich er springt ab.

Sprich HIER MUSS die Trägheit der originalen Motorregelung nachgebaut werden.
DAS ist aber ein Softwareproblem und muss dort entsprechend gelöst bzw. beachtet werden !! Lösung haben wir ja ....(ledcfade, bzw. while-Schleife).

D.h. jetzt:
- Werkbank aufräumen
- Platine für die Hardware machen
- dann Platine einbauen und verkabeln
- Software schreiben und dabei viel testen .....

Im Grundsatz funktioniert es so wie gedacht (endlich mal ein Plan der aufgeht ...) , ab jetzt ist alles nur noch Software .....

beste Grüße

Christian
Zitieren
#21
Ein abschließender Test fehlte noch, damit das Software-Schreiben etwas fixer geht:

Die Zuordnung von Impulse/Sekunde zu benötigtem PWM-Wert (sprich DutyCycle):

   

Also kurzerhand die Impulszählroutine genommen und am Ende der Routine den PWM-Wert schrittweise um 5 erhöht, so dass die Impulse/Sekunde dem annäherenden PWM-Wert zugeordnet werden können. Beginnend bei 0 ..... also Motorstillstand ....

Basis ist der Arduino, Wertebereich dann 0 - 255;  für den ESP32 dann diesen Wert grob mal 4 nehmen (Wertebereich 0-1023).

Nebeneffekt: Der Motor dreht verlässlich über den benötigten Impulsbereich von ca. 200 - 1800 Impulse/Sekunde ....

Somit ist die "Hardware" komplett erledigt !!

beste Grüße

Christian
Zitieren
#22
So, dann heute mal "Malen nach Bauteilen" gemacht und die Platine entworfen.

   

Platinenabmessungen: 157 x 80 mm ist somit kleiner als das Original-Board A13 und dürfte dann mit einem Alu-Montage-Blech in die 10X passen (Befestigungspunkte dann die beiden 4 mm Löcher vom Kühlkörper des Board A13).

Die Sensorik (Tacho/Poti Vari-Speed) und Schalter können wahlweise mit 3,2 oder 5 Volt versorgt werden. Die 5 Volt-Versorgung wird aus den 27 Volt gewonnen und die Eingangspannung für den ua7805 dann mittels 5 Dioden 1N4xxx in Durchlassrichtung auf ca. 24 Volt gelegt (alternativ Vorwiderstand). Die 3,2 Volt werden mittels 3 Dioden in Durchlassrichtung aus den 5 Volt gewonnen (war einfacher als Vorwiderstand). Somit ist der maximale Eingangspegel ESP32 von 3,3 Volt sichergestellt ....

LED der Lichtschranke läuft auf 5 Volt, Phototransitor Betrieb mit 5 oder 3,2 Volt möglich. Alternativ kann der Phototransistor fest mit 5 Volt betrieben werden und im Nachgang dann ein Spannungsteiler 10K/20K um auf 3,3 Volt zukommen .....

Spannunsversorgung ESP32 mittels USB-C Kabel aus den + 5Volt .....

24 Volt Netzteil ist mit drauf, ebenso der MOSFET-Leistungstreiber ....

Messpunkte in die entsprechenden Leitungen zum ESP gelegt ....

Beim ESP32 sind nur die Pin beschaltet und "bestückt" die gebraucht werden:
Pin 18 Tachosensor
Pin 19 Schalter Pitch
Pin 25 PWM-Ausgang
Pin 32 Poti Pitch (analoger Eingang)
Pin 33 Schalter 9,5
Pin 34 Schalter 19
Pin 35 Schalter 38
sowie die beiden GND-Pin ....

Dann jetzt mal Platine belichten / ätzen / bohren / bestücken / einbauen / verdrahten .... und dann durchmessen ....

beste Grüße

Christian
Zitieren
#23
Trotz der Hitze mal die Platine gebaut:

   

Alles drauf:

- 5 Volt Versorgung mit Aufbereitung für 3,3 Volt
- 24 Volt Versorgung für Motor
- Spannungsteiler 5 Volt auf 3,3 Volt für Tachosensor (Lichtschranke wird auf 5 Volt belassen und Signal dann über Spannungsteiler abgegriffen)
- Pull-Down Widerstände Schalter
- Pitch Abzweig
- MOSFET-Leistungsstufe
- ESP32
- Messpunkte

Dann jetzt durchmessen und einbauen / testen ......

Und noch ein bischen "Schirmung" um den ESP32 / Leistungsstufe bauen (aus einseitigen Platinenmaterial das auf Masse verbunden wird - irgendwie erscheint das sinnvoll)

Also nur noch Software ...... So der Plan .....

Die Platine ist KLEINER als die ursprüngliche Motorregelung - sollte also problemlos in die Maschine gehen ....

beste Grüße

Christian
Zitieren
#24
Da kannst du ja eigentlich sofort eine kleine Serie auflegen, Christian ?
Sehr, sehr geil ist das !

Groetjes, Frank
Hau wech, den Schiet - aber sech mir, wohin


Zitieren
#25
Ich finde es sensationell und beispielhaft wie Christian, im Gegensatz zu anderen großen Ankündigungen hier im Forum, dieses Projekt angegangen und bisher erfolgreich durchgezogen hat.
Dies ist auch eines der wenigen komplexeren Projekte, welches von Ankündigung bis Ende erfolgreich zum Abschluss gebracht wurde, ich liebe es.

Dazu gehört schon ein gehörig Maß an Ausdauer und Willenskraft und vor allem fundiertem Fachwissen und Umsetzungsvermögen, um trotz Widrigkeiten nicht aufzugeben.
Ich bin vom erfolgreichen Abschluss des Projektes überzeugt und wünsche Christian weiterhin viel Glück, Kraft und alles Gute.

Bernd
Zitieren
#26
Hallo Jungs, 

Bernds Laudatio kann ich mich nur voll und ganz anschließen! Was Christian hier abliefert, 

ist GANZ GROSSES TONBAND-KINO!  thumbsup
Meine Spielzeuge: Revox B77 MK II, Revox A77 MK IV, ASC 6004 S, Tandberg 10X, Tandberg TD 20A, Tandberg 9141, Uher Report Monitor 4200, Uher SG 562
Zitieren
#27
Hallo,

ich danke ganz herzlich für die Blumen, aber noch ist ja nicht fertig ......

Es zeigte sich mal wieder der Unterschied zwischen Theorie und Praxis:

Das "Platinchen" zunächst an die + 27 Volt gehängt und die benötigten Spannungen geprüft:

5 Volt-Zweig mit 4,95 Volt im Leerlauf ok - passt !
3,3 Volt-Zweig mit 4,2 Volt im Leerlauf - das passt nicht, obwohl drei Dioden in Durchlassrichtung davor ...... Was soll das jetzt ???

Leerlauf heißt, es fließt kein Strom durch die Dioden ..... Und somit stimmt der Spannungsabfall an den Dioden nicht .....
Was nun ?? Kurzerhand diese Diodenstrecken mit einem Widerstand belastet und siehe da - mit 3,3 KOhm als "Lastwiderling" stellen sich wundersamer Weise 3,25 Volt im Leerlauf ein ...
Was einem Srom von ca . 1 Milliampere durch die Diodenstrecke entspricht. Aber die Nummer mit belasteten/unbelasteten Spannungsquellen ist ja immer wieder spannend .....

Daraus resultiert jetzt folgendes:

Diese Platine wird jetzt eingebaut und die Funktionen/Zusammenspiel/Software getestet - allerdings OHNE Pitch-Funktion zunächst ....

Dann geht es nochmal an's "Platinenmachen" und die 3,3 Volt-Erzeugung wird mit einem Spannungsregler 3,3 Volt gemacht. Insbesondere vor dem Hintergrund, das in der externen Pitch noch eine "Betriebsanzeigen-LED" drin ist, die nen Milliamperchen brauch - und nicht das genau dann - wenn die Pitch geschaltet ist - die 3,3 Volt absacken ..... (weil höherer Strom durch die Diodenstrecke, damit geänderter Innenwiderstand).

Sozusagen "Final Platinen Release" dann ....

Und für das reine Austesten der Software wird die Pitch nicht benötigt !

So langsam zeichnet sich eine wieder funktionierende 10X ab ......

beste Grüße

Christian
Zitieren
#28
Weiterhin interessant und spannend!
Viel Erfolg,
Binse
Zitieren
#29
Heuer war dann mal "Metall-Tag" :

Als erstes war die externe Pitch dran - die wird zwar momentan nicht benötigt, aber fertig ist fertig

       

Die Pitch ist ein Alu-Gehäuse in den Abmessungen 162 x 102 x 56 mm gewandert, damit die "hochkomplexe und technisch anspruchsvolle" Schaltung da auch rein passt ....

Als nächstes dann Alu-Winkel in den Abmessungen 160 x 80 mm mit 20 mm Biegekante getüftelt. Dann Anpassung für den angedachten Platz gemacht ( Biegekante in Teilen wieder mechanisch entfernt und einen Auschnitt gemacht, damit der Winkel nicht mit der Chassisstrebe kollidiert ........

Dann die "Passprobe" mit montierter Platine und schon mal die Leitungen der Spannungszuführungen ( + 27 Volt, 20 Volt AC ) gesteckt. Das passt schon mal ......

   

Passt rein - mit Luft !!!

       

Und gleich die ToDo-Liste aktualisiert für das "Final Platinen Release":

Platine kann kleiner, Schraubverbinder für Motor um 90 Grad drehen, Siebelko 2200µF nicht mehr axial sondern radial (kommt mit der Höhe hin ...).
Halteblech "vernünftig" machen (Muster ist jetzt ja da ...)

Next Step:

Platine samt Halter noch mal raus, Tachosensor und Steckverbinder P3 anschließen, dann testen ....

Langsam sieht Mann wie es werden soll ..........

beste Grüße

Christian
Zitieren
#30
So, fast der "finale" Schritt ......

   

Tachosensor und Speedschalter (über Steckverbinder P3 - "Altkabel" ) sind montiert und verkabelt. Anschluß eben fix über Adapter gemacht.
USB C Kabel mit dem Rechner verbunden und der µComputer läuft auch schon mal .....

Somit kann der "finale" Schritt starten: Software !! Mal sehen was das gibt .....

Bevor ich mich da jetzt intensiv mit auseinandersetze folgendes:

Der "Drahtverhau" sprich die ganze Testerei erfolgte auf Basis Arduino. Ziel ist aber die Nutzung des MINI D1 ESP32. Das bedeutet jetzt folgendes:

Die "Hardware" - also die Platine unterstützt die drei µComputer Arduino, MINI D1 ESP8266 und MINI D1 ESP32. Deswegen ist da auch dieser "Klimzug" mit den 3,3 Volt implementiert worden. Weil, um das zu ermöglichen, muss folgendes beachtet werden: 
Arduino Eingangspegel an den Pin max. 5 Volt
MINI D1 ESP8266 und MINI D1 ESP32 Eingangspegel an den Pin max. 3.3 Volt

Für alle 3 µComputer sind die Pulldown- / Pullup Widerstände mit je 10 KOhm identisch und fest verbaut. Somit verbleibt nur die Umschaltung (je nach verwendeten µComputer) von 5 auf 3,3 Volt für die Eingangs-/Steuer - Pin. Und das erledigt eine simple Drahtbrücke entweder zu 5 oder 3,3 Volt UND Anpassung des Vorwiderstandes der LED (Betriebsanzeige) in der Pitch.

Der Tachosensor (Lichtschranke) wird fest mit 5 Volt betrieben und je nach µComputer geht das Tachosignal über einen Spannungsteiler (um auf besagte 3,3 Volt zukommen). Dieser Spannungsteiler ist beim Einsatz Arduino überflüssig und er wird dann nicht bestückt bzw. ein Widerstand (10 kOhm) wird gebrückt.

Für die Softwareseite bedeutet das jetzt folgendes:

Arduino benutzt die ganzzahligen Wertebereiche von 0 - 255 für das PWM-Signal und das Spannungssignal der Pitch (diese µComputer sind so frei das sie ein analoges Signal in ein digitales wandeln ... Spart Rechnerei ..)
ESP32 nutzt hierfür 2 unterschiedliche ganzzahlige Wertebereiche, einmal 0-1023 für das PWM-Signal (PWM-Signal 22khz und 10 Bit Auflösung) und 0-4095 für das Pitchsignal.

Aus diesem Grunde (Wertebereiche) erfolgte auch der abschließende "Test" beim Arduino Zuordnung Impulszahl Tachosensor zu PWM-Wert, damit sich für den ESP32 eine "Hausnummer" ergibt (Arduino-Wert * 4) ......

Daraus resultiert beim Einsatz ESP32 eine wesentlich höhere Auflösung und somit vmtl. bessere Regelmöglichkeit ..... We will see .....

Hinsichtlich der Codierung gibt es da noch Unterschiede:
Bei Arduino und MINI D1 ESP8266 wird analogWrite() zur Steuerung des PWM-Pin genutzt, beim MINI D1 ESP32 ledcWrite(). Ferner bietet die API ledc die Möglichkeit mittels ledcFade() das PWM-Signal in einem definierten Zeitrahmen von Wert A zu Wert B an- / absteigen zulassen. Damit wird dann die "Trägheit" der original Motorregelung nachempfunden.

Beim Arduino resp. MINI D1 ESP8266 wird das vmtl. nur über While()-Schleifen gehen ... 

Diese beiden Punkte (Wertebereich und Fade-Funktionalität) sind dann im Code zuberücksichtigen !!! Was zur Folge hat, das es zwei Software-Versionen benötigt. Einmal ESP32 und einmal Arduino / MINI D1 ESP8266 ...... Wenn es nicht sogar 3 Versionen sind .....

BEGINN OFF TOPIC

Eigentlich war ich nur "angekäst" ob des defekten Capstanmotors der 10X und es widerstrebte mir zu tiefst die Maschine als Ersatzteilträger zu nutzen. Nur weil es keinen Motor mehr gibt .... Da muss es doch eine Lösung für geben !
Was jetzt vmtl. bei rauskommt ist eine Art "Universallösung" die sich auch auf andere Maschinen / Anwendungsfälle übertragen lässt und nicht auf die 10X/XD festgelegt ist. Nach den bisherigen gemachten Erfahrungen beschränkt sich der Änderungsbedarf lediglich auf Motor, Anpassung der Motor-Leistungsstufe auf evtl. andere Motorspannung und Tachosensor. Der Software ist es egal welchen Motor sie antreiben soll .............. Hauptsache sie treibt an .......

Ende OFF TOPIC

So, dann gehen wir mal Software schreiben ..........

beste Grüße

Christian
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste