Forum: Mikrocontroller und Digitale Elektronik 7 Segment Anzeige auslesen / MCP23017


von Rccardany R. (rccardany_r)


Angehängte Dateien:

Lesenswert?

Hallo ihr Lieben,

neues Projekt - neue Probleme.

Ich habe eine PH-Dosieranlage für meinen Pool, die den aktuellen PH Wert 
auf 2 7-Segment anzeigen ausgibt. Ich möchte diese Anlage nun in mein 
Smart Home einbinden und den PH Wert abgreifen.

Was ich mir überlegt hatte:

ESP32, da WLAN
MCP23017 an ESP, da der ESP zu wenig GPIOs für die 2x 7-Segmentanzeigen 
hat.
An jedem GPIO habe ich einen 1k Ohm Pullup  Widerstand und einen 
Transistor BC548B. An der Base des Transistors habe ich dann wieder 1K 
Widerstand und wollte auf die 7 Segmentanzeige fahren (das ganze dann 14 
mal)

Habe also alles zusammengebastelt und die Software geschrieben.

Das Problem der Eingang schaltet nicht auf LOW durch. Nach meiner 
Analyse muss das daran liegen, dass an der Anzeige nur ca 0.3V anliegen 
und das zu gering ist um den Transistor durchzuschalten. Glaube hierfür 
brauche ich min 0.7V
Habe den Transistor mal weg gelassen und bin direkt auf den MCP23017. 
Auch das ging nicht. Hier waren min. 1.8V erforderlich um den kanal als 
HIGH durchzuschalten.

Habt ihr ideen? Wie kann ich das Spannungsproblem lösen? Anderer 
Transistor? Spannung iwie hoch treiben?

Bitte um Unterstützung

von Hobby B. (bastler2022)


Lesenswert?

Rccardany R. schrieb:
> Ich habe eine PH-Dosieranlage

Typ und Hersteller wären hier Interessant.

Gruß bastler2022

von Jack V. (jackv)


Lesenswert?

Wenn ich mir die Skizze angucke, kommt mir irgendwie die Frage in den 
Kopf: WTF?

https://www.mouser.com/datasheet/2/149/BC547-190204.pdf

von Michael B. (laberkopp)


Lesenswert?

Rccardany R. schrieb:
> Habt ihr ideen?

Ist Masse der PH-Dosieranlage mit Masse des ESP+MCP23017 verbunden ?

Sicher, dass die Anzeige statisch angesteuert wird und nicht im 
Multiplexbetrieb ?

Sind das common anode Displays, deren Segmente einzeln nach Masse 
geschaltet werden ?

Dann wäre LOW ja ein leuchtendes Segment.

Warum verbindest du die Eingänge nicht direkt mit der Elektronik der 
Anzeige ? Vor allem sollte das jenseits der strombegrenzenden 
Vorwiderstände erfolgen.

von Martin S. (mmaddin)


Lesenswert?

Hallo du lieber, wir haben uns hier alle lieb,

um den Wert der Anzeigen zu rekonstruieren brauchst du nicht alle 
Segmente abzugreifen!

Auf deiner Zeichnung ist nichts wirklich zu erkennen. Es fehlt alles - 
welche Spannungen kommen woher, was gehört zum ESP, was zur 
Dosieranlage, welche Pins werden genutzt, wie ist das alles genau in der 
Dosieranlage aufgebaut etc...wo wird abgegriffen etc...welche Massen 
sind wo verbunden, ist die Anzeige gemuxt, welchen Treiber hat sie...

Rccardany R. schrieb:
> neues Projekt - neue Probleme.

Vielleicht startest du erstmal mit einer kleinen Blinkschaltung um zu 
verstehen wie eine LED überhaupt funktioniert.

M.

: Bearbeitet durch User
von Rccardany R. (rccardany_r)


Lesenswert?

Michael B. schrieb:
> Rccardany R. schrieb:
>> Habt ihr ideen?
>
> Ist Masse der PH-Dosieranlage mit Masse des ESP+MCP23017 verbunden ?
>
> Sicher, dass die Anzeige statisch angesteuert wird und nicht im
> Multiplexbetrieb ?
>
> Sind das common anode Displays, deren Segmente einzeln nach Masse
> geschaltet werden ?
>
> Dann wäre LOW ja ein leuchtendes Segment.
>
> Warum verbindest du die Eingänge nicht direkt mit der Elektronik der
> Anzeige ? Vor allem sollte das jenseits der strombegrenzenden
> Vorwiderstände erfolgen.



Ja die Massen sind verbunden.
Ja die sind Statisch angesteuert. Es sind LSHD-A103 Displays (also 
common Anode)
Ja genau LOW wäre leuchtend. (der ESP übernimmt die Logik und ermittelt 
aus den LOW / HIGH werten dann die angezeigte Ziffer)
Das Direktverbinden habe ich ja versucht auch hier zu wenig Spannung 
(siehe oben)

von Hobby B. (bastler2022)


Lesenswert?


von Steve van de Grens (roehrmond)


Lesenswert?

Versuche es mal umgekehrt: mit einem PNP Transistor und Pull- Down 
Widerstand.

Oder ohne Transistor mit pull-up Widerstand, damit die HIGH Pegel über 
1,8V kommen.

von Manfred P. (pruckelfred)


Lesenswert?

Rccardany R. schrieb:
> Ja die sind Statisch angesteuert. Es sind LSHD-A103 Displays (also
> common Anode)
> Ja genau LOW wäre leuchtend. (der ESP übernimmt die Logik und ermittelt
> aus den LOW / HIGH werten dann die angezeigte Ziffer)
> Das Direktverbinden habe ich ja versucht auch hier zu wenig Spannung
> (siehe oben)

Zu wenig Spannung: Lege parallel zu jedem Segment einen 10k-Widerstand, 
dann sollte die Spannung bei Segment aus hoch genug sein, von der Logik 
erkannt zu werden.

von Hobby B. (bastler2022)


Lesenswert?

Rccardany R. schrieb:
> Es sind LSHD-A103 Displays (also
> common Anode)

Haben die nicht Gemeinsame Kathode ?

https://www.allaboutcircuits.com/electronic-components/datasheet/LSHD-A103--Lite-On/

: Bearbeitet durch User
von Rccardany R. (rccardany_r)


Lesenswert?

Manfred P. schrieb:
> Rccardany R. schrieb:
>> Ja die sind Statisch angesteuert. Es sind LSHD-A103 Displays (also
>> common Anode)
>> Ja genau LOW wäre leuchtend. (der ESP übernimmt die Logik und ermittelt
>> aus den LOW / HIGH werten dann die angezeigte Ziffer)
>> Das Direktverbinden habe ich ja versucht auch hier zu wenig Spannung
>> (siehe oben)
>
> Zu wenig Spannung: Lege parallel zu jedem Segment einen 10k-Widerstand,
> dann sollte die Spannung bei Segment aus hoch genug sein, von der Logik
> erkannt zu werden.

Das verstehe ich nicht ganz. parallel zu der Verbindung zwischen Basis 
und Display?!




Ja ihr habt recht gemeinsame Kathode daher hatte ich npn  gewählt

von Michael B. (laberkopp)


Lesenswert?

Rccardany R. schrieb:
> Das Direktverbinden habe ich ja versucht auch hier zu wenig Spannung

Du hast wohl ein anderes Problem.
1
                            +5V
2
                            _|_
3
                            \_/ LED
4
                             |
5
Ansteuerung --Vorwiderstand--+-- Anzapfen

Wenn du direkt an der LED anzapft, wird die Spannung nie unter die LED 
Flussspannung gezogen und geht nie höher als die LED Flussspannung, 
bleibt also nahezu gleich egal ob die LED leuchtet oder nicht.
1
           +3.3V               +5V
2
              |                _|_
3
           pullup              \_/ LED
4
              |                 |
5
Ansteuerung --+--Vorwiderstand--+
6
              |        
7
          Anzapfen
Greifst du vor dem Vorwiderstand ab, bekommst du saubere Digitalsignale. 
Eventuell braucht der Eingang noch einen pullup.

Rccardany R. schrieb:
> Ja ihr habt recht gemeinsame Kathode

