TLC5940 Mux Library & 74HC595 (Final Status)

Der Tlc5940Mux Library liegt auch ein Serial Example bei, dies beschäftigt sich mit dem Thema Laufschrift.

Dieser Sketch hat bei mir bisher allerdings noch nie funktioniert !

ich benutze den arduino mit einem atmega168 irgenwo muss ich
doch die pin des arduino´s configurieren
und das mit dem Viewport blick ich nicht wie du das meinst

Kleiner Tip:
Tausch den Atmega168 gegen einen Atmega328 aus, dann hast Du doppelt so viel Speicher.
Dieses etwas mehr an Speicher wirst Du bei deinem Vorhaben vermutlich auch brauchen !

Die Pins sind schon in den Dateien der Library configuriert worden !

Deshalb kann man auch nicht ohne die Library selber zu verändern andere Pins benutzen !

und das mit dem Viewport blick ich nicht wie du das meinst

Schau dir mal das Serial example an, vielleicht wird dann manches verständlicher !

möchte aber das ganze erstmal verstehen das ganze dann werde ich eine anderen besorgen habe leider nur den da

aslo ich habe mich mal hingesetz und gezeichnet.
sollte doch so richtig sein oder

tronig rgb multi.fzz (51.4 KB)

tronig und Du hoffst, daß der 74HC595, bei allen LED eingeschaltet, 480mA geben kann?

Der 595 kann total 70mA und pro Ausgang 35mA treiben. Du mußt einen Treiber wie zB den A2981 zwischen dem 595 und den Anoden der LEDs schalten.
Grüße Uwe

Die Anoden der RGB Matrix sind direkt an dem 74HC595 angeschlossen, ohne Fets oder so !

Genau so habe ich zu Anfang den 74HC595 mit den Anoden der Matrix verbunden gehabt und es hat funktioniert !

Erst später habe ich dann die Darlington Transistoren zwischen den 74CH595 und den Anoden der Matrix geschaltet, habe dann aber bemerkt das die Leds wesentlich heller leuchten !

Hallo!
Könnte mir eventuell noch einmal jemand erklären, was genau die Funktion 'static inline void shift8_595_row(uint8_t row)' macht, bzw. wie die arbeitet und wie man dadurch die Spalten und Reihen geschaltet bekommt? Ich blick da irgendwie noch nicht so durch :~
Aus welcher Datei kann ich denn lesen an welche Pins ich den Tlc und den 595 anschließen muss? Ich habs mir erstmal einfacher gemacht und eine einfarbige 8x8 Matrix gebastelt, also hab ich auch nur von jedem einen..

Danke schonmal!
Moritz

Wie der Tlc5940 mit dem Arduino verbunden wird steht auf dieser Website unter HARDWARE SETUP:
http://code.google.com/p/tlc5940arduino/

Wie der 74HC595 mit dem Arduino verbunden wird steht im in diesem Thread erwähnten Sketch !

ok, danke! also den tlc hab ich jetzt angeschlossen, aber immer noch keine ahnung wie ich den 595 anschließe :confused:
an die analogen pins?

http://arduino.cc/en/Tutorial/ShiftOut elektrischer Anschluß
Arduino Playground - ShiftRegister595 Library Bibiothek
Grüße Uwe

dabei ist egal, dass der tlc teilweise die selben pins benötigt? :relaxed:

Der 74HC595 wird anders als im Shiftout Tutorial mit Analog 0, Analog 1 und Digital 9 verbunden.

Also ist nur Digital 9 mit dem TLC5940NT aber auch mit dem 74HC595 verbunden, dies dient vermutlich der Synchronisation beider IC's bei der Zeilenumschaltung.

jetzt klappt es! vielen dank! :slight_smile:

DIe von dir erfragte Routine wird übrigens von der ISR aufgerufen, das bedeutet das Multiplexen der Matrix geschieht dadurch automatisch.

