Steuern der Ziffern der Flip- / Vane-Uhr

Ich habe eine Windflügel-/Flip-Uhr mit 4 Ziffern erhalten, aber der Controller ist schon lange weg. Ich plane, die Uhr mit einem Raspberry Pi und den üblichen Relaisplatinen zu steuern, die Sie dafür bekommen - ich habe schon einmal etwas Ähnliches gemacht und weiß, dass das funktioniert.

Da die Relais jedoch jede Minute arbeiten müssten, bezweifle ich, dass sie lange halten würden, bevor sie ausgetauscht werden müssten. Ich suche daher nach einer Möglichkeit, die Uhr auf die gleiche Weise zu betreiben, jedoch ohne Relais. Hat jemand irgendwelche Ideen?

Unten finden Sie weitere Informationen zur Funktionsweise der Relay-Lösung.

An jeder Ziffer hat jedes Segment Common (C), Reset (R) und Display (D) Anschlüsse. Auf jeder Ziffer sind die Segment-Commons miteinander verbunden, um eine Ziffer Common zu bilden.

Um also ein Segment anzuzeigen, würden Sie +12 V an die Ziffer Common und -12 V an den Anzeigeanschluss des Segments anlegen. Um es zurückzusetzen, würden die -12 V stattdessen zum Reset-Anschluss gehen.

Es gibt vier Ziffern auf der Uhr, und die Segmente von jedem sind miteinander verbunden, sodass das R von Segment A auf der ersten Ziffer mit dem R von Segment A auf der zweiten Ziffer verbunden ist usw. Das R von Segment B ist mit dem R von verbunden Segment B auf der zweiten Ziffer und so weiter. Gleiches gilt für die D-Anschlüsse.

Es gibt also vierzehn Relais für die Segmente (7 zum Anzeigen + 7 zum Rücksetzen).

Jede Ziffer hat ihr eigenes Relais für die gemeinsame Ziffer (es gibt also 4-stellige gemeinsame Relais).

Um also '0123' auf den vier Ziffern anzuzeigen, würden Sie Folgendes tun:

  • Ziffer aktivieren Gemeinsames Relais für die vierte Ziffer
  • Stellen Sie die Segmentanzeige/Reset-Relais entsprechend ein, um eine „3“ anzuzeigen
  • Segmentanzeige deaktivieren/Relais zurücksetzen
  • Ziffer deaktivieren Gemeinsames Relais für die vierte Ziffer
  • Ziffer aktivieren Gemeinsames Relais für die dritte Ziffer
  • Stellen Sie die Segmentanzeige/Reset-Relais entsprechend ein, um eine „2“ anzuzeigen
  • Segmentanzeige deaktivieren/Relais zurücksetzen
  • Ziffer deaktivieren Gemeinsames Relais für die dritte Ziffer
  • (Dann machen Sie ähnliches für die ersten beiden Ziffern)

Jedes Segment benötigt 280 mA für den Betrieb, sodass die maximale Stromaufnahme zu jedem Zeitpunkt 1.960 mA (280 mA x 7) betragen würde.

Geben Sie hier die Bildbeschreibung ein Geben Sie hier die Bildbeschreibung ein

Wenn Sie -12 V sagen, meinen Sie 12 V unter einem anderen Erdungspunkt in der Anzeige oder meinen Sie 12 V Rückkehr?
Ich frage mich, ob das eine induktive Last ist. (Ich vermute, es ist ein Solenoid, in diesem Fall ist es absolut eine induktive Last.) Wenn ja, stellen Sie sicher, dass die von Ihnen entwickelte Schaltlösung damit umgehen kann (Snubber-Dioden usw. usw.).

Antworten (5)

Anstelle von Relais könnten Sie die Verwendung von MOSFETs in Betracht ziehen, es gibt viele, die sowohl Eingänge mit Logikpegel als auch 280 mA an den Ausgängen unterstützen können.

Keine beweglichen Teile, also nichts, was sich abnutzen könnte.

Dank dafür. Ich bin ziemlich neu bei MOSFETs, also habe ich mich gefragt, ob Sie zusätzliche Informationen darüber geben könnten, wie ich sie dafür verwenden könnte? Jede Info wäre willkommen! Danke.
Suchen Sie nach "MOSFET Low Side Switch", es gibt viele gute Tutorials. Ich möchte keine Links posten, die möglicherweise verschwinden.

Klingt so, als könnten Sie jede Ziffer mit zwei ULN2003A -Chips steuern. Sie enthalten Darlington-Treiber und Fangdioden für jeden Ausgang.

Ich nehme an, Sie würden jede Spule kurz (50 ms?) Pulsen, um das Segment umzudrehen, das sich ändern muss.

Natürlich müssen Sie die 14 x 4 Eingänge irgendwie bereitstellen (vielleicht einige Schieberegister).

Sie könnten auch die Verwendung von stromadressierbaren Latches wie TPIC6A259 in Betracht ziehen , die weniger Teile erfordern, aber teurer sind und möglicherweise bessere Erdungsverbindungen erfordern.

Möglicherweise möchten Sie Hardware hinzufügen, um die Dauer der Impulse zu begrenzen, anstatt von der Firmware abzuhängen, da ich bezweifle, dass sie dem Dauerstrom lange standhalten, ohne auszubrennen.

Ich habe Mitte der 80er damit Displays gebaut, wir haben Anzeigetafeln für Colleges, Zeit-/Temperaturuhren für Banken und so etwas gemacht. ULN2003A ist genau das, was wir die meiste Zeit verwendet haben, obwohl ich einige Punktmatrix-Displays für eine Autofabrik entworfen habe und diese diskrete Darlingtons verwendet haben, so etwas wie ein TIP120. Mit Schieberegistern adressierten wir die Segmente, wir hatten eine Platine mit den Schieberegistern und Treibern für jede Ziffer, und sie waren in Gänseblümchenkette miteinander verbunden. Die Solenoide wurden von der Software gepulst, wir haben nie Hardware verwendet, um sie zu begrenzen, und hatten nie ein Problem damit.

Der Ersatz für Relais sind MOSFETs oder BJTs, wie andere Poster besprochen haben, aber das Problem hier ist, dass Sie versuchen, eine 12-V-Last mit einem 3,3-V-Logikpegelausgang hochseitig (und niedrigseitig für die Ziffernauswahl) zu schalten. Ich hatte einen Schaltplan mit Open-Drain-Wechselrichtern erstellt, die PMOS-Transistoren ansteuern, aber warum das Rad neu erfinden? Wenn Sie nach High-Side-Load-Treibern suchen, gibt es viele, die 3,3-V-Logikeingänge aufnehmen und Lasten von 20 V+ steuern, und viele haben eingebaute Klemmdioden für die (ich nehme an) Solenoide, die die Ziffern betätigen. Sie können sogar einzelne Chips wie den TBD62783APG finden, die 8 unabhängige Schaltkreise eingebaut haben.

Wenn Sie die Anzahl der erforderlichen E/A reduzieren möchten, können Sie einen Inverter verwenden, um die DISPLAY- und RESET-Treiber für ein einzelnes Segment von einem einzelnen Logikeingang ablaufen zu lassen. Die Möglichkeit, beide Spulen gleichzeitig zu aktivieren, während die Treiber den Status ändern, ist fraglich, wenn Sie jedes Segmentsignal einstellen und dann nach einer sehr kurzen (Mikrosekunden) Einrichtungszeit die Ziffernauswahl (die ein beliebiger geeigneter NMOS-Logikpegel sein kann) abtasten.

Hier ist eine ziemlich anständige Beschreibung der Steuerung einer mehrstelligen Flügelanzeige: https://easternstargeek.blogspot.com/2011/08/nifty-electromechanical-vane-display.html