Dann gilt dasselbe, bloss andersrum.

von Steve van de Grens (roehrmond)


Lesenswert?

Wenn die Anzeige mit der gemeinsamen Kathode an GND hängt  kannst du den 
MCP direkt daran anschließen. Du brauchst nur Parallel zu jeder LED 
einen Pull-Down Widerstand.

Allerdings können die genannten 0,3V dann nicht stimmen. Vielleicht 
nochmal messen und herausfinden, womit wir es wirklich zu tun haben.

von Rccardany R. (rccardany_r)


Lesenswert?

Steve van de Grens schrieb:
> Wenn die Anzeige mit der gemeinsamen Kathode an GND hängt  kannst du den
> MCP direkt daran anschließen. Du brauchst nur Parallel zu jeder LED
> einen Pull-Down Widerstand.
>
> Allerdings können die genannten 0,3V dann nicht stimmen. Vielleicht
> nochmal messen und herausfinden, womit wir es wirklich zu tun haben.

Das hatte ich ja probiert ohne Erfolg.

Mal den esp und den mcp weg gelassen: Messe ich direkt an d er Anzeige 
bekomme ich zwischen segment und gnd die 0,34 V

von Steve van de Grens (roehrmond)


Lesenswert?

Es gibt keine LED für 0,3 Volt. Du hast mindestens 1,6 Volt, und das 
würde locker reichen, um einen Transistor anzusteuern.

Vermutlich doch gemultiplext oder mit PWM. Hast du ein Oszilloskop?

: Bearbeitet durch User
von Harald A. (embedded)


Lesenswert?

Vlt. hilft ein Foto von dem Patienten, beide Seiten in scharf.

von Hobby B. (bastler2022)


Lesenswert?

Hobby B. schrieb:
> Rccardany R. schrieb:
>> Ich habe eine PH-Dosieranlage
>
> Typ und Hersteller wären hier Interessant.
>
> Gruß bastler2022

von Rccardany R. (rccardany_r)


Angehängte Dateien:

Lesenswert?

Harald A. schrieb:
> Vlt. hilft ein Foto von dem Patienten, beide Seiten in scharf.

Habe mal Bilder angehängt.

Auf der Platine der ph Anlage ( von hayward erkennt man die Anzeigen an 
meinen lötversuchen)

https://www.poolpowershop.de/pool/pool-wasserpflege/dosiertechnik/dosieranlagen/chlor-und-ph/hayward-pool-ph-regulator

von Michael B. (laberkopp)


Lesenswert?

Rccardany R. schrieb:
> Habe mal Bilder angehängt

So so, nur 8 Vorwiderstände 220 Ohm aber Transistoren mit 1k 
Basiswiderstand um die Kathoden nach Masse zu schalten und das soll 
keine Multiplexansteuerung sondern statische Ansteuerung sein.

Immerhin gesockelt, besser kann man es nicht haben

: Bearbeitet durch User
von Dietrich L. (dietrichl)


Lesenswert?

Rccardany R. schrieb:
> Habe mal Bilder angehängt.

Ich empfehle, folgendes zu tun:
- die Schaltung um die 7-segment-Anzeigen herum aufnehmen
- die Signale mit einem Oszi anschauen.
Dann kann man konkrete Vorschläge für eine Lösung machen.

von Rainer W. (rawi)


Lesenswert?

Rccardany R. schrieb:
> 20240329_094419.jpg

Wofür 16 Transistoren?
Mehr als 10 brauchst du doch auf keinen Fall, um zwei statische 
angesteuerte 7-Segment Anzeigen abzulesen, die nur Ziffern anzeigen.

Oder was wird auf den beiden Anzeige außer dem pH-Wertes noch angezeigt?

> von hayward erkennt man die Anzeigen an meinen lötversuchen

Vielleicht versuchst du besser erstmal nur ein einziges Signal 
abzugreifen, bevor du die ganze Platine verbrutzelst ;-)

: Bearbeitet durch User
von Hobby B. (bastler2022)


Lesenswert?

Rainer W. schrieb:
> Wofür 16 Transistoren?

Möglicherweise sollen dann als nächstes die Taster angebunden werden.

Ist denn ein Oszi und oder ein LA vorhanden würde die ganze Sache sehr 
vereinfachen.

https://www.ti.com/lit/ds/symlink/msp430f1122.pdf?ts=1711704215091

Gruß und schöne Osterfeiertage.

bastler2022

: Bearbeitet durch User
von Harald A. (embedded)


Lesenswert?

Man könnte eine Zwischenplatine mit einem kleinen Prozessor 
konstruieren, der das Multiplex auswertet und auf eine passende 
Schnittstelle packt (I2C, SPI, etc.). Zuvor wie schon geschrieben mit 
einem Logicanalyzer (<10€ falls nicht vorhanden) schauen, wie das Timing 
genau aussieht.
Oder besser noch, einen separaten PH-Sensor direkt an den ESP.
https://atlas-scientific.com/ph/
Bin mir nämlich nicht sicher, ob das Gerät die Lötversuche auf Dauer 
überlebt.

: Bearbeitet durch User
von Rüdiger B. (rbruns)


Lesenswert?

ESP32CAM wie beim Wasserzähler.

von Harald A. (embedded)


Angehängte Dateien:

Lesenswert?

Sind die grünen Klemmen der Anschluss für die PH-Sonde? Falls ja dürfte 
der TLC227 das analoge Signal für den MSP430 aufbereiten. Warum also 
nicht das analoge Signal parallel anzapfen.

von Michael B. (laberkopp)


Lesenswert?

Rainer W. schrieb:
> Wofür 16 Transistoren?
> Mehr als 10 brauchst du doch auf keinen Fall,

Er braucht überhaupt keine, nur know how.

von Michael B. (laberkopp)


Lesenswert?

Harald A. schrieb:
> Warum also nicht das analoge Signal parallel anzapfen.

Oh Mann, du hast von pH-Mesung nicht die leiseste Ahnung..

von Harald A. (embedded)


Lesenswert?

Michael B. schrieb:
> Harald A. schrieb:
>> Warum also nicht das analoge Signal parallel anzapfen.
>
> Oh Mann, du hast von pH-Mesung nicht die leiseste Ahnung..

Das stimmt, hatte noch keine Anwendung bisher. Brauchst deswegen aber 
nicht unverschämt werden.

von Steve van de Grens (roehrmond)


Lesenswert?

Die beiden LED Anzeigen sind gemäß der Fotos mit 100% Sicherheit 
gemultiplext. Damit zerfällt der ursprüngliche Lösungsansatz zu Staub.

Zusätzlich zu den Signalen der 7 Segmente müssen auch die beiden COM 
Anschlüsse der Anzeigen überwacht werden. Und dabei ist zu 
berücksichtigen, das sämtliche Signale mit einigen zig bis hundert Hertz 
pulsieren.

Ist machbar, aber anders. Ich würde dafür einen separaten uC verwenden, 
der das Ergebnis zwischenspeichert und seriell (z.B. via I2C) abrufbar 
macht.

von Michael B. (laberkopp)


Lesenswert?

Harald A. schrieb:
> Das stimmt,

Unverschämt ist es, jemandem auf eine Frage hin vollkommenen Stuss zu 
erzählen. Keine Ahnung vom Thema zu haben ist dabei nur eine schlechte 
Ausrede.

von Sven P. (svepas)


Lesenswert?

Also bei nur 2 7-Segment Anzeigen würde ich hier einen höheren 
Hardwareaufwand/Platzverbrauch in Kauf nehmen und jedes Segment einzeln 
mit Optokoppler abgreifen. Anschließend würde ich an den Ausgängen der 
Optokoppler noch einen Kondensator zur Glättung hängen um das gepulse 
vom Multiplexing weg zu bekommen. Der Vorteil wäre dann du kannst das 
ganze wie ursprünglich vorgehabt statisch auslesen und brauchst dir um 
das ganze Multiplexing keinen Kopf machen.
Gruß Sven

von Rccardany R. (rccardany_r)


Lesenswert?