moehoe:
dabei ist egal, dass der tlc teilweise die selben pins benötigt? :relaxed:

Nein sollten schon verschiedene PINs sein.
Der TLC braucht einige bestimmte PINs weil diese die Ausgänge der Timer sind (3,9,10) und diese durch di Timer bestimmte frequenzen erhalten bzw automatisch ohne zusätzliche Programmierung funktionieren. Die andere PINs können beliebig gewählt werden. Die Pins des 595 können beliebig gewählt werden.
Grüße Uwe

Falls Du noch mehr Informationen über den TLC5940 brauchst dann schau dir mal dies an:
http://flipmu.com/files/2011/04/Demystifying-the-TLC5940.pdf

So schwer ist es dann ja doch gar nicht, das multiplexen geschieht ja echt von alleine. :slight_smile:

uwefed:
Die Pins des 595 können beliebig gewählt werden.

Muss ich irgendwo angeben, welche Pins ich für den 595 verwende?

moehoe:
Muss ich irgendwo angeben, welche Pins ich für den 595 verwende?

Ja: Schau Dir mal den Beispielsketch auf Arduino Playground - HomePage an:

  #include "ShiftRegister595.h"
     
    byte latchPin = 8;  //Pin connected to ST_CP of 74HC595
    byte clockPin = 12; //Pin connected to SH_CP of 74HC595
    byte dataPin = 11;  //Pin connected to DS    of 74HC595
     
    ShiftRegister595 shiftRegister595 = ShiftRegister595( latchPin , clockPin , dataPin );
     
     
    void setup() {
    }
     
    void loop() {
      //count up routine
      for (int j = 0; j < 256; j++) {
        shiftRegister595.write(j);
        delay(1000);
      }
    }

Grüße Uwe

Der Pinanschluss des 74HC595 ist hier definiert, für die Ansteuerung durch die TLC5940Mux Library:

Atmega168/328

// SHIFT_DATA_PIN (PC0 is analog 0) = '595 SER pin (Pin 14)
#define SHIFT_DATA_PORT PORTC
#define SHIFT_DATA_PIN  PC0
#define SHIFT_DATA_DDR  DDRC
// SHIFT_CLK_PIN (PC1 is analog 1) = '595 SRCLK (Pin 11)
#define SHIFT_CLK_PORT  PORTC
#define SHIFT_CLK_PIN   PC1
#define SHIFT_CLK_DDR   DDRC
// '595 RCLK is hooked to tlc XLAT pin (Arduino digital Pin 9, 74HC595 Pin 12)

Atmega1280/2560

// SHIFT_DATA_PIN (PF0 is analog 0) = '595 SER pin (Pin 14)
#define SHIFT_DATA_PORT PORTF
#define SHIFT_DATA_PIN  PF0
#define SHIFT_DATA_DDR  DDRF
// SHIFT_CLK_PIN (PF1 is analog 1) = '595 SRCLK (Pin 11)
#define SHIFT_CLK_PORT  PORTF
#define SHIFT_CLK_PIN   PF1
#define SHIFT_CLK_DDR   DDRF
// '595 RCLK is hooked to tlc XLAT pin (Arduino digital Pin 11, 74HC595 Pin 12)

Atmega644/1284 (Sanguino)

/ SHIFT_DATA_PIN (PA0 is analog 0) = '595 SER pin (Pin 14)
#define SHIFT_DATA_PORT PORTA
#define SHIFT_DATA_PIN  PA0
#define SHIFT_DATA_DDR  DDRA
// SHIFT_CLK_PIN (PA1 is analog 1) = '595 SRCLK (Pin 11)
#define SHIFT_CLK_PORT  PORTA
#define SHIFT_CLK_PIN   PA1
#define SHIFT_CLK_DDR   DDRA
// '595 RCLK is hooked to tlc XLAT pin (Sanguino digital Pin 13, 74HC595 Pin 12)