7 Segment Uhr mit LED-Stripes

Hallo zusammen,

Ich weiß leider nicht mehr weiter darum Frage ich hier nach Hilfe.

Zu meinem Projekt: Ich möchte gerne eine 7-Segment-Uhr an meine Wand hängen. Die die es auf Amazon etc. Zu kaufen gibt waren mir alle zu klein deshalb dachte ich mir: baue ich sie mir doch selbst. In meiner Ausbildung zum Fachinformatiker hatte ich schon Erfahrung mit C#-Programmierung deshalb hatte ich mich für einen Arduino entschieden. Das Programmieren der Uhr selbst war kein Problem.

Um die LED-Stripes anzusteuern möchte ich 4 Shiftregister vom Typ CD4090BE (da dieser auch mit 12V läuft) und 28 Mosfets (für jedes Segment) verwenden. Auch die Mosfets funktionieren super.

Das ganze System betreibe ich mit 12V. 12V gehen an den VIN-Port vom Arduino-Uno. GND auf -. VDD vom Shiftregister geht auch auf 12V. VSS geht auch auf -.

Jetzt zum Problem: Ich hatte mit Hilfe des Datenblatts und des Internets versucht alles aufzubauen und anzuschließen. Leider Erfolglos. Nach Tagen und Wochen probieren und testen konnte ich herausfinden das:

Clockpin: NIRGENDS ANGESCHLOSSEN
Datapin: An arduino angeschlossen. Per Software jede Sekunde einen Flankenwechsel
Storepin: Dauerhaft auf 12V

Ergebis: Der LED-Stripe am Shiftregister blinkt wie er soll. Allerdings auf allen Ausgängen gleich da ich Clock ja nicht verwende..

Wenn ich Datapin dauerhaft auf HIGH schalte läuchtet der Stripe auch dauerhaft. Also alles noch in Ordnung.

Das Merkwürdige:

  • Wenn ich den Datapin direkt auf 12V stecke
  • Storepin auf den eben verwendeten Pin von arduino stecke (Dauer HIGH)
    -Datapin direkt auf GND

Dann läuhtet der LED einfach weiter bis ich Storepin wieder vom Arduino trenne. Das gleiche ist auch der Fall wenn ich den Storepin auf GND schalte (um Daten ins shiftregister zu speichern wies gedacht ist)
Es scheint also so als würde der Arduino nicht genug Strom abgeben und das Shiftregister den Port als LOW erkennt.
Allerdings: wenn ich den Datenpin da drauf schalte funktioniert es ja einwandfrei.

Kann mir irgendjemand sagen wo ich evtl einen fehler habe? Am Code kann es nicht liegen. Im Code steht nicht mehr als "Pin 1 HIGH" oder zum test auch "PIN 1 Blink".

Wenn mir jemand sagt mit welcher Software diese Arduinoschaltpläne erstellt werden kann ich da auch gerne einen erstellen.

Falls noch etwas unklar ist gebt bitte bescheid.

Ich hoffe jemand kann mir helfen ich weiß leider nicht mehr weiter.

Vielen Dank und einen schönen Abend.
Gruß
Alex

Einen CD4090BE kenne ich nicht, daher bitte das Datenblatt verlinken. Aber wenn es einen Clock-Pin gibt, den du nicht beschaltest kann das Ganze gar nicht funktionieren. All deine Beschreibungen wie was wann leuchtet sind daher völlig unbedeutend, erstmal muss die Hardware stehen.
[edit] Schaltpläne bzw. grafische Übersichtspläne werden häufig in Fritzing erstellt: Welcome to Fritzing

Bist Du sicher, dass Du einen CD4090 meinst? Den kenne ich auch nicht. Der CD4094 ist ein Schieberegister.

Was aber prinzipiell nicht geht, dass Du einen mit 12V betriebenen Logik-Baustein direkt mit dem Arduino ansteuerst. Der Arduino gibt bei 'HIGH' 5V aus, das erkennt ein mit 12V betriebener CD40xx nicht sicher als HIGH. Da brauchst Du einen Level-Shifter.

Darf ich mal kurz auf einen alten Thread verweisen.
https://forum.arduino.cc/index.php?topic=131882.0
Dort habe ich mit den 74H595 gearbeitet da diese noch einen Eingang !OE (nicht Output Enable)haben darüber kann man dann mit Hilfe von einem Mosfet zum dimmen bringen dahinter sind noch ULN2803 damit läuft es super seit Mittlerweile 5 Jahre.
Gruß
DerDani

Edit: Mit dem Tablet kann man auf einmal keine Links als "Klick-Links" einbinden. Sorry

Wenn man N-MOSFET nimmt kann man diese auch mit 5V ansteuern (den Mosfet zwischen LED und Masse schalten)

Ein Schiftregister braucht einen clock, ohne funktioniert das nicht.

Ich würde aber zu Ledstreifen mit intrgrierten Controller raten (zB WS2812), und da alle in Serie geschaltet. Da kannst Du sogar Farbspiele machen.

Grüße Uwe

Vielen Dank für die Antworten.

