leds progressivent

Cesar
jeu, 01/31/2019 - 01:20
Bonjour, j'aimerais me servir de 5 leds comme témoin d'une valeur mais pas juste 1,2,3,4,5.. mais plutôt led 1 allumée progressivement puis quand elle est allumée led 2 s'éclaire progressivement... pour l'instant j'ai réussi a faire ça, bon c'est du niveau 3e techno mais je ne sais pas comment mette les 5 progressives sur une même valeur ou les incrémentées.... si quelqu'un sait le faire et a une idée..!?
int led1 = 3;
int led2 = 5;
int led3 = 6;
int led4 = 10;
int led5 = 11;
int del;
void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT) ;
pinMode(led2, OUTPUT) ;
pinMode(led3, OUTPUT) ;
pinMode(led4, OUTPUT) ;
pinMode(led5, OUTPUT) ;
del = 10;
}
void loop() {
for (int a = 0;a<=250;a = a+10){
analogWrite(led1,a);
delay(del);
}
for (int b = 0;b<=250;b = b+10){
analogWrite(led2,b);
delay(del);
}
for (int c = 0;c<=250;c = c+10){
analogWrite(led3,c);
delay(del);
}
for (int d = 0;d<=250;d = d+10){
analogWrite(led4,d);
delay(del);
}
for (int e = 0;e<=250;e = e+10){
analogWrite(led5,e);
delay(del);
}
for (int e = 250;e>=0;e = e-10){
analogWrite(led5,e);
delay(del);
}
for (int d = 250;d>=0;d = d-10){
analogWrite(led4,d);
delay(del);
}
for (int c = 250;c>=0;c = c-10){
analogWrite(led3,c);
delay(del);
}
for (int b = 250;b>=0;b = b-10){
analogWrite(led2,b);
delay(del);
}
for (int a = 250;a>=0;a = a-10){
analogWrite(led1,a);
delay(del);
}
}
Walter
jeu, 01/31/2019 - 09:41
Bonjour, une méthode simple serait avec la variable temoin qui vaut entre 1 à 5, de mettre chaque boucle "for" dans un "if".
soit :
Je n'ai pas tester le code, il y a peut être des erreurs qui traînent.
Du coup tu pourra alors factoriser le code en mettant une boucle(ou deux pour la monté et la descente) for à la place de tous les if et remplacer tes variables de PIN de LED par un tableau
int myPins[] = {3, 5, 6, 10, 11}
Du coup la boucle des LED utilise ta variable "temoin" comme borne de la boucle et tu utilise l'indice courant, pour accéder à la bonne LED.
N'hésite pas a me demander des détailles, si je ne suis pas très claire.
Cesar
sam, 02/02/2019 - 11:30
Bonjour, oui c'est exactement ça, ou début je voulait faire un chenillard pour reproduire l'effet "K2000" et je me suis rendu compte que je ne savais pas gérer facilement 5 leds progressivement l'une après l'autre, et je voulais passer d'une leds a une autre grace à leurs valeurs: " si led 1 est à 250 passer a led 2 0>250.." mais je vais essayer le code de Walter ,passer juste de 1 à 5 c'est juste que je n'avais aucune idée de comment le faire mais maintenant que le vois c'est très simple et je vais pouvoir essayer les tableaux! merci
Cesar
sam, 02/02/2019 - 15:06
ouais enfin j'aurais juste a changer l'ordre des temoins et les delay mais maintenant j'ai une manière de faire, avant j'étais complètement bloquer je ne trouvais aucune solution!
Cesar
dim, 02/03/2019 - 20:15
super sympa, des chenillards il y en a des milliers sur Yt mais ça j'en ai presque pas trouver! par contre K2000 ça part du centre vers les coté aussi :-)) .Je vais essayer et si je galère je te demanderais ton code pour voir si on peux simplifier!
Cesar
lun, 02/04/2019 - 00:56
non en faite ce n'est que pendant les scènes ou il parle, ou les scènes de coupe les deux cotés allait vers le centre et repartait du centre vers les cotés, mais je vais essayer et après je verrais ton code pour voir si je peux simplifier le miens!
Walter
jeu, 02/07/2019 - 00:30
Comme Spy passe son temps à ce plaindre que je ne post pas de code.
Voici un équivalent sans prétention d'un chenillard arduino.
Cesar
jeu, 02/07/2019 - 03:46
Ah ouais, la c'est complet! merci je vais pouvoir m'amuser ça va beaucoup m'aider, merci
Walter
jeu, 02/07/2019 - 09:05
Il n'y a pas forcément beaucoup d'explication, donc n'hésite pas à poser des questions, si nécessaire.
Cesar
jeu, 02/07/2019 - 09:08
D'accord pas de problème merci beaucoup
Walter
jeu, 02/07/2019 - 10:22
Lol, pour être exacte c'est du copier/coller et je ne vois pas pourquoi je modifierais les commentaires ou chercherais a maquiller la source.
C'est la même base de source que celui que j'avais fournis à ton père, en fournissant déjà le lien de loccoduino, qui en plus de très bien expliquer le principe des Timers, fournis des code d'exemple parfais pour les modifier à ça convenance.
Visiblement tu ne connais pas du tout le métier de développeur!
Le code fonctionne sur ma platine, mais après je serais très heureux que l'on corrige mon code, ou l'optimise.
Je n'ai aucune prétention à être le meilleurs, uniquement partagé et apprendre des autres.
Jetfuzz
ven, 02/08/2019 - 08:56
Hello
Ben tu vois ton astuce,je l'ai utilisé il y a un an deja, pour un sapin de noel avec 17 leds.
et je rapelle que je sais pas coder, je peux donc considerer que mon idée etait bonne.
Voir ci dessous, j'ai pas mis tout le soft parce que trop long, mais il suffit de demander.
Cordialement
Jetfuzz
Walter
jeu, 02/07/2019 - 18:27
Alors vu ma petite cervelle de poisson rouge, surtout ne pas faire confiance à mon code :)
Il y a effectivement une erreur, d'étourderie sur la boucle for, que je n'ai pas modifié lorsque j'ai étendue le tableau de LED.
Ce qui fait qu'à par l'effet centrale initial, ça ne peut marcher.
Dans le même ordre, on peut noter que le double if/else n'est pas utile du fait que l'on éteint les LED progressivement aussi.
Initialement le deuxième if n'existait pas.
Après l'utilisation du Timer est très discutable, j'avoue que je n'aime pas passer du temps à attendre(donc les delay).
Mais cela vaut-il le coup de complexifier inutilement le code ?
Après l'idée derrière est aussi est de pouvoir gérer un nombre indéfinie de LED, sans sortir un gros mega, donc l'utilisation par exemple d'un registre à décalage, qui faudra piloté en PWM, manuellement.
Pour ce genre de chose, le Timer me parais inévitable?
J'ai d'ailleurs un problème pour gérer une matrice de 8x8 triplette de LED, lorsque je met plusieurs 74HC en série, des fois les ordres ne sont pas transmit.
Je peux développer si quelqu'un pense avoir une idée.
Sinon j'ai eu une conversion très constructive et cordiale avec Spy en privé.
Ce qui l'a convaincu de livrer ses sources. Je le remercie pour la conversation et du code.
Je remercie aussi Spy d'avoir passer du temps à corriger mes âneries, pour que mon code soit plus propre.
Jetfuzz
mar, 02/12/2019 - 10:27
Spy.
Désolé
Je vais le faire, dés que je trouve un moment.je n'ai pas de schéma, faut que je gribouille un truc vite fait, j'ai tendance a faire les montages electro a " l'arrache' les schéma sont dans ma tête.
je vais vous faire deux trois photos.
Patience.
Jetfuzz
Jetfuzz
lun, 02/18/2019 - 14:44
Voila
https://www.les-electroniciens.com/sites/default/files/sapin_tableau.zip
une petite image
En fait toutes les anodes des leds sont connectées au 5V, et la cathode a un port de l'arduino, suivant le tableau en tête du code.
jetfuzz
Walter
mar, 02/12/2019 - 11:42
pas mal Jetfuzz, je vois que tu t'amuse bien au boulot :)
par contre tu ne peut pas mettre un fichier à la place du code brute dans le message?
Jetfuzz
mar, 02/12/2019 - 12:58
Walter,
Ya qu'a demander le code est en PJ
et si tu veux être efficace au Taf, il faut une part d'amusement.
Cordialement
Jetfuzz
Walter
mar, 02/12/2019 - 14:44
Cool, c'est claire, c'est comme la sieste, ca devrait être obligatoire, pour maintenir un bon rendement de productivité!
Jetfuzz
mar, 02/12/2019 - 15:46
Spy
C'est clair que c'est mieux, quoi que, le principe c'etait de "dessiner" le sapin, pour pouvoir faire des séquences qui soit visuel dans le code.
Merci pour les ZZ
Cordialement
Jetfuzz
Walter
jeu, 02/21/2019 - 08:50
Comme je viens de voir que SPY s'était désinscrit et comme il avait publié son code ici, je dois l'avoir quelque part si ça intéresse quelqu'un.
Du coup j'ai repensé à ton code Jetfuzz, car en fait je n'aime pas trop le codage en dure dans un gros tableaux, surtout si on veut par exemple avoir des effets aléatoire, il faut connaître précisément le début et la fin de l'effet dans le tableau.
Pour le coup cela ne se justifie pas vraiment sur ton projet qui ne devrait pas trop bouger, mais je trouve que cela y gagnerait en lisibilité et possibilité d'évolution d'avoir soit plusieurs tableaux basique, soit des fonctions d'effets spécifiques.
Jetfuzz
lun, 02/25/2019 - 09:25
Walter, voila une idée qu'elle est bonne, effectivement splitter chaque effet va faire son effet.
dés que j'ai 5 minutes (heures), je vais voir ca.
Jetfuzz