Pages: 1 2 3 [4] 5   Go Down
Author Topic: TLC5940 Mux Library & 74HC595 (Final Status)  (Read 7980 times)
0 Members and 1 Guest are viewing this topic.
Dortmund
Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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?
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 !
Logged

Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Dortmund
Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 266
Posts: 21656
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Dortmund
Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.  smiley-confuse

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!
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich selber benutze dazu den MPSA63 Darlington Transistor:
http://www.fairchildsemi.com/ds/MM/MMBTA63.pdf

http://www.ebay.de/itm/MPSA63-PNP-Darlington-Transistor-TO92b-0-1A-Pack-of-10-/120913081443?pt=UK_BOI_Electrical_Components_Supplies_ET&hash=item1c26fb3463#shId
« Last Edit: September 25, 2012, 02:45:08 pm by Megaionstorm » Logged

Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 266
Posts: 21656
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
 
Logged

Dortmund
Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hier gibt es eine recht gute Erklärung:
http://de.wikipedia.org/wiki/Darlington-Transistor
Logged

Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Forum Moderator
BZ (I)
Online Online
Brattain Member
*****
Karma: 266
Posts: 21656
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Dortmund
Offline Offline
Newbie
*
Karma: 0
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, verstehe. Danke! smiley
Logged

Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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...
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset



Die exakte Pinbelegung der Matrix ist im Datasheet der jeweils benutzten Matrix nachzulesen !
Logged

Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Wien
Offline Offline
Edison Member
*
Karma: 28
Posts: 1894
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Pages: 1 2 3 [4] 5   Go Up
Jump to: