4 Digits 7 Segment Display Problem

Hallo erstmal,

hab mir vor einigen Tagen ein Arduino Uno R3 Starterkit gekauft. (Elegoo)
Hab auch ziemlich viel rumprobiert, gespielt, gebastelt, geflucht und gefreut.

Bin momentan dabei ein 4Digits zu programmieren mithilfe des Schieberegisters 74HC595 welches Zahlen von 0-9999 ausgeben soll.
Die Zahl wird anhand eines Potis ausgelesen. Mit der Library sevenseg.h geht alles. Ich möchte aber zum üben ohne Library programmieren.

Soweit funktioniert alles einwandfrei… bis auf die “Helligkeit” bzw Steuerung der Kathoden wenn ich das richtig sehe/verstehe. Die Segmente die nicht leuchten sollen leuchten trotzdem leicht, sodass es nicht ganz einfach ist die Zahl zu lesen. Liegt das vielleicht am Schieberegister?

Ich habe kaum Vorkenntnisse im programmieren … lediglich ein bisschen Java hab ich mal gemacht.
Deswegen schicke ich mal meinen ganzen Code, wenn jemand lust hat würde ich mich über Verbesserungen freuen… Kenne kaum Befehle und stütze mich auf die, die ich kenne. Ich hoffe mein Problem wird ersichtlich.

Vielen Dank!

Der Code

Ist leider über 9000 Zeilen deswegen musste ich das auf pasted.co machen.
Ansonsten ist es als Anhang

Bild

4_Digit_7_Segment_OHNE_Library.ino (13 KB)

Ohne Schaltbild läßt sich schwer sagen, woher das Glimmen der Segmente kommt. Wenn Du kein Multiplex verwendest, dann könnte es daran liegen, daß das Latch Signal nicht stimmt. Erst wenn alle neuen Daten rausgeschoben sind, sollte dort ein Impuls draufgegeben werden, mit dem die Werte ins Ausgangsregister übernommen werden.

Wenn Du den Code für die Ansteuerung in eine eigene *.cpp Datei legst, kannst Du diese (kleine) Datei direkt zeigen, und sie auch als Bibliothek in anderen Projekten verwenden.

Vielen Dank schonmal. Ich habe hinter jedem Digit eine Art Leerlauf geschrieben. Heißt das alle 8 Positionen einmal auf "0" geschrieben werden. Soweit so gut jetzt hab ich kein bis kaum glimmen. Manchmal leuchtet ein gesamtes Digit nicht auf .. Kommt auf die Zahl an, aber ist nicht immer so also bin ich noch auf der Fehlersuche. Aber vielen Dank schomal das größte Problem ist erledigt :slight_smile: