Lampeggiamento anomalo Cubo led RGB 4x4x4

Salve a tutti,
chiedo umilmente aiuto a tutti voi per un problema che mi sta assillando da giorni.
Ho realizzato un cubo led 4x4x4 RGB, gasatissimo per il risultato provo a farlo partire, scrivere funzioni e programmi. Nonostante abbia scritto 4 sketch per il cubo, non riesco a risolvere il problema suddetto, mi spiego meglio:

se si considera ogni piano del cubo come una matrice 4x4, aggiungendo una terza coordinata per l'altezza si ottiene il cubo stesso, in "simboli" (x,y,z).

Il mio problema è che accendendo il led (che sia rosso, verde o blu) in posizione (1,1,4) si accende, a intermittenza, anche il led in posizione (1,1,3).

Ovviamente è molto fastidioso, e tutto ciò rende impossibile creare animazioni di tutti i tipi!

Io credo che il problema sia a livello Software (l'unico dubbio sull'Hardware è l'alimentazione).

Lo sketch è coordinato a un programma scritto con processing che manda ad arduino tramite seriale 4 interi: il primo è la coordinata del led (0-63), il secondo, il terzo e il quarto sono le intensità di rosso verde e blu.
L'arduino è uno standalone, funge alla perfezione. Il tutto è alimentato o da una batteria da 9V (o alimentatore da 12V 2A) con un LM7805 per abbassare la tensione al punto giusto (1,5 A di uscita). I collegamenti ci sono, tutti funzionanti e controllati più volte.

Sicuramente avrò scordato qualcosa, in caso chiedete e scusatemi per le dimenticanze. Grazie mille per l'aiuto!

Allego schema e sketch.

Cubo_Seriale_1.ino (1.08 KB)

led_mapping.ino (14.4 KB)

Che resistenza hai messo?
Ciaon Uwe

Ciao Uwe,
le resistenze sono da 6.8K, il tutorial che ho seguito suggeriva di metterle tra 4.7K e 8.8K, a seconda dell'intensità luminosa che si voleva ottenere. I mosfet sono degli IRF9510, la parte delle eeprom l'ho saltata, quindi nessuna memoria in più (io l'avevo detto che avevo scordato qualcosa! XD).

Ciao, Giovicavalla

Ho scordato persino la pagina del tutorial, che è Questa, se qualcuno ha qualche idea..

Ciao, Giovicavalla

La libreria normale per i TLC5940 non funziona per multiplexare. Questo perché il TLC5940 non genera da solo il PWM ma deve essere pilotato sia per il clock del PWM sia per far partire un ciclo. Il ciclo deve essere sincronizzato col cambio livello del cubo senó vedi lampeggiare i LED. la libreria normale non permette la sincronizzazione.

Usa la libreria di questo progetto:
http://www.thebox.myzen.co.uk/Hardware/Mini_Monome.html
nel capitolo Arduino Firmware in fondo alla pagina c'é un file Zip linkato.

Ciao Uwe

Ciao,
ho testato, o meglio ho provato a testare, la libreria. Purtroppo mi da un errore in fase di compilazione:

Arduino:1.6.5 (Mac OS X), Scheda:"Arduino Uno"

/Users/giovannicavallaro/Documents/Arduino/libraries/TLC5940Multiplex/TLC5940Multiplex.cpp:26:20: fatal error: wiring.h: No such file or directory
#include "wiring.h"
^
compilation terminated.
Errore durante la compilazione

Per installarla ho copiato la cartella TLC5940Multiplex nella cartella librerie di arduino.

Ciao, Giovicavalla

Scusami; é una libreria ancora per versioni IDE prima della 1.0. Sostituisci nella libreria "wiring.h" con "Arduino.h"

Ciao Uwe

Ciao,
ho appena provato, non va ugualmente, però mi da un altro errore, sempre in TLC5940Multiplex.cpp:

Arduino:1.6.5 (Mac OS X), Scheda:"Arduino Uno"

/Users/giovannicavallaro/Documents/Arduino/libraries/TLC5940Multiplex/TLC5940Multiplex.cpp: In function 'void loadBuffer()':
/Users/giovannicavallaro/Documents/Arduino/libraries/TLC5940Multiplex/TLC5940Multiplex.cpp:233:6: error: 'prog_uint8_t' was not declared in this scope
prog_uint8_t *bRow;
^
/Users/giovannicavallaro/Documents/Arduino/libraries/TLC5940Multiplex/TLC5940Multiplex.cpp:233:20: error: 'bRow' was not declared in this scope
prog_uint8_t *bRow;
^
Errore durante la compilazione

Cosa dovrei fare??

Penso di aver risolto "prog_uint8_t *bRow;" con "uint8_t *bRow;". Non so se ho fatto una cavolata o ho trovato la svolta. Comunque non capisco cosa voglia nella funzione Tlcm.set.

In quella della libreria originale il primo "numero" è l'indirizzo del led da accendere, il secondo è l'intensità. In questo ci sono righe e colonne, inoltre devo considerare il fatto che la libreria dell'integrato aveva un'impostazione per usare un numero di Tlc5940 diverso. Questa libreria immagino ne conceda solo 1, a me ne servono 3! Dovrei modificare quest'ultima libreria per usufruire di 3 integrati??

Ciao, Giovicavalla