Ich meinte einen CD4094BE, sorry. Hier ist das Datenblatt dazu: http://www.ti.com/lit/ds/symlink/cd4094b.pdf

  1. Das Layout werde ich heute Abend nachreichen.
  2. Das es ohne Clock nicht vernünftig funktioniert ist mir klar. Das war nur der einzige Weg das Shiftregister überhaupt dazu bekommen irgendetwas Controllergesteuertes machen zu lassen. Wenn ich alles nach Datenblatt korrekt anschließe sind 7 von 8 Ausgängen am Register auf HIGH. Dadurch das ich die Clock nicht verwende geben alle Ausgänge das gleiche aus was zum Testen in Ordnung ist.

@MarcoBahner:

  1. So etwas hatte ich befürchtet. Wieso funktionert dann das steuern des dataPins über den Arduino? ist das einfach nur Zufall/Glück?
  2. Hast du ein Beispiel für Level Shifters mit dem das funktioniert?

@volvodani:
Danke für den Link da gibt es ja einige Ähnlichkeiten. Mit dem ULN2803 bräuchte ich für jeden LED Stripe 3 (RGB) Mosfets richtig? Also 3 * 7 (7 Segmente) * 4 (Ziffern) = 84 Mosfets. Damit ich mir das sparen kann habe ich mir P Mosfets besorgt. Diese wollte ich an die Ausgänge meines CD4094BE ShiftRegisters schalten.
Ist das mit einem ULN2803A auch möglich?

Ich hoffe ich erkäre es vernünftig... Vielen Dank nochmal für eure Hilfe!

Gruß
Alex

Alex0702:
Wieso funktionert dann das steuern des dataPins über den Arduino? ist das einfach nur Zufall/Glück?

Ja, so wird es wohl sein. Bei 12V liegt der Übergangsbereich LOW->HIGH irgendwo zwischen ca. 3,5 und 9V. Bei 5V kann also alles passieren.

Alex0702:
Hast du ein Beispiel für Level Shifters mit dem das funktioniert?

Der HCF40109 wäre so ein Baustein.
Man könnte aber auch des Schieberegister noch mit 5V betreiben, und erst bei der Ansteuerung der LED's auf 12V gehen. Z.B. mit dem erwähnten ULN2803 oder mit einem N-Fet, der bei 5V sicher schaltet.

Gruß
Franz-Peter

Wie bereits gesagt wieso nimmst Du nicht WS2812? Da brauchst Du gar keine Schieberegister oder Treiber oder Transistoren und kannst jedes LED einzeln ansteuern.
Grüße Uwe

@MicroBahner:
Vielen Dank für die Info.
Ich werde es heute Abend noch mit einem 5V ShiftRegister und einem Mosfet versuchen. Wenn das zu keinem Erfolg führt werde ich mir ein paar ULN2803 zukommen lassen und diese testen.

@uwefed:
Die LED-Strips hatte ich noch Zuhause rumliegen und wollte diese verwenden. Außerdem habe ich schon die ganzen Teile bestellt. Aber vorallem: Ich möchte mich nicht geschlagen geben :wink:

Gruß
Alex

Ok. Das ist ein driftiger Grund.

Und beim nächsten mal kannst Du es Dir ja überlegen. :wink: :wink:
Grüße Uwe

Hallo zusammen,

ich habe mir jetzt einige ULMs bestellt. Mit diesen würde es wunderbar funktionieren. Allerdings bräuchte ich damit sehr viele N-Mosfets da ich RGB-LEDs habe und ich deshalb für jede Farbe an jedem Stripe einen Mosfet bräuchte also: 3 (RGB) * 7 (7 Segmente) * 4 (Ziffern) = 84 Mosfets. Dazu noch die zusätzlichen Shiftregister und ULMs um so viele Mosfets zu betreiben.

Außerdem hatte ich versucht einen P-Mosfet zu verwenden allerdings lässt sich dieser auch nicht mit 5V schalten. Der will leider auch 12V.

Hat noch jemand eine Idee wie ich um diese 84 Mosfets herum komme? Ich glaube ich müsste einen Transistor verwenden um mein 12V Shiftregister (CD4094) zu verwenden, richtig? Kennt jemand ein Beispiel für einen der diesen Zweck erfüllt?

Vielen Dank und Frohe Ostern :wink:

Verträgt dein Schieberegister den den Strom von den Segmenten? Ich habe da so meine Zweifel. Befrage da lieber jemanden, der sich mit Datenblättern auskennt

Hi EIEspanol,

ich möchte mit dem Shiftregister die P-Channel Mosfets schalten nicht direkt die LED-Stripes.

Gruß
Alex

Alex0702:
Ich glaube ich müsste einen Transistor verwenden um mein 12V Shiftregister (CD4094) zu verwenden, richtig?

Du kannst das Levelshifting auch mit Transistoren machen, wenn Du den HCF40109 nicht verwenden willst. Sehr hohe Frequenzen wirst Du ja nicht haben. Allerdings dreht sich dann die Logik um, weil der Transistor invertiert. Das musst Du im Sketch berücksichtigen.

Hi MicroBahner,

wie kann ich das mit Transistoren machen?

Danke und Gruß,
Alex

Nachdem der Vorschlag von dir kam, dachte ich Du wüsstest wie das geht :wink:

Die Widerstandswerte sind nicht kritisch, beeinflussen aber die Flankensteilheit am CD4094 Eingang.