Sven P. schrieb:
> Also bei nur 2 7-Segment Anzeigen würde ich hier einen höheren
> Hardwareaufwand/Platzverbrauch in Kauf nehmen und jedes Segment einzeln
> mit Optokoppler abgreifen. Anschließend würde ich an den Ausgängen der
> Optokoppler noch einen Kondensator zur Glättung hängen um das gepulse
> vom Multiplexing weg zu bekommen. Der Vorteil wäre dann du kannst das
> ganze wie ursprünglich vorgehabt statisch auslesen und brauchst dir um
> das ganze Multiplexing keinen Kopf machen.
> Gruß Sven

Das klingt für mich und meine Mittel umsetzbar.
Kannst du kurz aufzeigen wie das anzuschließen ist und was ich bräuchte 
an HW?

von Rainer W. (rawi)


Lesenswert?

Steve van de Grens schrieb:
> Und dabei ist zu berücksichtigen, das sämtliche Signale
> mit einigen zig bis hundert Hertz pulsieren.
>
> Ist machbar, aber anders. Ich würde dafür einen separaten uC verwenden,
> der das Ergebnis zwischenspeichert und seriell (z.B. via I2C) abrufbar
> macht.

Ein µC, der mit dem MCP23017 kommuniziert, muss doch schon vorhanden 
sein.

Der MCP23017 kann über Interrupts sogar Bescheid sagen, wenn der 
Multiplexer umschaltet. Wenn die Anzeige im Multiplex läuft (und nur 
Ziffern anzeigt), sollte man mit fünf IOs für Segmentsignale und einem 
sechsten für das Select-Signal auskommen. Der MCP23017 wird nicht 
wissen, wohin mit den ganzen GPIOs - but who cares.
Ohne Oszi oder LA wird man sich allerdings etwas schwer tun.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Sven P. schrieb:
> würde ich hier einen höheren Hardwareaufwand/Platzverbrauch in Kauf
> nehmen

Es steht dir frei, das so zu machen.

Eigentlich reichen aber 6 Leitungen vom MSP430, 4 Segmente, 1 Digit und 
1 Masse, und die passende Software im AVR (oder besser gleich ESP).

von Harald A. (embedded)


Lesenswert?

Michael B. schrieb:
> Harald A. schrieb:
>> Das stimmt,
>
> Unverschämt ist es, jemandem auf eine Frage hin vollkommenen Stuss zu
> erzählen. Keine Ahnung vom Thema zu haben ist dabei nur eine schlechte
> Ausrede.

Kläre doch mal auf anstelle mit Angriffen aufzuwarten. Du bist doch der 
Beste, oder?

von Dieter W. (dds5)


Lesenswert?

Am Ausgang des Verstärkers kann man das Analogsignal schon anzapfen, 
parallel zum Eingang ist wegen der Hochohmigkeit natürlich tabu.

Nur ist das Analogsignal vermutlich noch nicht temperaturkompensiert, 
das muss dann der verarbeitende µC mit reinrechnen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Beitrag "Re: Applikationsschaltung UAA 1003"
Der Sprachsynthesizer UAA-1003 wurde an den (nicht gemultiplexten) 
Siebensegmentanzeigen einer Digitaluhr angeschlossen. In der Appnote von 
ITT auf S.3 (von5) steht die Tabelle der ausgewerteten Segmente.

von Harald A. (embedded)


Lesenswert?

Dieter W. schrieb:
> Am Ausgang des Verstärkers kann man das Analogsignal schon anzapfen,
> parallel zum Eingang ist wegen der Hochohmigkeit natürlich tabu.
>
> Nur ist das Analogsignal vermutlich noch nicht temperaturkompensiert,
> das muss dann der verarbeitende µC mit reinrechnen.

Danke, dass Beiträge auch ohne Störung beantwortet werden können. Habe 
es mir mittlerweile selber erarbeitet. Das Signal ist also sehr 
hochohmig, verlangt nach Temperaturkompensation und einer speziellen 
Nachverarbeitung.

von Gerald B. (gerald_b)


Lesenswert?

Harald A. schrieb:
> Sind die grünen Klemmen der Anschluss für die PH-Sonde? Falls ja dürfte
> der TLC227 das analoge Signal für den MSP430 aufbereiten. Warum also
> nicht das analoge Signal parallel anzapfen.

War spontan auch meine erste Idee. Allerdings muß man von Zeit zu Zeit 
so eine pH-Sonde kalibrieren. Dafür gibt es Kalibrierlösungen, meist pH 
4 und pH 7, manchmal statt 4 auch 10. Diese Zweipunktkalibrierung muß 
der Mikrocontroller ebenfalls als Setpoint hinterlegen und dann 
Verschiebung und Steilheit berücksichtigen.
Von daher ist es sicherlich der geringere Aufwand, die 2 
Siebensegmentanzeigen mit 4x 4-fach Optokopplern abzufragen (7 segmente 
u. der Dp) gleich 8 --> 2x 4 p. Stelle.

von Rainer W. (rawi)


Lesenswert?

Michael B. schrieb:
> Eigentlich reichen ... 4 Segmente

Steile These - welche vier Segmente würdest du denn zur Unterscheidung 
der 10 vorkommenden Ziffern auswerten?

von Sven P. (svepas)


Angehängte Dateien:

Lesenswert?

Hier wäre die Schaltung. Optokoppler müsste man einen empfindlichen Typ 
raussuchen der nicht zu viel Eingangsstrom braucht. Die Widerstände 
müsste man dann entsprechend anpassen. Der Widerstand darf aber nicht zu 
klein werden sonst wird die Anzeige immer dunkler bis ganz aus weil 
immer mehr Strom über die LED des Optokoppler fließt. Den Kondensator 
könnte man berechnen aus der Multiplexfrequenz, den 115µA des internen 
pull vom MCP23017, und dem Logiglevel wann der MCP23017 auf high 
schaltet. Aber das übersteigt da meine Kenntnisse. Ich probiere da 
eigentlich immer mehr rum als es auszurechnen. Da in den Datenblättern 
sowieso immer weite Bereiche der Werte angegeben sind. Ich würde da 
einfach mal mit 4,7 oder 10µF für die Kondensatoren probieren. Achso ich 
habe in der Schaltung keine Kollektorwiderstände eingezeichnet da der 
MCP23017 ja eingebaute Pull up Widerstände bestitzt. Diese müsstest du 
dann halt in deiner Software aktivieren.

von Steve van de Grens (roehrmond)


Lesenswert?

Sven P. schrieb:
> Aber das übersteigt da meine Kenntnisse. Ich probiere da eigentlich
> immer mehr rum als es auszurechnen.

Pi mal Daumen: C = 3  t  I

C in Farat,
t in Sekunden,
I in Ampere

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Sven P. schrieb:
> Hier wäre die Schaltung.

Und wozu soll die gut sein?

Selbst bei statische Ansteuerung der Segmente wären vier der Optokoppler 
überflüssig. Wozu sollen die zusätzlichen OC gut sein?
Bei der inzwischen wohl als sicher geltenden Multiplexansteuerung würde 
die Schaltung sogar überhaupt nicht funktionieren.
Klarheit über die Art der Ansteuerung würde ein Blick auf die Platine 
unterhalb der Anzeigen oder eine Messung zwischen gleichen Segmenten 
beider Anzeigen liefern.

Rccardany R. schrieb:
> 20240329_094450.jpg
> 20240329_094441.jpg

von Michael B. (laberkopp)


Lesenswert?

Rainer W. schrieb:
> welche vier Segmente würdest du denn zur Unterscheidung der 10
> vorkommenden Ziffern auswerten?

Na gut, a b e f g.

von Christian S. (roehrenvorheizer)


Lesenswert?

Rccardany R. schrieb:
> die den aktuellen PH Wert
> auf 2 7-Segment anzeigen ausgibt

Hallo,

also ich habe schon mal eine vierstellige 7-Segment-Anzeige direkt am 
MCP angeschlossen gehabt in gemultiplexter Version. Dazu waren keine 
Transistoren nötig.

Falls es bei hellem Tageslicht noch lesbar sein muß, braucht man 
wiederum trotzdemm die Transistoren.

mfg

mfg

von Sven P. (svepas)


Lesenswert?

Rainer W. schrieb:
> Selbst bei statische Ansteuerung der Segmente wären vier der Optokoppler
> überflüssig. Wozu sollen die zusätzlichen OC gut sein?

Das stimmt man kann da sicher einige Segmente bei der Auswertung 
weglassen und die Optokopplerzahl reduzieren. Das kann er ja reuzieren 
wenn er möchte.

Rainer W. schrieb:
> Bei der inzwischen wohl als sicher geltenden Multiplexansteuerung würde
> die Schaltung sogar überhaupt nicht funktionieren.
> Klarheit über die Art der Ansteuerung würde ein Blick auf die Platine
> unterhalb der Anzeigen oder eine Messung zwischen gleichen Segmenten
> beider Anzeigen liefern.

Bitte beachte die Optokoppler-LEDs sind einfach nur stumpf parallel zu 
den LEDs der 7 Segmentanzeigen geschaltet und bilden somit genau das 
nach was auch auf der Anzeige zu sehen ist. Inklusive dem Pulsen durch 
das Multiplexing. Aber das sollen die Kondensatoren an den Ausgängen der 
Optokoppler wegfiltern.

von Christian S. (roehrenvorheizer)


Lesenswert?

Achso, er möchte von einem anderen Gerät die Anzeige des Dislays in 
seine selbst gebaute Schaltung übertragen.

mfg

von Rainer W. (rawi)


Lesenswert?

Sven P. schrieb:
> Bitte beachte die Optokoppler-LEDs sind einfach nur stumpf parallel zu
> den LEDs der 7 Segmentanzeigen geschaltet und bilden somit genau das
> nach was auch auf der Anzeige zu sehen ist.

Dann sind sogar acht der vierzehn Optokoppler eigentlich überflüssig, 
hat aber natürlich den Vorteil, dass man nicht weiter drüber nachdenken 
muss.

: Bearbeitet durch User
von Steve van de Grens (roehrmond)


Lesenswert?

Wollen alle zusammen das 1-2-3 Lied üben? Oder können wir still im Kopf 
zählen, ohne uns gemeinsam öffentlich wie ein Haufen von Idioten zu 
verhalten?

: Bearbeitet durch User
von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

Im UAA1003 werden zehn Segmente der vierstelligen Anzeige ausgewertet. 
Die Minterme kann man z.B. mit Karnaugh-Veitch-Diagrammen aussuchen.
https://de.wikipedia.org/wiki/Karnaugh-Veitch-Diagramm
das geht mit Bleistift und Karopapier.

Eins, zwei, drei im Sauseschritt oder was?

: Bearbeitet durch User
von Rccardany R. (rccardany_r)


Lesenswert?

Sven P. schrieb:
> Rainer W. schrieb:
>> Selbst bei statische Ansteuerung der Segmente wären vier der Optokoppler
>> überflüssig. Wozu sollen die zusätzlichen OC gut sein?
>
> Das stimmt man kann da sicher einige Segmente bei der Auswertung
> weglassen und die Optokopplerzahl reduzieren. Das kann er ja reuzieren
> wenn er möchte.
>
> Rainer W. schrieb:
>> Bei der inzwischen wohl als sicher geltenden Multiplexansteuerung würde
>> die Schaltung sogar überhaupt nicht funktionieren.
>> Klarheit über die Art der Ansteuerung würde ein Blick auf die Platine
>> unterhalb der Anzeigen oder eine Messung zwischen gleichen Segmenten
>> beider Anzeigen liefern.
>
> Bitte beachte die Optokoppler-LEDs sind einfach nur stumpf parallel zu
> den LEDs der 7 Segmentanzeigen geschaltet und bilden somit genau das
> nach was auch auf der Anzeige zu sehen ist. Inklusive dem Pulsen durch
> das Multiplexing. Aber das sollen die Kondensatoren an den Ausgängen der
> Optokoppler wegfiltern.

Glaube das habe ich verstanden als e leihe.