Die Zusammenfassung lautet: Verwenden Sie ein 14x4-Matrix-Laufwerk, und Sie müssen die Spulen mit Dioden isolieren, um "Ghosting" zu verhindern.

  1. Wenn die Relaisplatinen für Sie einfacher sind, spricht nichts dagegen, wenn die Relais ein- oder zweimal pro Minute schalten. Die meisten von ihnen sind gut für eine Million Zyklen. Achten Sie nur darauf, schützende Flyback-Dioden für die Taktspulen zu verwenden.

  2. Apropos Stromversorgung: Sie müssen nicht alle Segmente in einer Ziffer auf einmal schalten. Schalten Sie sie nacheinander um und Sie erhalten einen maximalen Strom von 280 mA. Im schlimmsten Fall sehen Sie, wie sich die Ziffer für eine halbe Sekunde verändert. Dies verleiht dem Look noch mehr Vintage und vereinfacht die Wahl des oberen Treibers (die +12-V-Schiene zu den C-Anschlüssen des Displays).

  3. Hast du genug GPIO-Pins auf deinem Controller? Sie benötigen etwa 18, um das Display zu steuern. Andernfalls benötigen Sie externe Decoder, Schieberegister oder adressierbare Treiber. Im einfachsten Fall benötigen Sie 14 Open-Drain- (N-MOS) oder Open-Collector- (NPN) Treiber für die S/R- und 4 der P-MOS / PNP-Variante für die C-Seite. Sie benötigen außerdem 4 Pegelumsetzer, die nur weitere 4 N-MOS/NPN-Treiber sein können, die umfunktioniert werden.

Eine Million Zyklen bei zweimal pro Minute ist nur 1 Jahr.
@TobySpeight: Wenn man ein Extra-Heavy-Duty- oder Solid-State-Relais als übergeordnete Leistungssteuerung verwendet und andere Relais nur schaltet, wenn keine Spannung anliegt und kein Strom fließt, sind sie für viele Größenordnungen mehr Schaltzyklen gut als wenn sie unter Last geschaltet werden.
@supercat, das stimmt - ich habe nur darauf hingewiesen, dass " gut für eine Million Zyklen " in diesem Zusammenhang eine ziemlich kleine Zahl ist. Es sei denn, das Wort „like“ bedeutet mehr, als ich denke.
@TobySpeight: Ich denke, der Ausdruck "gut für etwa eine Million Zyklen" sollte bedeuten "verwendbar für genügend Zyklen, um nicht besorgniserregend zu sein", obwohl es davon abhängen würde, ob die Relais geschaltet werden eine fast ausgelastete Last. Ein billiges Relais, das einmal pro Minute fast ausgelastet ist, kann innerhalb eines Jahres ausfallen, aber wenn es nicht unter Last geschaltet wird, kann es Jahrzehnte halten, obwohl es von gelegentlichem Schalten unter mäßiger Last profitieren könnte.
@fraxinus Ich habe mich entschieden, SSR-Relaiskarten mit dem Raspberry Pi zu verwenden. Nach dem Verdrahten der Ziffern habe ich jedoch ein Problem. Ich habe die 'Display'-Verbindung an Segment A an Ziffer 1 mit derselben Verbindung an Segment A an Ziffer 2 usw. verbunden. Die gemeinsamen Leitungen der Segmente sind an Ziffer 1 miteinander verbunden, die gemeinsamen Leitungen von Segment an Ziffer 2 miteinander verbunden usw. (Siehe Diagramm oben) Während die gemeinsamen Ziffern voneinander isoliert sind, sind sie es in Wirklichkeit nicht, dh Ziffer 2 arbeitet mit Ziffer 1, wenn nur Ziffer 1 arbeiten sollte. Irgendwelche Ideen, warum das passiert? Ich hatte ein ähnliches Display und das funktionierte gut.
Es könnten entweder parasitäre Strompfade zwischen den Ziffern (mit Dioden an jedem R und D geheilt) oder die Relais sein, die die C-Anschlüsse nicht richtig steuern.
@fraxinus Das hat es gelöst - danke!