Go Down

Topic: TLC5940 Mux Library & 74HC595 (Final Status) (Read 9134 times) previous topic - next topic

moehoe

Wära ja nicht so gut wenn das multiplexen langsam geschehen würde..

Eine letzte Frage hab ich da noch. Ist es notwendig bei den for-Schleifen immer uint8_t als Datentyp zu nehmen?
Ich hab das auch schon mit Integer ausprobiert und das funktioniert genauso gut. Gibt es da trotzdem unterschiede, vielleicht bei der Schnelligkeit?

Megaionstorm

Quote
Wära ja nicht so gut wenn das multiplexen langsam geschehen würde..

Das würde wohl ganz schön flackern !

Quote
Ist es notwendig bei den for-Schleifen immer uint8_t als Datentyp zu nehmen?

Es ist am besten immer übereinstimmende Datentypen zu verwenden !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

moehoe

Die kann ich aber behandeln wie normale Integer oder?

Eine Sache ist mir noch beim Testen der Matrix aufgefallen. Obwohl ich keine RGB Leds habe erkennt man eine deutliche Schwächung einzelner Leds, sobald mehrere in einer Reihe leuchten. Das liegt vermutlich an den 130mA pro Reihe, die der TLC maximal ausspuckt oder?
Wie kann man da vorgehen um den Fehler zu beheben?

Hier das Datenblatt:
http://www.sparkfun.com/datasheets/Components/General/tlc5940.pdf

Grüße Moritz

uwefed

Wie multiplexst Du?
Der TLC muß jede Kathode der LED ansteuern und zwar mit 5 bis 10 mA und der 595 selektiert eine Reihe indem er die Anoden der LED auf +5V legt.

Grüße Uwe

Megaionstorm

Quote
Wie kann man da vorgehen um den Fehler zu beheben?


Indem Du zwischen die Ausgänge des 74H595 und den Anoden der Matrix Darlington Transistoren schaltest:
http://tlc5940arduino.googlecode.com/svn/trunk/Tlc5940Mux/tlc5940mux_circuit_example.png
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

moehoe


Wie multiplexst Du?
Der TLC muß jede Kathode der LED ansteuern und zwar mit 5 bis 10 mA und der 595 selektiert eine Reihe indem er die Anoden der LED auf +5V legt.


Ja, der 595 steuert die Anoden und der Tlc die Kathoden, wobei die Leds die ich verwende 15-30mA benötigen.  :~


Indem Du zwischen die Ausgänge des 74H595 und den Anoden der Matrix Darlington Transistoren schaltest

Damit kann man die Leds dann über eine externe Spannungsquelle betreiben? Sehr gut!

Megaionstorm

#51
Sep 25, 2012, 09:41 pm Last Edit: Sep 25, 2012, 09:45 pm by Megaionstorm Reason: 1
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

uwefed

Ich tendire für den a2981, ein 8 fach Transistor-Array:
http://www.allegromicro.com/Products/Motor-Driver-And-Interface-ICs/High-and-Low-Side-Drivers/UDx2981-2.aspx
Grüße Uwe

moehoe

Und wieso keine normalen Transistoren? Wo liegt der Unterschied zu den Darlington Transistoren?

Megaionstorm

Hier gibt es eine recht gute Erklärung:
http://de.wikipedia.org/wiki/Darlington-Transistor
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

uwefed


Und wieso keine normalen Transistoren? Wo liegt der Unterschied zu den Darlington Transistoren?


In der Verstärkung.
Leistungstransistoren haben prinzipbedingt eine kleinere Verstärkung als Kleinsignaltransistoren und somit brauchen Leistungstransistoren einen großen Basisstrom um in Sättigung zu gehen. Eine Darlingtonschaltung eliminiert dieses Problem.

Grüße Uwe


ghps


Den Code zur Ansteuerung der Matrix durch den 74HC595 hat mir Alex Leone persönlich zugeschickt !


Herzlichen Dank Megaionstorm und natürlich auch an Alex Leone!

Die Library funktioniert problemlos und ist einfach zu nutzen. Ich schlage vor, sie zusammen mit einem Beispiel ins tlc5940arduino hochzuladen, damit andere, auch nicht deutschsprachige Nutzer hiervon ebenfalls profitieren können.

Ich benutze die Library mit einem ATMega1284p zur Ansteuerung von zwei 4-stelligen 7-Segment-Displays, die gerade in einem bekannten Auktionshaus für kleines Geld angeboten werden (Typ CL5642BH). Der ganze Entwurf kommt mit einem TLC5940 und einem 74HC595 als Treiber aus, da die Anzeigen bei normaler Helligkeit sehr genügsam sind. Mit der Möglichkeit, jedes Segment individuell zu dimmen, lassen sich dann interessante Effekte beim Aufbau, Abbau und Verschieben der Zahlen realisieren.

Einziges Problem ist allerdings, dass die Library recht zeitkritisch ist. Eine Kommunikation über I2C ist kaum möglich, was nicht nur Echtzeit- und Messanwendungen schwierig macht, sondern auch die Ansteuerung des Displays über einen eigenen, getrennten ATMega328p. Wird das Timing verletzt, landen einzelne Ziffern an der falschen Stelle oder Segmente bleiben dauerhaft dunkel oder hell.

Vielleicht hat jemand eine Idee, wie man die I2C-Kommunikation mit dem Multiplexen verschachteln kann, damit die Interrupts sich nicht in die Quere kommen...

Megaionstorm



Die exakte Pinbelegung der Matrix ist im Datasheet der jeweils benutzten Matrix nachzulesen !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Eisebaer

hi,

Quote
Ich benutze die Library mit einem ATMega1284p zur Ansteuerung von zwei 4-stelligen 7-Segment-Displays, die gerade in einem bekannten Auktionshaus für kleines Geld angeboten werden (Typ CL5642BH).


finde ich nicht.

gruß stefan
nimm abblockkondensatoren!  100nF.  glaub mir, nimm abblockkondensatoren!

Go Up