Frage mich nur wie ermittle ich die richtigen Bauteile. Muss alles 
bestellen und habe keine schubladenteile. :(

von Jens G. (jensig)


Lesenswert?

Rccardany R. schrieb:
> e leihe

Was ist denn das?

Rccardany R. schrieb:
> Frage mich nur wie ermittle ich die richtigen Bauteile. Muss alles
> bestellen und habe keine schubladenteile. :(

Als OK kann man ja gleich 2- und 4-fach-Teile nehmen, wie
LTV-827 : 2-Kanal-Typ
LTV-847 : 4-Kanal-Typ

Gibts bei Reichelt, und sicherlich auch ganz woanders ...

von Sven P. (svepas)


Angehängte Dateien:

Lesenswert?

Habe jetzt doch mal konkrete Bauteile bei Reichelt rausgesucht mit denen 
das eigentlich funktionieren sollte. Den Plan habe ich auch nochmal 
angepasst:

Widerstand:
Flussspannung der LED in der 7 Segmentanzeige:2V
Flussspannung der LED im Optokoppler LTV 827-C: 1V
Bei einem Widerstand von 820 Ohm fließen dann 1,2mA durch die 
Optokopplerdiode. Müsste reichen. zumindest geht das Diagramm im 
Datenblatt soweit runter.
Zur not kaufst du auch noch 470 Ohm Widerstände dann hast du die Option 
den Strom auf 2,1mA zu erhöhen wenn das mit den 820ern nicht klappt. 
Aber wie gesagt je kleiner dieser Widerstand wird desto dunkler Werden 
die 7 Segment Anzeigen.

https://www.reichelt.de/widerstand-kohleschicht-820-ohm-0207-250-mw-5--1-4w-820-p1474.html?&trstct=pol_0&nbc=1
https://www.reichelt.de/widerstand-kohleschicht-470-ohm-0207-250-mw-5--1-4w-470-p1432.html?&trstct=pol_0&nbc=1

Optokoppler:
Beim Optokoppler nimmst du den LTV 827-C. Die Endung -C sagt aus das die 
speziell selektiert sind und haben eine garantierte bessere Verstärkung.
Denk dran IC Fassungen mit zu bestellen.

https://www.reichelt.de/2-fach-optokoppler-5kv-35v-50ma-200-400-dip-8-ltv-827-c-p251950.html?&trstct=pos_0&nbc=1

Kondensator:
Als Kondensator nimmst du einfach den hier. Beachte das der richtig rum 
angeschlossen werden muss:

https://www.reichelt.de/elko-radial-4-7-f-35-v-rm-2-0-85-c-2000h-20--rad-4-7-35-p15135.html?&trstct=pol_6&nbc=1

von Manfred P. (pruckelfred)


Lesenswert?

Sven P. schrieb:
> und die Optokopplerzahl reduzieren

Reduzieren auf NULL weil kompletter Schwachsinn.
Die Ansteuerung der Anzeigen wird Multiplex sein, hast Du auch nicht 
verstanden.

Die A..F beider Anzeigen werden parallel liegen. Also sieben 
BC_irgendwas_NPN mit 50k an der Basis dran. Die Invertierung Segment 
aktiv = Low macht die Software.

An beide Kathoden einen PullUp 4k7 nach +5V dran. Dann hat man dort 5V 
(Stelle Aus) oder Null_Komma_etwas, wenn die Stelle aktiv ist. Auch da 
kommt je ein BC_irgendwas_NPN mit 50k an der Basis dran, um den Pegel 
zum ESP anzupassen. Der µC muß die sieben Segmente auslesen, wenn die 
Stelle aktiv ist.

von Rainer W. (rawi)


Lesenswert?

Manfred P. schrieb:
> Der µC muß die sieben Segmente auslesen, wenn die Stelle aktiv ist.

Wozu die Redundanz?

von Sven P. (svepas)


Lesenswert?

Rainer W. schrieb:
> Wozu die Redundanz?

Weil der Controller an den Anodenanschlüssen der 7 Segmentanzeigen ganz 
schnell im Wechsel die Zehner und Einer Stelle ausgibt. Damit man nun 
aber weiß ob nun gerade die Einerstelle oder die Zehnerstelle anliegt 
muss man die Kathodenansteuerung am besten beider Anzeigen auswerten. 
Denn nur weil das Teil 2 7-Segment Anzeigen hat heißt das ja nicht das 
der Multiplexbetrieb nur über diese beiden Stellen geht. Es könnte ja 
sogar sein das in einem dritten Schritt vielleicht noch irgendwelche 
Taster eingelesen werden oder es wurde eine Totzeit einprogrammiert. Wer 
weiß das schon.

Deswegen hatte ich ja meine komplizierte Schaltung vorgeschlagen. Man 
braucht dort nur an den LED Anzeigen rumlöten und hat auch noch eine 
galvanische Trennung des ganzen.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Sven P. schrieb:
> Weil der Controller an den Anodenanschlüssen der 7 Segmentanzeigen ganz
> schnell im Wechsel die Zehner und Einer Stelle ausgibt.

Was hat das mit der Redundanz durch Abfrage von mehr als fünf Segmenten 
zu tun?

von Rccardany R. (rccardany_r)


Lesenswert?

Manfred P. schrieb:
> Sven P. schrieb:
>> und die Optokopplerzahl reduzieren
>
> Reduzieren auf NULL weil kompletter Schwachsinn.
> Die Ansteuerung der Anzeigen wird Multiplex sein, hast Du auch nicht
> verstanden.
>
> Die A..F beider Anzeigen werden parallel liegen. Also sieben
> BC_irgendwas_NPN mit 50k an der Basis dran. Die Invertierung Segment
> aktiv = Low macht die Software.
>
> An beide Kathoden einen PullUp 4k7 nach +5V dran. Dann hat man dort 5V
> (Stelle Aus) oder Null_Komma_etwas, wenn die Stelle aktiv ist. Auch da
> kommt je ein BC_irgendwas_NPN mit 50k an der Basis dran, um den Pegel
> zum ESP anzupassen. Der µC muß die sieben Segmente auslesen, wenn die
> Stelle aktiv ist.


Kannst du die bauteilanordnung zeichnen ( Skizze) ich verstehe daraus 
nicht ganz wo was anzuordnen wäre. Danke dir

von Speedy G. (Firma: ACME) (speedy-g)


Lesenswert?

Ein ESP32-cam wäre auch eine Lösung.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Speedy G. schrieb:
> Ein ESP32-cam wäre auch eine Lösung.
Dann das Bild in die KI reinkippen und nach der angezeigten Zahl fragen. 
Genauso geht das!

Manfred P. schrieb:
> Reduzieren auf NULL weil kompletter Schwachsinn.
Ich will nicht wissen, auf welchem Potential die PH-Dosieranlage fährt. 
Und was die dazu meint, wenn man ihr irgendeinen anderen GND aufzwängt.

> Die Ansteuerung der Anzeigen wird Multiplex sein, hast Du auch nicht
> verstanden.
Doch, das kann die Schaltung tadellos, weil ja jeder OK nur dann 
angesteuert wird, wenn die Commom-Leitung "seines" Sgements auf GND 
liegt.

Sven P. schrieb:
> Man braucht dort nur an den LED Anzeigen rumlöten
Die Schaltung taugt, aber ich würde die ganze Mimik mit DIL-Sockeln 
abgreifen und gar nicht auf der Leiterplatte rumlöten, sondern die 
OK-LED anstatt der LED der 7-Seg-Anzeige ansteuern. Den Wert, der dort 
angezeigt worden wäre, kann man dann ja am Handy ablesen...

Wenn es nicht potentialgetrennt sein muss, dann könnte ich mir da was 
mit einem 74er Latch ausdenken. Dazu muss man "einfach" nur die wirklich 
digitalen Signale abgreifen und immmer dann den 7-Segmentwert latchen, 
wenn die Kathode auf GND ist.

Rccardany R. schrieb:
> Habt ihr ideen?
Keine, die man so remote einem blutigen Laien einfach erklären könnte.
Aber ich würde zum Demultiplexen ein kleines FPGA nehmen. Damit ginge 
das super einfach. Und die erkannte Zahl könnte per SPI (oder einer 
seriellen Schnitte wie I2C oder RS232) vom ESP eingelesen werden.

Die für dich einfachste (weil softwarelastigste) wird aber wohl die mit 
der Kamera und dem OCR sein.

von Manfred P. (pruckelfred)


Lesenswert?

Lothar M. schrieb:
> Manfred P. schrieb:
>> Reduzieren auf NULL weil kompletter Schwachsinn.
> Ich will nicht wissen, auf welchem Potential die PH-Dosieranlage fährt.
> Und was die dazu meint, wenn man ihr irgendeinen anderen GND aufzwängt.

Wenn Du von einem Potentialversatz ausgehst, machen Optokoppler Sinn. 
Erinnere ich mich falsch, bist nicht Du derjenige, der häufig 
(angeblich) überflüssige Optokoppler anmeckert?

Welche Rückwirkung hat deren Strombedarf, wenn man sie direkt an die 
Segmente schaltet?

>> Die Ansteuerung der Anzeigen wird Multiplex sein, hast Du auch nicht
>> verstanden.
> Doch, das kann die Schaltung tadellos, weil ja jeder OK nur dann
> angesteuert wird, wenn die Commom-Leitung "seines" Sgements auf GND
> liegt.

Das sehe ich nicht so, man kann nicht zwischen Segment aus und Stelle 
nicht angesteuert unterscheiden.

Multiplex, der µC muß erfahren, welche Stelle gerade aktiv ist. Also 
sieben OK an die Segmente, die eh parallel liegen und je einen weiteren 
an die CC-Leitung. Dann kann der µC die beiden Common pollen und bei 
Umschaltung schnell die Segmente abfragen.

von Rainer W. (rawi)


Lesenswert?

Manfred P. schrieb:
> Das sehe ich nicht so, man kann nicht zwischen Segment aus und Stelle
> nicht angesteuert unterscheiden.

Wenn auf der Anzeige nichts dargestellt wird (alles aus), ist das auch 
egal.
Ansonsten wird irgendetwas leuchten und der µC sieht das an den Signalen 
der Optokoppler der betreffenden Stelle.

Manfred P. schrieb:
> Multiplex, der µC muß erfahren, welche Stelle gerade aktiv ist. Also
> sieben OK an die Segmente

Bei Abzeige eines pH-Wertes ist davon auszugehen, dass nur Ziffern 
angezeigt werden. Also reichen immer noch fünf Optokoppler, um die 
Ziffer zu erkennen. Wozu die sieben?
Mit einem weiteren zur Erkennung der Kathode kann der µC bei zwei 
Stellen erkennen, welche Ziffer gerade aktiv ist - zusammen also 6 OC

: Bearbeitet durch User
von Loco M. (loco)


Lesenswert?

Rainer W. schrieb:
> Bei Abzeige eines pH-Wertes ist davon auszugehen, dass nur Ziffern
> angezeigt werden. Also reichen immer noch fünf Optokoppler, um die
> Ziffer zu erkennen. Wozu die sieben?

Davon würde ich nicht ausgehen. Oft gibt es bei numerischen Anzeigen 
zusätzliche Pattern, z.B. E1 für eine Fehlermeldung oder -- für einen 
ungültigen Wert. Wenn schon Optokoppler, dann komplett alle Segmente 
erfassen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Manfred P. schrieb:
> Das sehe ich nicht so, man kann nicht zwischen Segment aus und Stelle
> nicht angesteuert unterscheiden.
Doch, wenn die Stelle nicht angesteuert wird, wird der "vorherige" Wert 
in den Kondensatoren am Transistor der OK "gespeichert". Das einzig 
"Unsaubere" an dieser asynchronen analogen Lösung ist also, dass der 
Übergang zwischen den Zahlen (Segment an/aus) nicht zuverlässig 
gleichzeitig ist. Beim Übergang von 1 nach 8 kann dann z.B. kurz auch 
die 7 oder die 3 oder die 9 erkannt werden. Das muss die Software 
abfangen und den Wert erst dann verwenden wenn er "ausreichend lang" 
unverändert ist.

Loco M. schrieb:
> Oft gibt es bei numerischen Anzeigen zusätzliche Pattern
Das kann man aber sicher in der Doku nachlesen. Und tatsächlich: es kann 
auch "rc" ausgegeben werden, allerdings nur dann, wenn sowieso manuell 
am Display gearbeitet wird. Während des Betriebs werden nur Zahlen 
agezeigt.

EDIT:

Loco M. schrieb:
> Rainer W. schrieb:
>> Also reichen immer noch fünf Optokoppler, um die Ziffer zu erkennen.
>> Wozu die sieben?
> Oft gibt es bei numerischen Anzeigen zusätzliche Pattern
wenn man die fünf Segmente a+b+e+f+g verwendet, kann man sogar das "rc" 
von den Zahlen unterscheiden. Man kann nur nicht das 'r' vom 'c' 
unterscheiden.

: Bearbeitet durch Moderator
von Rccardany R. (rccardany_r)


Lesenswert?

Sven P. schrieb:
> Habe jetzt doch mal konkrete Bauteile bei Reichelt rausgesucht mit denen
> das eigentlich funktionieren sollte. Den Plan habe ich auch nochmal
> angepasst:
>
> Widerstand:
> Flussspannung der LED in der 7 Segmentanzeige:2V
> Flussspannung der LED im Optokoppler LTV 827-C: 1V
> Bei einem Widerstand von 820 Ohm fließen dann 1,2mA durch die
> Optokopplerdiode. Müsste reichen. zumindest geht das Diagramm im
> Datenblatt soweit runter.
> Zur not kaufst du auch noch 470 Ohm Widerstände dann hast du die Option
> den Strom auf 2,1mA zu erhöhen wenn das mit den 820ern nicht klappt.
> Aber wie gesagt je kleiner dieser Widerstand wird desto dunkler Werden
> die 7 Segment Anzeigen.
>
> 
https://www.reichelt.de/widerstand-kohleschicht-820-ohm-0207-250-mw-5--1-4w-820-p1474.html?&trstct=pol_0&nbc=1
> 
https://www.reichelt.de/widerstand-kohleschicht-470-ohm-0207-250-mw-5--1-4w-470-p1432.html?&trstct=pol_0&nbc=1
>
> Optokoppler:
> Beim Optokoppler nimmst du den LTV 827-C. Die Endung -C sagt aus das die
> speziell selektiert sind und haben eine garantierte bessere Verstärkung.
> Denk dran IC Fassungen mit zu bestellen.
>
> 
https://www.reichelt.de/2-fach-optokoppler-5kv-35v-50ma-200-400-dip-8-ltv-827-c-p251950.html?&trstct=pos_0&nbc=1
>
> Kondensator:
> Als Kondensator nimmst du einfach den hier. Beachte das der richtig rum
> angeschlossen werden muss:
>
> 
https://www.reichelt.de/elko-radial-4-7-f-35-v-rm-2-0-85-c-2000h-20--rad-4-7-35-p15135.html?&trstct=pol_6&nbc=1

Danke für deinen Aufwand.
Habe das mal getestet. denke der Vorwiderstand mit 820 OHM war zu groß 
hier hat sich die Spannung am MPC von 3,3V nur auf 3,0V reduziert, was 
den Kanal weiterhin auf HIGH laufen ließ.
Habe dann den Widerstand auf 500 OHM reduziert am Optokoppler. Damit 
ließ sich die Spannung auf ca 0,7V am MCP absenken und der Kanal wird 
LOW.

Problem: Es werden alle Kanäle low, obwohl ich nur einen angeschlossen 
habe ?!
Was da los?

von Joachim B. (jar)


Lesenswert?

Rccardany R. schrieb:
> Was da los?

es nervt, denkst du wir können in deinen Kopf schauen?
denkst du wir wissen worauf du dich beziehst?
denkst du deine Prosa ersetzt ein Schaltbild komplett?

Ein 7.Segment auslesen ist pillepalle, auf low einen HC inverter 
nachschalten, auf high einfach auswerten.

: Bearbeitet durch User
von Rccardany R. (rccardany_r)


Lesenswert?

Joachim B. schrieb:
> Rccardany R. schrieb:
>> Was da los?
>
> es nervt, denkst du wir können in deinen Kopf schauen?
> denkst du wir wissen worauf du dich beziehst?
> denkst du deine Prosa ersetzt ein Schaltbild komplett?
>
> Ein 7.Segment auslesen ist pillepalle, auf low einen HC inverter
> nachschalten, auf high einfach auswerten.

Habe den Schaltplan von Sven P. umgesetzt ( wie auch von mir 
beschrieben) was wünschst du dir noch für einen Schaltplan?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Rccardany R. schrieb:
> Problem: Es werden alle Kanäle low, obwohl ich nur einen angeschlossen
> habe ?!
> Was da los?
Zeig einen Schaltplan, denn die weltweit ohne Übersetzung verständliche 
"Sprache" der Elektronik sind Schaltpläne. Und dann zeig deinen Aufbau, 
damit man sehen kann, ob der halbwegs zum Schaltplan passt.

> Habe das mal getestet. denke der Vorwiderstand mit 820 OHM war zu groß
> hier hat sich die Spannung am MPC von 3,3V nur auf 3,0V reduziert, was
> den Kanal weiterhin auf HIGH laufen ließ.
Im Schaltplan sieht man dann sofort, dass der OK samt Vorwiderstand 
parallel zur (roten) LED der Anzeige liegt. Und dessen LED deshalb 
natürlich zu wenig Strom bekommt.

> denke der Vorwiderstand mit 820 OHM war zu groß
Ein Tipp: steck mal die Segmentanzeigen aus. Und verwende die OK-LED 
statt der Anzeigen-LED.

Rccardany R. schrieb:
> was wünschst du dir noch für einen Schaltplan?
Deinen Schaltplan mit den Innenbeschaltung deines Geräts, soweit sie 
deine "Zusatzschaltung" betrifft. Das brauchen übrigens nicht "wir", 
sondern das brauchst du, wenn du das Gebastel in einem halben Jahr noch 
verstehen willst.

Manfred P. schrieb:
> Erinnere ich mich falsch, bist nicht Du derjenige, der häufig
> (angeblich) überflüssige Optokoppler anmeckert?
Hier die Lösung ohne OK... ;-)

So wie ich das sehe, ist die Multiplex-Umschaltung am Pin 11 des µC. Die 
Invertierung und Ansteuerung für die jeweilige Anzeige wird mit 3 
Transistoren gemacht. Also vom Pin 11 einen Pinchange-Interrupt auf dem 
auswertenden Rechner und in der zugehörigen ISR die Segmente einlesen.

Der Dezimalpunkt geht an den Pin 12 und die Segmente gehen über die 220 
Ohm SMD-Arrays an die nachfolgenden Pins 13 bis 20. Dort direkt an den 
µC-Pins (und nicht an den LEDs) gehören die Signale abgegriffen, denn 
dort haben sie noch brauchbare logische Pegel.

Zuvor jedoch sollte man mal das Timing mit dem Oszilloskop ausmessen, 
denn wegen "ghosting" könnte es sein, dass zum Zeitpunkt des 
Anzeigenwechsels niemals ein Segment eingeschaltet ist.

Damit würde die Schaltung etwa so aussehen, wenn der MSP430 mit 3V3 
versorgt ist:
1
MSP430                 ESP
2
  11 -----100R--------- Pinchange Interrupt
3
  14 -----100R--------- GPIO
4
   :       :             :     
5
  20 -----100R--------- GPIO
6
 GND ------------------ GND

: Bearbeitet durch Moderator
von Manfred P. (pruckelfred)


Lesenswert?

Rainer W. schrieb:
> Also reichen immer noch fünf Optokoppler, um die Ziffer zu erkennen.

Genau, Verrenkungen in der Software machen, um Bauteile für 1€ zu 
sparen.

Lothar M. schrieb:
> Im Schaltplan sieht man dann sofort, dass der OK samt Vorwiderstand
> parallel zur (roten) LED der Anzeige liegt. Und dessen LED deshalb
> natürlich zu wenig Strom bekommt.
Von mir gestern wurde ignoriert:
Manfred P. schrieb:
> Welche Rückwirkung hat deren Strombedarf, wenn man sie direkt an die
> Segmente schaltet?

>> denke der Vorwiderstand mit 820 OHM war zu groß

Überschlägig komme ich auf 800µA für den Optokoppler.

> Ein Tipp: steck mal die Segmentanzeigen aus. Und verwende die OK-LED
> statt der Anzeigen-LED.

Dann aber mit deutlich kleinerem oder ganz ohne Vorwiderstand. Wobei 
aufgrund der unterschiedlichen Flußspannung der Optokoppler sogar 
parallel zur Anzeige geht, dann bleibt die aber aus.

Rccardany R. schrieb:
> Habe dann den Widerstand auf 500 OHM reduziert am Optokoppler.

Auch damit ist er noch weitab vom sicheren Bereich des Optokopplers. Ich 
würde per Transistor an die Segmente gehen.

Lothar M. schrieb:
> Manfred P. schrieb:
>> Erinnere ich mich falsch, bist nicht Du derjenige, der häufig
>> (angeblich) überflüssige Optokoppler anmeckert?
> Hier die Lösung ohne OK... ;-)
>
> So wie ich das sehe, ist die Multiplex-Umschaltung am Pin 11 des µC.

Entscheide Dich, ob nun eine Potentialtrennung nötig ist oder nicht!

Lothar M. schrieb:
> Zuvor jedoch sollte man mal das Timing mit dem Oszilloskop ausmessen,

Ob er ein Scope hat?

> denn wegen "ghosting" könnte es sein, dass zum Zeitpunkt des
> Anzeigenwechsels niemals ein Segment eingeschaltet ist.

Es ist und bleibt Mist, die Anzeige auswerten zu wollen, ohne die beiden 
CC zu berücksichtigen. Der Bastelkram mit Elkos auf den OK-Ausgängen ist 
auch sehr windig - das ganze Ding ist festgefahren, geht in die falsche 
Richtung.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Manfred P. schrieb:
> Überschlägig komme ich auf 800µA für den Optokoppler.
Welchen Überschlag hast du da gemacht?
Der Optokoppler liegt bei eingesteckter 7-Segment-Anzeige parallel zur 
Segment-LED:
1
                      Stecksockel
2
                       abcdefg  
3
MSP Ausgang ----220R------O--------820R-----.
4
                          |                 |  |/
5
                          V=>               V=>|  OK
6
                          - LED             -  |>
7
                          |                 |
8
                   .------O-----------------'
9
                 |/      CC 
10
             ----|
11
                 |>.
