I collegamenti dall'Arduino Uno alla scheda. L'alimentatore per la scritta è da 12V 10A.
La scritta:
La scritta è realizzata usando come supporto della rete di protezione in plastica con maglie da 1 x 1 cm fissata con delle viti su una cornice in legno.
Le lettere sono composte da vari pezzi di striscia a led RGB tagliati e fissati con delle fascette alla rete.
Tra una striscia e l'altra di ogni singola lettera sono stati fatti dei collegamenti in modo da portare tutte le alimentazioni +,G,R,B a tutti i pezzi.
Le 10 piattine da 4 conduttori partenti dalle singole lettere sono state saldate ai 10 connettori da 4 pin.
Il programma per l'Arduino:
#include "Tlc5940.h"
// cambiare il primo valore della matrice scena (26) in base al numero delle righe inserite
// nelle righe il primo valore indica il tempo in decimi di secondo (10 imposta un secondo) di dissolvenza dalla scena precedente
// il secondo valore indica il tempo di permanenza della scena in decimi di secondo (20 imposta 2 secondi)
// i valori dal terzo al 32esimo impostano il livello di uscita del canale da 2 a 31 (B"B",R"B",G"B",B"U",R"U",G"U"...B"T",R"T",G"T",B"E",R"E"G"E"),con un valore da 0 a 4095 (12 bit), i canali 0 e 1 non vengono usati.
// per creare una continuità del programma la prima e l'ultima riga devono essere uguali, infatti il programma viene eseguito a partire dalla seconda riga
float provvisorio1; // varibili a virgola mobile per il calcolo del valore di step
int stepvalue[32]; // matrice degli step di variazione dei canali durante la dissolvenza
// per comodità definita a 32 come scena ma i primi due volori non vengono usati
int fade; // il tempo di dissolvenza
int durata; // il tempo di permanenza
int colore; // livello di uscita
void setup()
{
Tlc.init();
}
void loop()
{
for (int j=1; j < 26; j++)
{ // j è il numero delle scene e varia da 1 a j, la scena 0 (la prima riga) serve solo per il fade
// il numero 26 va modificato in base al numero di righe inserite all'inizio per la matrice scena
fade = scena[j][0]; // prende il valore fade dalla scena corrente
durata = scena[j][1]; // prende il valore durata dalla scena corrente
for (int i = 2; i < 32; i++)
{ // i è il numero del canale e varia da 2 a 31
provvisorio1 = (scena[j][i] - scena[j-1][i]); // fa la differenza fra il valore del canale i della scena corrente (j) e quella precendente (j-1)
provvisorio = provvisorio1/256; // divide il valore precedente per 256
stepvalue[i] = ceil(provvisorio); // arrotonda per eccesso all'intero e lo memorizza in stepvalue[i]
if (provvisorio > 0)
{
stepvalue[i] = ceil(provvisorio); // se provvisorio è maggiore di 0 arrotonda per eccesso
}
else
{
stepvalue[i] = floor(provvisorio); // se provvisorio è maggiore di 0 arrotonda per difetto
}
}
for (int n = 0; n < 257; n++)
{ // ripete 256 volte
for (int i = 2; i < 32; i++)
{
if (stepvalue[i] == 0)
{
colore = scena[j][i];
}
else
{
colore = scena[j-1][i] + stepvalue[i] * n; // partendo dal valore della scena precendente (j-1),
// aumenta o diminuisce (se stepvalue è negativo) di uno step il valore di uscita del canale i
// fino a portarlo al valore della scena corrente (j)
if (stepvalue[i] > 0 && colore > scena[j][i])
{
colore = scena[j][i]; // se il valore di step è maggiore di zero impedisce che il valore del canale i superi il valore finale
}
if (stepvalue[i] < 0 && colore < scena[j][i])
{
colore = scena[j][i]; // se il valore di step è minore di zero impedisce che il valore del canale i diventi minore del valore finale
}
}
Tlc.set(i, colore); // setta il valore in uscita del canale i
}
Tlc.update(); // aggiorna tutti i 30 canali in uscita dei TLC5940
delay(fade); // ferma il programma di fade millisicondi per rallentare la dissolvenza
}
delay(durata*100); // ferma il programma per durata*100 millisecondi
}
}
Calendario
Aprile 2023
L
M
M
G
V
S
D
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Data: 01/04/2023 Ora: 04:13Accadde Oggi: * 1934 - La coppia di banditi Bonnie e Clyde uccide due giovani agenti di polizia vicino a Grapevine, Texas
Santi Cattolici: