Kram 2021

Anderer Kram:

Drehzahlmesser

Für eine Arbeitsspindel einer Fräsmaschine soll ein LED-Drehzahlmesser her. Ordentlich hell, einigermaßen große Ziffern, Abtastung Zahnrad mit 9 Zähnen mittels Reflexkoppler, Hallsensor o.ä. Neubau, etwas maßgeschneidertes gibt's nicht so recht. Ein paar VQE13 lagen noch herum, die weg müssen.

Variante 1

Gecharlieplexte Anzeige, um sich Mikrocontroller-Pins zu sparen. Durch Vertauschen der Zonenfolgen der Transistoren, der Speisespannungs- und Masseschiene und Anpassung der Firmware ließe sich die gleiche Schaltung auch für VQE14 (gemeinsame Anode) bzw. VQE24 (grün) verwenden. Nicht anwenden lässt sich diese Schaltung für mehrstellige Multiplexanzeigen mit vorgegebener Matrix, etwa dieser oder jener.
Schaltplan und Platine (1)

Firmware fehlt noch.

Hinweis: Es gibt keinen Helligkeitsverlust durch Charlieplexing! Im Internet herumgeisternde Anleitungen, wonach nur 1 LED gleichzeitig leuchten kann sind schlichtweg falsch! Strombegrenzungswiderstände werden genauso angeordnet wie beim konventionellen Multiplexing, nur bei antiparallel verschalteten Zweifarb-LEDs geht das nicht. Die Emitter der entgegengesetzten Transistoren kann man verbinden oder unverbunden lassen, hier bspw. Netz K1 mit A0.

Variante 2

Siehe auch: Digitalvoltmeter vierstellig mit ATtiny13 und V40511. Statt ATtiny13 ein ATtiny24 mit Resonator, fertig ist der genaue Drehzahlmesser, der auch den Dezimalpunkt steuern kann. Der V40511 erspart die vielen npn-Transistoren und reduziert die nötige Anzahl an Mikrocontroller-Pins. In diesem Fall eignen sich auch mehrstellige Multiplexanzeigen mit vorgegebener Matrix, etwa diese oder jene. Hauptsache „gemeinsame Katode“.

Schaltplan und Platine (2)

Man kann hier sogar die Strombegrenzungswiderstände R1..R7 weglassen, da die VQE13 ohnehin recht gefräßig sind und der V40511 nicht allzu ergiebig. Eine Helligkeitseinstellung erfolgt dann sinnvollerweise durch Variation der Betriebsspannung oder Anpassung der Firmware (kürzere Leuchtphasen).

Variante 3

Schließlich wurde ich vor vollendete Tatsachen gestellt, neue LED-Anzeigen und unpassende Platine vermutlich aus der Elektronik-Apotheke. Da die Anzeigen trotz ihrer Größe nur wenig Strom benötigen, kann auf die Hi-Side-Transistoren verzichtet werden. Jeder Mikrocontroller-Ausgang liefert so 24 mA, auf die 4 Anzeigen verteilt sind es durchschnittlich 6 mA. Auf Transistoren auf der Low-Seite kann nicht verzichtet werden, diese leiten für Portpins unzulässige 6 mA × 8 = 48 mA ab, möglichst ohne stromabhängigen Spannungsabfall. Dazu ein Wirbelstromsensor mit der Bezeichnung Turck 4609840. Immerhin, dieser kann 3 kHz, will aber 10..30 V. Also besser einen Festspannungsregler und eine Verpolschutzdiode spendiert, für alle Fälle. Mit seinem „NPN-Ausgang“ kann dieser direkt mit dem Mikrocontroller verbunden werden. Anzeige und Sensor können so gemeinsam bspw. von 24 V oder besser 12 V gespeist werden. Die maximale Stromaufnahme der Anzeige liegt bei 50 mA, das macht im Festspannungsregler IC2 bei 24 V maximal 1 W Verlustleistung (immerhin).

Schaltplan und Platine (3)

Oh, Hoppla, Reinfall Reset-Pin: Seine Treiberstärke liegt nicht bei 20 mA, sondern bestenfalls bei 2 mA. Da musste noch ein npn-Transistor T4 dazu, um die Dezimalpunkte ordentlich leuchten zu lassen.

Firmware: Beim Einschalten meldet sich die Firmware mit einem kurzen Lampentest, d.h. es wird kurz 8.8.8.8. angezeigt. Die Frequenzmessung benutzt den 16-Bit-Timer1 mit Capture = das hardwaremäßige Festhalten des Zählerstandes mit einer Signalflanke an ICP = PA7. Mit dem Überlaufinterrupt, nach einem festen Zeitintervall von etwa 150 ms, nimmt die Rechenroutine die Anzahl der Capture-Ereignisse und subtrahiert den Capture-Wert der vorhergehenden Frequenzmessung vom letzten Capture-Wert. Mit diesen beiden Zahlen lässt sich in einer Multiplikation (32 bit × 16 bit ⇒ 64 bit) und Division (64 bit ÷ 32 bit ⇒ 32 bit 32 bit) für einen weiten Frequenzbereich die Frequenz mit hoher Genauigkeit berechnen. Wohlgemerkt, ohne auf das Messergebnis 1 s warten zu müssen. Dadurch erfolgt die Aktualisierung bei Eingangsfrequenzen bis hinunter zu 8 Hz mit einer festen Aktualisierungsrate von 7,5 Hz entsprechend 120 ms. Bei kleineren Frequenzen bis 1 Hz fällt die Aktualisierugsrate auf die Eingangsfrequenz, bei noch größeren Pulsabständen wird    0. angezeigt. Der Messbereich erstreckt sich von 1 Hz bis 180 kHz bei einem Anzeigebereich von   6.0 U/min bis (theoretisch) utopischen 2000. kU/min, praktisch 6000. U/min bei 900 Hz Eingangsfrequenz. Hieran sieht man dass die Änderung der Zähnezahl des Aufnehmers (hier 9) in weiten Grenzen leicht möglich ist. Um Wettlaufsituationen zu vermeiden muss der Capture-Wert in der Capture-ISR ausgelesen werden, gemeinsam mit dem Hochzählen des Flankenzählers. Die Divisionsroutine der Laufzeitbibliothek (64 bit ÷ 32 bit) verbraucht einen Großteil des Flash-Speichers und der Rechenzeit, aber beides ist selbst auf dem allerkleinsten ATtiny24 noch reichlich. Um das Registerretten in den ISRs nicht ausufern zu lassen, arbeitet die rechenintensive Routine im Hauptprogramm. Dieses wartet in einer for(;;) sleep_cpu();-Schleife auf das Zählerüberlauf-Ereignis. Die Frequenzanzeige erfolgt

Timer0 kümmert sich um das Multiplexen der LED-Anzeige und ist durch Charlieplex nur etwas komplexer. Auf bis zu 9 Dezimalstellen kann die Anzeige erweitert werden ohne weitere Leitungen und damit einen größeren Mikrocontroller zu benötigen. Um auf den Capture-Interrupt schnell reagieren zu können läuft die Anzeige-ISR bei freigegebenen Interrupts. Da bei extrem hoher Interruptlast (über 180 kHz) durch den höher priorisierten Timer1 der Timer0 nicht mehr zum Zug kommt und sich der Anzeigewert einbrennen könnte, sorgt der Watchdog in diesem Fall für den Mikrocontroller-Reset.

Subwoofer JBL SCS138

Symptom: „Brummen und Bratzeln“. Erhöhte Leistungsaufnahme: 50 statt 10 W. Typisch für HF-Selbsterregung, man hört davon nur die Grundfrequenz. Dazu gibt es einen (nicht wirklich zielführenden) Beitrag auf mikrocontroller.net.