12
                   |
13
                  ---
Und es ist Zufall, dass die OK-IR-LED überhaupt leuchtet.
Wie ich schonmal schrieb: einfach die OK-LED statt der Anzeigen-LED 
verwenden. Dann reicht der Strom dank der 220 Ohm Widerstände locker:
1
                      Stecksockel
2
                       abcdefg  
3
MSP Pin --------220R------O-----------------.
4
    13..20                                  |  |/
5
                         Anzeige            V=>|  OK
6
                         ausgesteckt        -  |>
7
                                            |
8
                   .------O-----------------'
9
                 |/      CC 
10
             ----|
11
                 |>.
12
                   |
13
                  ---

> Entscheide Dich, ob nun eine Potentialtrennung nötig ist oder nicht!
Ich kenne das Gesamtsystem nicht, deshalb kann ich es nicht entscheiden. 
Aber wenn ich die Aufgabe zu lösen hätte, dann wäre die inzwischen ohne 
Optokoppler gelöst (den entsprechenden Schaltplan habe ich schon 
gezeigt). Aber im Gegensatz zum TO bin ich eben auch ein Profi und kann 
die Zusammenhänge einstufen und die Wechselwirkungen abschätzen. Und 
deshalb hätte ich zuallererst den Schaltplan des Geräts abgemalt (das 
dauert keine halbe Stunde und ist eine nette Übung) und das Timing 
ausgemessen (das ist sowieso nötig, wenn ich ein Signal 
"desereialisieren" oder "demultiplexen" will).

> ohne die beiden CC zu berücksichtigen
Es gibt nur den einen Multiplex-Pin 11 am uC. Das "andere" CC ist die 
Invertierung davon.

> Ob er ein Scope hat?
Ohne so ein Gerät braucht man gar nicht mit der Elektronikentwicklung 
anfangen. Und billiger als heute war so ein Ding noch nie zu bekommen.

: Bearbeitet durch Moderator
von Steve van de Grens (roehrmond)


Lesenswert?

Lothar M. schrieb:
> Und es ist Zufall, dass die OK-IR-LED überhaupt leuchtet.

Wieso das?

LEDs mit sichtbarem Licht haben mindestens 1,6 Volt und Optokoppler 
kommen mit 1,3 Volt aus, soweit ich weiß.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Manfred P. schrieb:
> Rainer W. schrieb:
>> Also reichen immer noch fünf Optokoppler, um die Ziffer zu erkennen.
> Genau, Verrenkungen in der Software machen
Da muss man sich nicht mehr verrenken als bei 7 Segmenten: egal ob aus 5 
oder 7 Eingängen, wird aus dem Eingansvektor erst mal eine Binärzahl. 
Und aus der wird dann wieder die angezeigte Dezimalzahl.

Weil man das bei 5 Segmenten über eine 32 Byte große Tabelle machen 
kann, geht das ganz kompakt, wenn man die Eingänge in der richtigen 
Reihenfolge (gfeba) an einen Port angeschlossen hat:
1
uint8_t anzeigewert;
2
uint8_t seg2int = {                       // r,c
3
  8,  0,  6,  0,  9,  4,  5,  0,  2,  0,  0, 99,  3,  0,  0,  0,
4
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  7,  1,  0, 0};
5
6
anzeigewert = seg2int[port_einlesen() & 0x1f]; // Eingangsvektor als Index nehmen
Bei r und c wird der Wert 99 zurückgegeben.

> um Bauteile für 1€ zu sparen.
Man gewinnt nichts, wenn man 7 Segmente nimmt und den 1 € zusätzlich 
ausgibt.

: Bearbeitet durch Moderator
von Dietrich L. (dietrichl)


Lesenswert?

Steve van de Grens schrieb:
> und Optokoppler
> kommen mit 1,3 Volt aus, soweit ich weiß.

PC917 von Sharp:
https://download.datasheets.com/pdfs/quickdata/shp/pc917x_e.pdf
"Forward voltage Typ. 1,7V, Max. 1,95V"

von Steve van de Grens (roehrmond)


Lesenswert?

Dietrich L. schrieb:
> PC917 von Sharp:
> "Forward voltage Typ. 1,7V, Max. 1,95V"

Interessant! Man entdeckt immer noch etwas neues.

von Rainer W. (rawi)


Lesenswert?

Manfred P. schrieb:
> Rainer W. schrieb:
>> Also reichen immer noch fünf Optokoppler, um die Ziffer zu erkennen.
>
> Genau, Verrenkungen in der Software machen, um Bauteile für 1€ zu
> sparen.

Hääh - was für Verrenkungen meinst du?
Es sollen die angezeigten Zahlen erkannt werden und nicht eine 7-Segment 
Anzeige dupliziert werden.

Welche Vereinfachung siehst du in der Software, wenn sie 7 an Stelle von 
5 Segmenten auswertet?

von Sven P. (svepas)


Lesenswert?

Rccardany R. schrieb:
> Problem: Es werden alle Kanäle low, obwohl ich nur einen angeschlossen
> habe ?!
> Was da los?
Eine Idee was sein könnte:
Auch wenn du erstmal nur einen Kanal angeschlossen hast musst du 
trotzdem  alle "weak pull-up" im MCP23017 aktivieren. Dann hast du an 
den nicht angeschlossenen Pins einen definierten high Pegel. Wenn du das 
nicht machst flattern die Eingänge offen rum. Dann kann alles passieren 
z.B:
Der Eingang schwingt wild herum.
Irgendwelche Kriechstöme von benachbarten Pins auf der Leiterplatte 
werden stattdessen eingelesen.
Interne Schaltvorgänge im MCP23017 lassen die Eingänge umherschalten.
Selbst ein statisch aufgeladenes Stück Plastik was du in die Nähe hälst 
kann dann den Eingang umschalten.
Wenn du deinen Finger an den Pin dranhälst wirkst du als Antenne und der 
Eingang schwingt dann oft mit der 50Hz Netzfrequenz mit.

