dies ist mein 1. Beitrag im Forum, daher kurz zu mir: ich heiße Johannes und komme aus Dresden
Ich bräuchte mal euren Rat:
ich habe ein Gerät, in dem eine 7-Segmentanzeige ist (eine Ziffer). Die angezeigten Zahlen möchte ich an einen Arduino übertragen.
Mein Plan ist folgender:
die einzelnen LEDs der Anzeige sollen an einen MCP23S17 angeschlossen werden, die einzelnen Zustände der Anzeige sollen dann vom Arduino dort ausgelesen werden. Das ist sicherlich "von hinten durch die Brust ins Auge" aber es ist die einzige Möglichkeit, ohne sich großartig mit dem Rest des Gerätes und dessen Code auseinanderzusetzen.
Die Frage ist nun folgende:
wie sollten die Pole der Anzeige an den MCP23S17 angeschlossen werden?
Soweit ich es verstanden habe, muss als Input der jeweilige Pin des MCP23S17 mit GND verbunden werden, um HIGH zu sein.
An den Pins der Anzeige liegen jeweils ca. 2V an, eben die Betriebsspannung der LEDs.
Meine Idee wäre an jeden Pin einen Optokoppler anzuschließen und damit jeden Pin des MCP mit GND zu verbinden.
Das hätte den Vorteil, dass beide Schaltkreise getrennt wären, würde aber auch bedeuten, dass 8 Optokoppler verbaut werden müssen.
Ist das die einzige Möglichkeit das zu realisieren, oder hat jemand noch eine andere Idee?
Ich verstehe deine Aufgabenstellung nicht, bzw den Sinn und Zweck dahinter nicht. Du willst mit einem MCP eine 7-Segmentanzeige ansteuern und die Zustände auch noch auslesen? Zwar mag der MCP nicht umbedingt der sinnigste IC dafür sein, sollte aber gehen. Vorwiderstände an jede einzelne Led.
Warum aber möchtest du den Zustand abfragen?
Versuch das ganze noch einmal besser zu schildern, vorallem warum und so. Wenn es darum geht, sicherzustellen, dass die einzelne Leds nicht defekt sind, dann solltest du einen anderen IC nehmen. Irgendwas von TI aus der TLC Serie. Je nach Modell haben die auch die Möglichkeit zu erkennen, ob eine Led an der KonstStromQuelle angeschlossen sind, bzw. ob sich dort ein Kurzschluss befindet.
Ansteuerung müsstest du zB über SPI selber aufbauen, da die mir bekannten Libs für die TLCs nicht die gewünschten Funktionen abdecken. Denn diese werden meist ohne MISO betrieben. Die Daten werden einfach im DaisyChain weitergereicht. Man kann aber den DOUT wieder an MISO einlesen, bei dem man den Status erfragen kann.
Ich verstehe, du möchtest den Zustand einer einzelnen 7-Segment-Anzeige ermitteln.
Wenn du die Beschaltung der Anzeige kennst, sollte es evtl. mit Optokopplern funktionieren.
Die Ausgänge dieser kannst du direkt mit einem Arduino verarbeiten.
Ein Schaltbild der Anzeige und Steuerung ist hier von Vorteil.
Ich glaube das war etwas zu kryptisch von mir beschrieben.
Genau, es geht darum, die Zustände der Anzeige auszulesen, die Anzeige ist in einem Laborbelichtungsmesser (für die Dunkelkammer) und die Anzeige zeigt die Gradationsstufen von 00 bis 5 an. Diese will ich auslesen, um die Gradationsstufe an die Beleuchtungssteuerung des Vergrößerers (ein Arduino Uno) weiterzugeben. Die Beleuchtungssteuerung setzt die Gradationsstufe steuert den Grün- und Rotkanal einer RGB-LED. Der Part ist fertig und funktioniert auch.
Das ganze soll über den MCP23S17 laufen, damit nicht zu viele Pins belegt werden.
Die Anzeige ist eine Standard 7-Segmentanzeige mit 10 Pins (8 Segmente und 2x GND).
Jede Ziffer besteht ja aus einer Kombination von leuchtenden LEDs, die am MCP jeweils eine bestimmte Kombination von Eingängen die 1 und 0 erzeugen sollen. Über eine simple if-Abfrage wird die Kombination in der Beleuchtungssteuerung in eine Gradationsstufe übersetzt.
Fraglich ist momentan erstmal nur, wie die an den jeweiligen Pins an der LED-Anzeige anliegende Spannung genutzt werden kann, um am MCP den jeweiligen Pin an GND zu schalten.
Könnte das auch mit einer Transistorschaltung gemacht werden?
Eine Parallelschaltung der Diode des Optokopplers kann funktionieren, aber dazu solltest du die Spannung kennen, die an den Leuchtdioden der Anzeige anliegt und prüfen, mit welchem Optokoppler das sicher funktioniert.
Als IC (Portexpander) kannst du dann den PCF8475 einsetzen, der hat genau 8 Eingänge.
Wenn du an die Anschlüsse der Anzeige so rankommst, würde ich es mit einem Optokoppler einfach mal probieren.
Nur mit einem Transistor hast du keine Potentialtrennung und das ist hierbei kritisch.
Eine Parallelschaltung der Diode des Optokopplers kann funktionieren, aber dazu solltest du die Spannung kennen, die an den Leuchtdioden der Anzeige anliegt und prüfen, mit welchem Optokoppler das sicher funktioniert.
Das funktioniert nicht. Wie Jo-hannes schreibt liegen an der /-Segmentanzeige 2V an. Wenn mann jetzt eine IR-LED eines Optokopplers Paralellschaltet dann sind es 1,4V und darum leuchtet die 7-Segmentanzeige nicht mehr. Du mußt die Spannung vor den Vorwiderständen abnehmen. und dann kannst Du einen Eingang eines I2C Port expander wie den MCP nehmen.
uwefed:
Das funktioniert nicht. Wie Jo-hannes schreibt liegen an der /-Segmentanzeige 2V an. Wenn mann jetzt eine IR-LED eines Optokopplers Paralellschaltet dann sind es 1,4V und darum leichtet die 7-Segmentanzeige nicht mehr. Du mußt die Spannung vor den Vorwiderständen abnehmen. und dann kannst Du einen Eingang eines I2C Port expander wie den MCP nehmen.
Man kann ruhig die Massen zusammenschließen.
In der Tat, das funktioniert nicht mit der Parallelschaltung.
Das mit den 2 Volt an den Dioden habe ich überlesen.
Was die Verwendung des Optokopplers betrifft, bin ich da immer etwas vorsichtig, wenn es "fremde" Geräte sind.
Ich würde dennoch einen Transistor vorschalten, der beim Leuchten des jeweiligen Segments, den Ausgang auf LOW zieht und damit den I2C-Portexpander steuert.
Ohne ein bisschen messen und Datenblatt googeln kommst du nicht weiter.
Hat das Gerät, was du abfragen willst, nur die eine Stelle, oder mehrere 7-Segmentanzeigen? In letzterem Fall kann es sein, das die Ziffern gemultiplext werden, also nacheinander leuchten. Folglich wird auch dein abgefragtes Signal an und aus gehen. Dies muß in der Auswertelelektronik abgefangen werden.
Nächster Punkt ist, welcher Typ Ziffernanzeige verbaut wurde. In großen Ziffern sind oft mehrere LEDs in Reihe verbaut. Weiterhin gibt es Anzeigen mit gemeinsamer Anode oder Kathode. Danach richtet sich dann, wie wie rum der Optokoppler kommt und wie groß die Vorwiderstände für die IR-Dioden im OK ausfallen müssen.
Vielen Dank erstmal für die Nachrichten.
Ich habe gerade wenig Zeit, daher erstmal nur eine kurze Nachricht.
Es soll nur eine Stelle, die abgefragt werden soll.
Ich werde mich mal auf die Suche nach den Widerständen machen. Wenn ich eine Transistorschaltung zur Steuerung des MCP nehmen würde, dann müsste ich ja theoretisch auch die Spannung an den LEDs der Anzeige abnehmen können, oder?