Go Down

Topic: Daten speichern + 16x16 RGB-LED-Matrix ansteuern (Read 18001 times) previous topic - next topic

Megaionstorm

#165
Aug 26, 2012, 03:43 pm Last Edit: Aug 26, 2012, 03:47 pm by Megaionstorm Reason: 1
Code: [Select]
// SHIFT_DATA_PIN (PF0 is analog 0) = '595 SER pin
#define SHIFT_DATA_PORT PORTF
#define SHIFT_DATA_PIN  PF0
#define SHIFT_DATA_DDR  DDRF
// SHIFT_CLK_PIN (PF1 is analog 1) = '595 SRCLK
#define SHIFT_CLK_PORT  PORTF
#define SHIFT_CLK_PIN   PF1
#define SHIFT_CLK_DDR   DDRF
// '595 RCLK is hooked to tlc XLAT pin


Arduino -> 74HC595
-------------------
A0        -> Pin 14
A1        -> Pin 11
D11       -> Pin 12

Arduino -> TLC
---------------
Mega pin 51 (MOSI) -> SIN (Tlc pin 26)
Mega pin 52 (SCK) -> SCLK (Tlc pin 25)
Mega pin 11 (OC1A) -> XLAT (Tlc pin 24)
Mega pin 12 (OC1B) -> BLANK (Tlc pin 23)
Mega pin 9 (OC2B) -> GSCLK (Tlc pin 18)
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Nathax

Danke!
Wie bist du da drauf gekommen, jetzt gehts eigentlich recht gut,
ich kann alternativ auch Pin 12 nehmen.
Allerdings komisch ist noch, dass immer die LED links neben der aktuellen auch noch ein wenig leuchtet.
Woran könnte das liegen?

Megaionstorm

Quote
dass immer die LED links neben der aktuellen auch noch ein wenig leuchtet.


Der ULN2981 hat ein Turn-Off Delay von 5µs, vermutlich deshalb !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Megaionstorm

#168
Aug 26, 2012, 06:36 pm Last Edit: Aug 26, 2012, 06:59 pm by Megaionstorm Reason: 1
Versuch mal folgendes.

Führe zusätzlich zu deiner bisherigen Schaltung von jeder Anode der Matrix einen 1kohm Widerstand auf Masse !
Benötigst also 8 Widerstände !


Quote
ich kann alternativ auch Pin 12 nehmen.


Nimm am besten D11, weil der 74HC595 dadurch mit dem XLAT-Signal für den TLC5940 verbunden sein soll !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Nathax

Ok, werd ich machen, aber heute nicht mehr.
Mein Snake-Klon ist fast fertig. ;)

Megaionstorm

Foto im Betrieb währe nett ! Wenn Du dazu Zeit hast !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Nathax

#171
Aug 27, 2012, 10:32 am Last Edit: Aug 27, 2012, 10:43 am by Nathax Reason: 1
Nochmal ein großes DANKESCHÖN an Alle, die zum Erfolg meines Projektes beigetragen haben!
Besonders danke ich uwefed und Eisebaer, die mir gerade in der Anfangszeit sehr geholfen haben
und Megaionstorm, der mir die letzte Zeit immer zur Seite stand.
Ohne euch hätte ich es nie geschafft! :)

Folgende Punkte sollen demnächst abgearbeitet werden:
~ 1kOhm Widerstände an die Anoden (=> s.o)
- 8x8Matrix -> 16x16Matrix
- Animationen von SD-Karte abspielen (SD-Karte und Matrix parallel, ist das möglich?)
~ Spiele von SD-Karte abspielen (Flashen!?)

Hier mal ein kleines Vorschauvideo der bisherigen Matrix,
leider sind die Farben nicht ganz erhalten geblieben
und das ganze sieht neben dem Flackern auch noch etwas verschwommen aus:

http://www.youtube.com/watch?v=6uRbrvuBO34


PS: Wie bekommt man die Farben der einzelnen Pixel so schön "glatt" hin
wie z.B. in diesem Video (Ich hab in meinem Video ein weißes Blatt drübergelegt):

http://www.youtube.com/watch?v=tlA4nq0GWWQ

Megaionstorm

Quote
PS: Wie bekommt man die Farben der einzelnen Pixel so schön "glatt" hin
wie z.B. in diesem Video (Ich hab in meinem Video ein weißes Blatt drübergelegt):


Vielleicht mal Pergamentpapier ausprobieren, gibt es in jedem gut sortierten Schreibwarenhandel !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Nathax

Ich werd mal schauen, aber sind die Matrizen nicht von Grund auf so schön glatt?
Noch ne Frage, kann ich die IRRemoteLibrary irgendwie mit der Matrix zs. benutzen?
Ein "irrecv.enableIRIn();" in der Setup-Methode hindert bisher die Matrix am Funktionieren.

Nathax

#174
Aug 29, 2012, 01:00 pm Last Edit: Aug 30, 2012, 03:37 pm by Nathax Reason: 1
...

michael_x

Quote
Ein "irrecv.enableIRIn();" in der Setup-Methode hindert bisher die Matrix am Funktionieren.


Warum / Wie ?
Unterschiedliche Anforderungen an den gleichen Timer ?

Libraries sind toll, weil sie viel können, aber letztendlich muss man doch wissen, was sie machen ...

Megaionstorm

Quote
was sie machen ...


Eigentlich vorallendingen auch WIE sie es machen !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Nathax

Mir ist schon klar,
dass sich die verschiedene Hardware(SD, IR-Receiver, LED-Matrix) durch SPI und die Timer und Zyklen in den Libraries
in die Quere kommt. Ich wollte mich nur informieren, ob ihr villeicht bereits von Lösungen solcher Probleme gehört habt.
Denn neuschreiben werde ich die Libraries ganz sicher nicht.  :)

Megaionstorm

Weißabgleich:

Code: [Select]
void Matrix_Pixel(uint8_t Row, uint8_t Column, byte Red, byte Green, byte Blue)
{   
   Led_Red = map(Red, 0, 255, 0, 4095);
   Led_Green = map(Green, 0, 255, 0, 4095);
   Led_Blue = map(Blue, 0, 255, 0, 4095);
   TlcMux_set(Row, Column, Led_Red / 1.8);
   TlcMux_set(Row, Column + 16, Led_Green);
   TlcMux_set(Row, Column + 32, Led_Blue);
}


Für den Weißabgleich muss dieser Wert an die jeweilige Matrix angepasst werden !
   TlcMux_set(Row, Column, Led_Red / 1.8);

TLCMux_Set(0, 0, 255, 255, 255);

Sollte ein rein weisses Licht erzeugen !
Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/


Go Up