Fehlersuche: Auf dem Oszilloskop konnte ich am Eingang der Endstufenplatine eine vagabundierende HF sehen. Alle übrigen Spannungen sahen normal aus. Ein Schaltplan stand zur Hilfe. Bei der Suche wurde festgestellt, dass sich beim Abstecken der Vorverstärkerplatine (7-poliger Stecker) ein normales Verhalten einstellte. Ein Audiosignal konnte am Steckverbinder Pin 1 (gegen Masse Pin 4; fies: Das ist nicht die andersfarbige Ader) eingespeist werden, welches ohne Fremdgeräusche wiedergegeben wurde. Deshalb habe ich lange, sehr lange damit zugebracht, den Fehler mit Funktionsgenerator und Oszilloskop auf der Vorverstärkerplatine bzw. auf der daran angesteckten Potenziometerplatine zu suchen. OPVs ausgelötet um den Signalweg zu unterbrechen: Keine Abhilfe. Fies: IC-Fassungen passen nicht! Ebenfalls fies: Bereits beim Anstecken des 7-poligen Steckers mit 2 komplett abgelöteten Signalleitungen (eine zur Speisung, eine als Feedback für den Begrenzer) schwingt die Endstufe!

Fehler erschlagen: Wenn einem nichts mehr einfällt, dann eben doch
stupide alle Elkos tauschen, beginnend bei den in der Nähe von Kühlkörpern:
  • C103 (47 µF, ≥ 10 V)
  • C105, C112 (1 µF, ≥ 10 V, Ersatz durch Vielschichtkondensator)
  • C129, C130 (220 µF, ≥ 10 V)
  • C117, C120 (100 µF, ≥ 16 V)
  • C114, C118 (22 µF, ≥ 16 V)
Die Übeltäter bei mir

Die beiden letzten Paare waren schließlich wirklich Schuld, das Universalmessgerät zeigte statt 100 µF 100 Ω an! Diese hängen an der Vorverstärker-Stromversorgung mit ±15 V, und da war wohl die Speisespannungsschiene doch mit etwas HF versaut! Die anderen Elkos zu tauschen ist trotzdem angebracht, da diese neben heißen Bauelementen angeordnet sind. Bei der Gelegenheit gleich etwas hoch setzen, um den Abstand zu heißen Teilen zu vergrößern.

Spielzeug-Lokomotive Lego Duplo ©2004

Symptom: Zu wenig Leistung. Das Öffnen des Gehäuses ist in diversen YouTube-Videos veröffentlicht; IMHO am besten geht es unter Zuhilfenahme des Stricks-im-Schraubstock. Danach folgende Messwerte mit einem Satz aus 3 frischen R6-Zellen:

Messwerte
MessungausgeschaltetFreilaufende RäderBlockierte RäderEinheit
Batteriespannung4,604,564,50V
Motorspannung04,454,21V
Batteriestrom00,080,2A
Zugkraft (Friktion1)1,2N
Zugkraft (Zahnrad2)3N

Zu Tage kommt demnach eine funktionierende Schalt-Steuerung und ein Motor mit ungewöhnlich großem Innenwiderstand von 20 Ω. Womöglich für Lego-Spielzeug normal, aber auch für Spielzeug liegt dieser normalerweise im unteren Ohm-Bereich, etwa 2 Ω.

Da ein Motortausch wohl nicht in Frage kommt, habe ich vor dem Zusammenbau die allzu straffen Plast-Widerhaken durch Anschrägen entschärft. Dann muss beim nächsten Zerlegen nur noch gezogen werden ohne gleichzeitig hebeln zu müssen.

  1. Unbeladene Lok auf Bürotischplatte, Räder durchdrehend = Gleitreibung
  2. Mit Kraftmesser blockiertes Rad = im Stillstand, Wert weitestgehend geschätzt

Symptom : Rutscht im Innern durch. Hinterräder lassen sich von Hand drehen. Öffnen wie vorher.

Foto der Reparatur

Reparatur: Ohne die Hinterachse auseinandernehmen zu müssen, mit Akkuschrauber Loch Durchmesser 1,4 mm durch Ritzelhals und Hinterachse gebohrt, winzige Schraube aus anderem, geschlachteten Spielzeug 'reingedreht. Schraubenkopf erfordert etwas Freifräsen der Bodenschale, sonst hackendes Geräusch nach dem Zusammenbau; besser wäre wohl eine Madenschraube.