Bonjour, suite à mes tests sur différent format de matrice, je fais référence à ce sujet qui m'a permis de comprendre et d'avancer.
Je cherche à peaufiner mon projet de plaque lumineuse, celle-ci sera placé dans un camion en 24V.
J'ai déjà trouvé un transformateur 24-12V 20A qui sera suffisant.
J'ai vu à plusieurs endroit qu'il fallait mettre un condensateur, pouvez vous m'aiguiller sur une référence ? Si je comprends bien, celui-ci est à mettre entre le + et - au début de la bande de led ?
La valeur de 1000uF 10V sera-t-elle adaptée sur mon montage ? (exemple du montage serpentin ci -dessous)
Photo du projet en cours:
L'arduino est un modèle MEGA, afin de gagner de la place sur les différentes images à l'origine que j'avais prévu, je souhaite gérer mes bandes de leds par ligne, comme une enseigne par exemple, avec des dégradés, clignotements… De cette manière, j'imagine qu'un code (que j'ai déjà vu) pourrait mettre en mouvement ces différentes lignes, cela serait plus léger que de mettre plusieurs images (50 voir 100 )
J'ai donc trouvé plusieurs code et plusieurs idées, cependant, chaque solution et bien sur à adapter.
Dans les faits, je pense utiliser et rester sur la bibliothèque fastled.
Le montage actuel est en serpentin.
- Le premier inconvénient est que ça me fait inversé mon code sur les lignes paires sur chaque image. (cf: premier sujet du forum ci dessus) j'ai une belle solution mais ça reste fastidieux.
- Le deuxième serait la gestion du code (inconnu à ce jour ) Il faudrait que je gère chaque bande de la première leds à la soixantième, les une à la suite des autres en pensant à l'inversion
Entrons dans le vif du sujet
Afin de simplifier tout ça, je me dis qu'il serait plus intéressant que je gère chaque ligne indépendamment en utilisant 10 broches de l'arduino MEGA, une pour chaque ligne.
Je pourrais ainsi adapter ce code en remettant chaque bande de leds dans le même sens:
source: LOCODUINO - Enseigne de magasin
/*
* Programme pour arduino uno
* par C. Bézanger Octobre 2013
* Licence GNU GPLv3
*
* Ce programme réalise le clignotement d'une enseigne publicitaire.
* Il fait clignoter selon un certain rythme six Leds reliées aux sorties 4 à 9.
* Il utilise des fonctions pour alterner les rythmes.
*/
/*
* Initialisation des broches 4 à 9 en sortie
*/
void setup () {
pinMode (4, OUTPUT) ;
pinMode (5, OUTPUT) ;
pinMode (6, OUTPUT) ;
pinMode (7, OUTPUT) ;
pinMode (8, OUTPUT) ;
pinMode (9, OUTPUT) ;
}
/*
* Fonction loop
*/
void loop () {
// Extinction de toutes les Leds au départ du programme
for (byte i = 4 ; i <= 9 ; i++)
{
digitalWrite (i, LOW) ; // éteint la Led reliée à la broche i
}
// Séquence N°1 ; chenillard
sequence_Un () ;
delay (500) ; // délai de 500 millisecondes
// Séquence N°2 : cumul sur la gauche du mouvement de Led
sequence_Deux () ;
delay (500) ; // délai de 500 millisecondes
// Séquence N°3 : clignotement de l'ensemble 3 fois
sequence_Trois () ;
delay (2000) ; // délai de 2 secondes
// Séquence 4 : extinction successive de la gauche vers la droite
sequence_Quatre () ;
delay (2000) ;
// Recommence la séquence
}
/*
* Séquence N°1 ; chenillard
*/
void sequence_Un ()
{
for (byte n = 0 ; n <= 2 ; n++)
{
for (byte i = 4 ; i <= 9 ; i++)
{
digitalWrite (i, HIGH) ; // allume la Led sur broche i
delay (100) ; // durée du flash 150 millisecondes
digitalWrite (i, LOW) ; // éteint la Led
delay (50) ;
}
}
}
/*
* Séquence N° 2 : cumul sur la gauche du mouvement de Led
*/
void sequence_Deux ()
{
for (byte n = 0 ; n <= 5 ; n++)
{
for (byte i = 4 ; i <= (9-n) ; i++)
{
digitalWrite (i, HIGH) ; // allume la Led sur broche i
delay (150) ; // durée du flash 150 millisecondes
digitalWrite (i, LOW) ; // éteint la Led
}
digitalWrite ( (9 - n) , HIGH ) ; // dernière Led reste allumée
}
}
/*
* Séquence N°3 : clignotement de l'ensemble 3 fois
*/
void sequence_Trois ()
{
for (byte j = 1 ; j <= 3 ; j++)
{
for (byte k = 4 ; k <= 9 ; k++)
{
digitalWrite (k , LOW) ;
}
delay (500) ;
for (byte l = 4 ; l <= 9 ; l++)
{
digitalWrite (l, HIGH) ;
}
delay (500) ;
}
}
/*
* Séquence 4 : extinction successive de la gauche vers la droite
*/
void sequence_Quatre ()
{
for (byte i = 9 ; i >= 4 ; i--)
{
digitalWrite (i, LOW) ;
delay (150);
}
}
En utilisant ce code,
- je m'interroge sur la manière de laisser inerte certaine leds adressables et d'en allumer d'autre (en utilisant les animations bien sur)
- je me demande aussi comment gérer la couleur :
- par ligne ?
- sur l'ensemble ?
- avec des dégradés ?
- et pourquoi pas un effet Rainbow sur l'ensemble ?
Une dernière question qui pourrait remettre à nouveau en question l'architecture du montage (désolé )
Si je voulais adapter ce bel effet de feu, avec ce code, serait-ce envisageable ?
Vidéo: Quick video of "Fire2012" Here's what the "Fire2012" fire simulation looks like when running - FastLED Archive - Maker Forums
Code: Fire2012: an Arduino/LED fire simulation for FastLED - Pastebin.com
Je vous remercie déjà de m'avoir lu, et j'espère susciter votre intérêt et je comprends bien que je n'apporte pas grand chose comme code, à défaut de beaucoup de question que j'ai mis en italique pour apporter de la clarté
Je cherche avant tout à comprendre en plus de réaliser mon projet.
L'idée étant également de pouvoir reproduire d'autres modèles pour des collègues/amis.
Merci
Patrice