von Horst S. (h3aau)


Lesenswert?

moin,
recht lustig das hier mit zulesen.
der MCP23017 wird dochh per I2C angesteuert.
mit dem esp32 die daten am SDA/SCL mitlesen und schon kannst du tun und 
lassen was du willst ohne dich um die duslige anzeige zu kümmern.
google mal nach I2CScanner.

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Lothar M. schrieb:
> Manfred P. schrieb:
>> Überschlägig komme ich auf 800µA für den Optokoppler.
> Welchen Überschlag hast du da gemacht?
> Der Optokoppler liegt bei eingesteckter 7-Segment-Anzeige parallel zur
> Segment-LED:

Ich nehme rot mit 1,7 Volt und den Optokoppler mit 1 Volt an.
Das scheint so halbwegs zu passen, weil er schrieb, dass die mit 500 Ohm 
durchsteuern würden. Es wird nie stabil werden, keinerlei Reserve drin.

Lothar M. schrieb:
> Und es ist Zufall, dass die OK-IR-LED überhaupt leuchtet.

Ja!

> Wie ich schonmal schrieb: einfach die OK-LED statt der Anzeigen-LED
> verwenden. Dann reicht der Strom dank der 220 Ohm Widerstände locker

Ja, leider ist dann die Anzeige weg - on man das will?

Lothar M. schrieb:
>> Entscheide Dich, ob nun eine Potentialtrennung nötig ist oder nicht!
> Ich kenne das Gesamtsystem nicht, deshalb kann ich es nicht entscheiden.
> Aber wenn ich die Aufgabe zu lösen hätte, dann wäre die inzwischen ohne
> Optokoppler gelöst

Ist das Dir nicht peinlich, erst Optokoppler zu verteidigen und nun auf 
einmal doch ohne?

Lothar M. schrieb:
>> Ob er ein Scope hat?
> Ohne so ein Gerät braucht man gar nicht mit der Elektronikentwicklung
> anfangen.

Besser ist das, anstatt zu raten, wie oft man abfragen muß.

von Manfred P. (pruckelfred)


Lesenswert?

Dietrich L. schrieb:
> Steve van de Grens schrieb:
>> und Optokoppler
>> kommen mit 1,3 Volt aus, soweit ich weiß.
> PC917 von Sharp:
> https://download.datasheets.com/pdfs/quickdata/shp/pc917x_e.pdf
> "Forward voltage Typ. 1,7V, Max. 1,95V"

Na und? Oben wurde der LTV827 vorgeschlagen, der laut Datenblatt
typ. 1,2 / max. 1,4 Volt hat.

Bei sichtbaren LEDs (weiß) steht meist typ. 3 Volt, tatsächlich glimmen 
die schon ab 2,5 Volt - das wird auch beim Opto so sein, mit sehr 
gerimgem Strom rührt der sich unterhalb des typ-Wertes.

Wie ich schon sagte: Es bleibt Bastelei ohne Reserve, instabil.

Steve van de Grens schrieb:
>> "Forward voltage Typ. 1,7V, Max. 1,95V"
> Interessant! Man entdeckt immer noch etwas neues.

Vor allem ungeeignete Bauteile.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Manfred P. schrieb:
> Ist das Dir nicht peinlich, erst Optokoppler zu verteidigen und nun auf
> einmal doch ohne?
Nein. Man sollte beide Möglichkeiten kennen. Und wissen, wann welche 
davon zur Lösung einer Aufgabe besser geeignet ist. Und ich habe auch 
geschrieben, wie ich das hier nach wenigen Stunden gelöst hätte.

Manfred P. schrieb:
>>> Ob er ein Scope hat?
>> Ohne so ein Gerät braucht man gar nicht mit der Elektronikentwicklung
>> anfangen.
> Besser ist das, anstatt zu raten, wie oft man abfragen muß.
Und vor allem: wann man die Segmente einlesen muss.

: Bearbeitet durch Moderator
von Rainer W. (rawi)


Lesenswert?

Manfred P. schrieb:
> Ich nehme ... und den Optokoppler mit 1 Volt an.

Von einer falschen Annahme alleine läuft der Optokoppler nicht 
vernünftig - mehr steht im Datenblatt.

> Bei sichtbaren LEDs (weiß) steht meist typ. 3 Volt, tatsächlich glimmen
> die schon ab 2,5 Volt - das wird auch beim Opto so sein, ...

Es gibt eine Kennlinie, die angibt, welche Spannung bei welchem Strom 
und welcher Temperatur über der Diode abfällt.
Ein heißes Stück Kohle glimmt, aber bestimmt keine LED im Optokoppler.

Wenn der Ausgang irgendein vernünftiges Signal liefern soll, muss 
ausreichend Strom fließen, alleine schon um irgendwelche Kapazitäten in 
absehbarer Zeit umzuladen.

: Bearbeitet durch User
von Björn W. (bwieck)


Lesenswert?

Ich hätte da 2 Stück Oktal-D-Latches an die LEDs gehängt, die gibt es 
bestimmt auch für 3,3V. Dann ist der Multiplex raus und man kann in 
aller Ruhe decoden.

von Rainer W. (rawi)


Lesenswert?

Björn W. schrieb:
> Ich hätte da 2 Stück Oktal-D-Latches an die LEDs gehängt, die gibt es
> bestimmt auch für 3,3V. Dann ist der Multiplex raus und man kann in
> aller Ruhe decoden.

Du unterschätzt die Rechenpower so eines µC. Für das "Decoden" braucht 
er nur wenige Taktzyklen.

Um die Anzeige zu dekodieren, muss der µC nur auf das Umschalten der 
Anode reagieren und die 5 Segmente auslesen, sobald stabil. Damit geht 
er in eine Tabelle und liest dort direkt die binäre Ziffer ab. Was soll 
er da groß "in aller Ruhe decoden"?

von Björn W. (bwieck)


Lesenswert?

Rainer W. schrieb:
> Um die Anzeige zu dekodieren, muss der µC nur auf das Umschalten der
> Anode reagieren und die 5 Segmente auslesen, sobald stabil.

Muss man halt wissen ab wann das stabil ist. Das würde mit den Latches 
wegfallen weil die immer stabil den Zustand vor letzer Änderung 
abbilden.

von Rainer W. (rawi)


Lesenswert?

Björn W. schrieb:
> Muss man halt wissen ab wann das stabil ist.

Genau

> Das würde mit den Latches wegfallen weil die immer stabil den Zustand
> vor letzer Änderung abbilden.

Würde es nicht. Auch bei den Latches musst du wissen, wann das Signal 
stabil ist, so dass die Segmentdaten vom Latch übernommen werden können.
Es ist egal, ob der µC dann die GPIO-Pins einliest oder das Latch seine 
Flanke für die Datenübernahme bekommt.

: Bearbeitet durch User
von Manfred P. (pruckelfred)


Lesenswert?

Björn W. schrieb:
> Ich hätte da 2 Stück Oktal-D-Latches an die LEDs gehängt, die gibt es
> bestimmt auch für 3,3V. Dann ist der Multiplex raus und man kann in
> aller Ruhe decoden.

Du hast das 'Problem' nicht verstanden, nämlich die Spannungen vom 
Display auf für den µC passende Pegel umzusetzen, das ist erstmal 
Analogtechnik.

Deine D-Latches sind sinnfrei, solange man deren Triggerpunkt nicht 
kennt. Überflüssig sind sie sowieso, das bisschen Multiplex kann der µC 
fast nebenbei pollen.

von Rainer W. (rawi)


Lesenswert?

Manfred P. schrieb:
> Du hast das 'Problem' nicht verstanden, nämlich die Spannungen vom
> Display auf für den µC passende Pegel umzusetzen, das ist erstmal
> Analogtechnik.

Dann wird es höchste Zeit, den Thread in das passende Unterforum zu 
verschieben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.