Multiplexing eines großen 7-Segment-Displays mit MAX7219

Ich habe ein Problem mit dieser Schaltung, sie sollte 2 (oder mehr) große 7-Segment-Anzeigen mit einem MAX7219 und der entsprechenden Arduino-Bibliothek ansteuern. Es verwendet ULN2003 und UDN2981, um +12 V und eine Reihe von 5 LEDs pro Segment zu verwenden (im Bild vereinfache ich mit nur einer LED für Segment).

Der CD40106 wird als Logik verwendet, die NICHT die Eingänge für den ULN2003 anpasst.

Das Problem tritt während des MAX7219-Testbeispielcodes auf, der in das arduino uno geladen wurde. Die LEDs schalten sich leicht ein, wenn sie ausgeschaltet bleiben sollten. Ein Video zeigt das Problem besser.

Das Video zum Problem

Weitere Informationen zur MAX7219-Bibliothek und zum Testcode finden Sie hier

Geben Sie hier die Bildbeschreibung ein

Ich habe versucht, den CD40106 mit einem 74HC04 zu ändern -> GLEICHES PROBLEM !!!

Antworten (2)

Ich denke, das Problem ist, dass die Segmenttreiber nicht Gegentakt sind, sondern hochohmig werden, wenn sie ausgeschaltet sind. Da sich die Darlingtons im UDN2981 mit einigen zehn uA einschalten, dauert es einige Zeit, bis sie sich ausschalten. Da Ihre Helligkeit für die „Ein“-Segmente so hoch ist, ist das „Ghosting“ signifikant.

Probieren Sie einen Pulldown-Widerstand an den Eingängen des UDN2981 aus (versuchen Sie es zuerst an einem und sehen Sie, ob das Geisterbild in der Ein-Segment-Position verschwindet).

Wenn Sie auf dem Video bemerken, dass dieselbe LED im zweiten Segment schwach leuchtet, während die LED, die eingeschaltet sein sollte, gleichzeitig leuchtet. IE. Segment A1 leuchtet hell, Segment A2 leuchtet schwach. Dies grenzt das Problem auf den ULN2003 ein.

Es braucht keine hohe Spannung oder viel Strom, um den Eingang zu aktivieren. Und der Ausgangsstrom hängt wie bei jedem Transistor vom Eingangsstrom ab. Versuchen Sie, die Spannung und den Strom am Eingang des ULN2003 zu messen (Sie sehen möglicherweise Mikroampere, also muss Ihr Amperemeter so niedrig sein).

Versuchen Sie als Notlösung, einen schwachen 4,7-k-Pulldown-Widerstand an den ULN2003-Eingängen hinzuzufügen. Dies sorgt für einen steiferen Pulldown und hilft, den Eingang zu deaktivieren, der nicht eingeschaltet sein sollte.