Forum: Mikrocontroller und Digitale Elektronik 7-Segment Anzeigen ansteuern


von Dominik H. (hardysaar)


Lesenswert?

Hallo zusammen,

ich bräuchte mal einen Denkanstoß in die hoffentlich richtige Richtung.

Ich möchte mir für meine CNC-Fräse eine Positionsanzeige der X-, Y- und 
Z-Achse bauen.

Das Ganze soll mit 7-Segment-Anzeigen realisiert werden, da die Anzeige 
auch auf 2 Meter gut abzulesen sein soll.


Nun mein Problem:
Ich brauche pro Achse 8 Dezimalstellen.

3 X 8 = 24 7-Seg.-Anzeigen

7 x 24 = 168 einzelne Ausgänge am µC.

Lösung: Schieberegister und für jede 7-Seg.-Anzeige einen Transistor, 
der selbige ansteuert, wenn sie aktualisiert/angezeigt werden soll. 
Soweit so gut. Damit kann ich die Anzahl der Ausgänge schon mal 
reduzieren. Mit dieser Lösung bräuchte ich pro Achse 1 Schieberegister 
und 7 Transistoren.
Macht 10 Ausgänge pro Achse - in Summe 30.


Macht es nun Sinn oder funktioniert das überhaupt, dass ich die 
Ansteuerung der Transistoren ebenfalls über ein Schieberegister laufen 
lasse?

Getreu dem Spruch: "Kann man so machen... Ist dann aber sche...!"

Somit bräuchte ich ja nur noch 4 Schieberegister zu je 3 Anschlüssen und 
käme mit nem kleineren µC hin.

Bleibt nur die Frage nach der Aktualisierungsgeschwindigkeit. Wenns 
flackert siehts doof aus...


Meinungen? Vorschläge?

von Michael B. (laberkopp)


Lesenswert?

Vergiss das Gebastel, billiger als die Anzeigen alleine:

https://www.ebay.de/itm/MAX7219-8-Digit-LED-Display-7-Segment-Digital-Tube-For-Arduino-Raspberry-Pi/272384086860

(du hast ja nicht geschreiben, wie gross die Ziffern sein sollen).

von Lenny D. (le-do)


Lesenswert?


von Stefan (Gast)


Lesenswert?

Hallo
Ich würde immer 8 zusammenfassen.
Also 3x8 und jede Anzeige über ein
Schieberegister 4094 ansteuern.
Macht dann 24 4094 und 9 Leitungen
am Controller. Wenn du die Anzeige mit 5V
betreibst, brauchst du auch keine Widerstände.
Passen alle unter die Segmentanzeige.
Steuere damit auch 8 Anzeigen. Die Geschwindigkeit
ist sehr schnell bei der Anzeige. Da brauchst du dir
keine Gedanken machen.

von U. M. (oeletronika)


Lesenswert?

Hallo,
> Dominik H. schrieb:
> Ich möchte mir für meine CNC-Fräse eine Positionsanzeige der X-, Y- und
> Z-Achse bauen.
> Das Ganze soll mit 7-Segment-Anzeigen realisiert werden, da die Anzeige
> auch auf 2 Meter gut abzulesen sein soll.
Das ist kein wirklicher Grund.

Was willst du dafür ausgeben. Falls es richtig LowCost sein soll, dann 
nimm die fertigen Module, die dir Laberkopp oben zeigt.

Alternativ sind auch schöne große LCD-Panels mit ordentlicher 
Hintergrundbeleuchtung ein Option z.B. 4x20 Zeichen.
Dann reicht ein ganz kleiner uC für den 8 Bit-Datenbus und ca. 3 
Steuerleitungen. Große Panels sind allerdings nicht ganz billig.
https://www.reichelt.de/LCD-Module-DIP-Anschluss/EA-DIP203B-4/3/index.html?ACTION=3&GROUPID=3009&ARTICLE=129612&START=0&OFFSET=16&;
oder noch besser richtig schön groß:
https://www.reichelt.de/LCD-Module-DIP-Anschluss/EA-DIP203B-6/3/index.html?ACTION=3&GROUPID=3009&ARTICLE=129614&START=0&OFFSET=16&;

> Meinungen? Vorschläge?

Stichworte: Multiplexen wurde schon genannt.
http://lednique.com/display-technology/7-segment-display-basics/
Allerdings sollte man das nicht übertreiben, wenn die Segmente hell 
leuchten sollen. Die Pulsströme müßten sonst sehr groß werden.

Dass es BCD to 7-Segment-Decoder gibt ist dir bekannt?
Da brauchst du nur noch 4 Steuerleitungen, die du auch per 
Schieberegister ansteuern kannst.
Gruß Öletronika

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Dominik H. schrieb:
> Nun mein Problem:
> Ich brauche pro Achse 8 Dezimalstellen.
>
> 3 X 8 = 24 7-Seg.-Anzeigen

 Und der ganzzahlige Anteil wird nicht angezeigt ?


> Lösung: Schieberegister und für jede 7-Seg.-Anzeige einen Transistor,
> der selbige ansteuert, wenn sie aktualisiert/angezeigt werden soll.

 Hmmm, das ist nur eine mögliche Lösung aber bestimmt nicht die Beste.


> Meinungen? Vorschläge?

 Nimm doch 3 * MAX7219, dann brauchst du nur 2 Data Leitungen
 plus 1 Steuerleitung, ergibt 3 Leitungen insgesamt (und das für
 beliebig viele Anzeigen).
 Dann kannst du auch die Helligkeit einstellen.

von m.n. (Gast)


Lesenswert?

Dominik H. schrieb:
> Das Ganze soll mit 7-Segment-Anzeigen realisiert werden, da die Anzeige
> auch auf 2 Meter gut abzulesen sein soll.

Da reichen Anzeigen mit 13-14 mm Ziffernhöhe.
Die einfachste Ansteuerung ist seriell mit Schieberegistern; ohne 
Flackern, ohne pulsierende Ströme bei der Spannungsversorgung, wenige 
Pins zu Ansteuerung, kaskadierbar und auch in größerer Entfernung vom µC 
betreibbar.
Beispiel für sechs Stellen: 
http://mino-elektronik.de/7-Segment-Variationen/LCD.htm#led1

Eine Alternative wäre ein TFT mit 4,3" oder 5,7" mit RS232-Ansteuerung.

von Stefan F. (Gast)


Lesenswert?

Da die Anzeige schön hell werden soll würde auch ich jeder Anzeige ein 
Schieberegister spendieren. Ich benutze dazu gerne den 75HC595 mit 10mA 
LED-Strom.

Falls es besonders große Anzeigen sind, die mehr als 4V oder 10mA 
brauchen, dann nimm welche mit gemeinsamer Anode und Schieberegister vom 
Typ TPIC6B595. Der hat die Transistoren schon integriert, sie vertragen 
150mA.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Alternativer Vorschlag:

Nimm ein 2.8-Zoll Nextion-Display mit vorgeschaltetem Arduino. Da kannst 
du noch zusätzliche Text/Statusanzeigen unterbringen oder z.B. für die 
Koordinaten unterschiedliche Farben verwenden usw.

Nextions haben einen eigenen Controller und kommunizieren per RS232 auf 
Kommando-Basis, entlasten damit den steuernden Controller extrem.

Und bereits mit an Bord: Ein Touchscreen (und entsprechende 
Button-Objekte in der Firmware), kann man nutzen, muss man nicht ... 
aber der Appetit kommt bekanntlich beim Essen ... :-)

Beispiele:

https://www.youtube.com/watch?v=A4_mC6n_ajc

https://www.youtube.com/watch?v=wr8Tif5CjHs

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Dominik H. schrieb:

> Ich möchte mir für meine CNC-Fräse eine Positionsanzeige der X-, Y- und
> Z-Achse bauen.

> Ich brauche pro Achse 8 Dezimalstellen.
> 3 X 8 = 24 7-Seg.-Anzeigen
> 7 x 24 = 168 einzelne Ausgänge am µC.

Das erscheint mir auf so vielen Ebenen falsch. Warum soll eigentlich ein 
µC die Anzeigen steuern? Sind doch am Ende nur Zähler. Und wieso 
eigentlich ein µC für alle drei Achsen? Die Achsen sind doch 
unabhängig. Last not least gibt es für genau diesen Anwendungsfall 
fertige IC wie den bereits angesprochenen MAX7219. Oder wenn man 
statisch ansteuern will, TPIC6B595.

Das eigentliche Problem bei dieser Aufgabenstellung ist ja wohl die 
Positionserfassung selber. Denn es versteht sich von selbst, daß man die 
reale Position des Werkzeugs erfassen und nicht nur die Sollposition 
anzeigen will. Bei 8 Stellen wird man nicht mehr als 3 vor dem Komma 
brauchen (dann geht es bis 999mm = knapp 1m). Das LSD ist dann 10µm. Ich 
frage mich, wie du das messen willst.

von Klaus (Gast)


Lesenswert?

Michael B. schrieb:
> Vergiss das Gebastel, billiger als die Anzeigen alleine:
>
> Ebay-Artikel Nr. 272384086860

Bei den Preisen ist selbst das Nachdenken, wie man es anders machen 
kann, Verschwendung. Ebenfalls die Überlegung, ob man 8 Stellen braucht.

Axel S. schrieb:
> Das eigentliche Problem bei dieser Aufgabenstellung ist ja wohl die
> Positionserfassung selber.

Ich hab das mal mit nem billigen digitalen Messschieber gemacht. Die 
haben eine digitale Schnittstelle, mit der man den Messwert auslesen 
kann. Den dann passend bearbeiten und an der richtigen Stelle andübeln. 
Dazu noch ein kleiner µC und eine USB Wandwarze und fertig ist eine 
Positionsanzeige für ganz kleines Geld.

MfG Klaus

von m.n. (Gast)


Lesenswert?

Frank E. schrieb:
> Nimm ein 2.8-Zoll

Es geht hier nicht um eine Großbildleinwand in der Puppenstube, sondern 
um eine Anzeige, die sich aus Entfernung ablesen läßt.

Axel S. schrieb:
> Das erscheint mir auf so vielen Ebenen falsch. Warum soll eigentlich ein
> µC die Anzeigen steuern? Sind doch am Ende nur Zähler. Und wieso
> eigentlich ein µC für alle drei Achsen? Die Achsen sind doch
> unabhängig. Last not least gibt es für genau diesen Anwendungsfall
> fertige IC wie den bereits angesprochenen MAX7219. Oder wenn man
> statisch ansteuern will, TPIC6B595.

Das erscheint mir auf so vielen Ebenen falsch.
Ohne µC würden ja noch extra Zähler gebraucht.
Wie sollen denn Max oder TPIC ohne µC angesteuert werden?
Warum denn mehrere µCs, wenn einer schon reicht?

Axel S. schrieb:
> Das eigentliche Problem bei dieser Aufgabenstellung ist ja wohl die
> Positionserfassung selber. Denn es versteht sich von selbst, daß man die
> reale Position des Werkzeugs erfassen und nicht nur die Sollposition
> anzeigen will. Bei 8 Stellen wird man nicht mehr als 3 vor dem Komma
> brauchen (dann geht es bis 999mm = knapp 1m). Das LSD ist dann 10µm. Ich
> frage mich, wie du das messen willst.

Folgt man meinem o.g. Link, dann kommt nach der 6-stell. Anzeige eine 
Schaltung mit einem AVR, die die Ist-Position per Quadraturdekoder 
anzeigen kann. Das reicht für 999.999 mm mit 1 µ Auflösung. Bei 
negativen Wegen muß die oberste Stelle entfallen und es werden -99.999 
mm angezeigt.
Die Eagle .brd-Datei ist dabei; ebenso das Programm inkl. 
Quadraturdekoder. Die Schaltung müßte man 3 x für X, Y und Z-Achse 
aufbauen.
Fertig!

von m.n. (Gast)


Lesenswert?

Klaus schrieb:
> Ich hab das mal mit nem billigen digitalen Messschieber gemacht.
> ...
> und fertig ist eine Positionsanzeige für ganz kleines Geld.

Noch ein Spielzeug für die Puppenstube.

von Klaus (Gast)


Lesenswert?

m.n. schrieb:
> Noch ein Spielzeug für die Puppenstube.

Das kann so sein, ist aber besser als alles hier sonst erwähnte. Das 
wird nämlich nie fertig. Da könnte man die Anzeige auch malen, 
ausdrucken und zusammen mit dem nicht funktionierenden Schaltplan an die 
Wand kleben.

MfG Klaus

von georg (Gast)


Lesenswert?

m.n. schrieb:
> ebenso das Programm inkl.
> Quadraturdekoder. Die Schaltung müßte man 3 x für X, Y und Z-Achse
> aufbauen.

Was bei allen bisherigen Antworten nicht berücksichtigt ist: er hat eine 
CNC-Maschine, also ist da bereits eine Positionserfassung eingebaut. Wie 
die aufgebaut ist und wie man da etwas "abzapfen" kann fragt hier 
niemand.

An jede Achse zusätzlich zum vorhandenen Encoder oder Glasmassstab noch 
einen weiteren für die Anzeige einzubauen hat auch seine massiven 
Tücken, denn so ohne weiteres stimmt ein daran angeschlossener Zähler 
mit der für das Fräsen erfassten Position nicht überein, damit wäre die 
Anzeige weitgehend sinnlos.

Ein Konzept mit Encoder, Zähler und Anzeige wäre nur sinnvoll, wenn der 
TO in Wirklichkeit garkeine CNC-Steuerung hat. Da weiss ja niemand was 
genaues.

Georg

von m.n. (Gast)


Lesenswert?

georg schrieb:
> Was bei allen bisherigen Antworten nicht berücksichtigt ist: er hat eine
> CNC-Maschine, also ist da bereits eine Positionserfassung eingebaut. Wie
> die aufgebaut ist und wie man da etwas "abzapfen" kann fragt hier
> niemand.

Das wird der TO vielleicht selber wissen, denn der gewählte Betreff 
heißt
"7-Segment-Anzeigen ansteuern".

georg schrieb:
> Da weiss ja niemand was Genaues.

Dieses Forum lebt doch von Überraschungen ;-)

von Peter D. (peda)


Lesenswert?

Dominik H. schrieb:
> 3 X 8 = 24 7-Seg.-Anzeigen

Ich hab das mal für 7 3-stellige Anzeigen aufgebaut, d.h. 21 mal 74HC595 
+ 8*470R Widerstandsnetzwerk. Als µC ein ATtiny261. Der 74HC595 hat ein 
freundlicheres Pinout (7 Ausgänge auf einer Seite) als der 74HC4094.
Das Layout ist sehr einfach, man routet ein Digit und kopiert es 
entsprechend oft und dann nur noch verbinden. In Altium kann man das 
schön mit "copy Room" machen. Die Displays habe ich auf der Unterseite 
plaziert.

von m.n. (Gast)


Lesenswert?

Peter D. schrieb:
> Der 74HC595 hat ein
> freundlicheres Pinout (7 Ausgänge auf einer Seite) als der 74HC4094.

Bei Anzeigen >= 13 mm ist es 'freundlicher' je vier Pins zu der einen 
und je vier Pins zu der anderen Seite zu verdrahten: 
http://mino-elektronik.de/bilder/Digit_6/Digit6-HEF4094_2_1_1.jpg
;-)

von m.n. (Gast)


Lesenswert?

... und auch mit HC4094 und Widerständen: 
http://mino-elektronik.de/bilder/Digit_6/Digit6-74HC4094_1_1_1.jpg

von Maxim B. (max182)


Lesenswert?

Peter D. schrieb:
> Ich hab das mal für 7 3-stellige Anzeigen aufgebaut, d.h. 21 mal 74HC595
> + 8*470R Widerstandsnetzwerk.

Da solche Aufgaben immer wieder kommen, habe ich MAX7219 in China 
gekauft: 30x DIP-24 und 50x SO-24. Auch fertige Module mit 8x 10mm 
Zeichen. So habe ich dieses Problem für die nächsten 10 Jahre mit 
Garantie gelöst.

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Maxim B. schrieb:
> Da solche Aufgaben immer wieder kommen, habe ich MAX7219 in China
> gekauft

Natürlich, der wurde ja auch dafür gebaut,
wenn man mit dem geringen mittleren Strom und der resultierenden 
Helligkeit auskommt.

von Maxim B. (max182)


Lesenswert?

Michael B. schrieb:
> Maxim B. schrieb:
>> Da solche Aufgaben immer wieder kommen, habe ich MAX7219 in China
>> gekauft
>
> Natürlich, der wurde ja auch dafür gebaut,
> wenn man mit dem geringen mittleren Strom und der resultierenden
> Helligkeit auskommt.

Für heutigen LED reicht das. Auch wenn alle 8 Zeichen benutzt, 40/8=5 mA 
! In Praxis muß man Strom eher reduzieren, das ist auch sehr leicht: nur 
1x Widerstand.

von Dominik H. (hardysaar)


Lesenswert?

Danke für die Antworten...

Ich werds sehr wahrscheinlich mit dem MAX7219 machen. Scheint mir die 
geeignetste Lösung zu sein.

Die Idee mit dem Touch Display ist auch nicht schlecht, allerdings bei 
Öl, Fett, Staub und Metallspänen wage ich die Lebensdauerprognose: nicht 
lange...



Zur CNC:
Die Maschine steht. Komplett. Die Position kommmt vom Steuerungsprogramm 
Mach3 über Modbus an den AVR.

Ich brauche eine zusätzliche Positionsanzeige, da der Bildschirm je nach 
Blickwinkel nicht mehr einsehbar ist. Somit ist eine separate Anzeige 
für alle 3 Achsen notwendig.



Bei den Dezimalstellen hab ich mich etwas verwirrend ausgedrückt. Ich 
brauche 4 Vorkommma- und 4 Nachkommastellen. Also 8 Ziffern insgesamt.


Zur Frage warum ich nicht selbst auf solche Bauteile wie den MAX7219 
komme...
Ich komme aus der Industrieautomation und kann mit Grundkenntnissen der 
Elektronik dienen. Viel mehr aber leider nicht.

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.