Go Down

Topic: Ruban Led par infrarouge (Read 1 time) previous topic - next topic

Tristan_Guillo

Dans l'exemple ci dessous je l'ai appelé flagFondu. Il est mis à true par l'appui sur la touche fondu et remis à false par la touche arret
Je n'ai pas bien compris sur quoi agis "false" ou "true"  :smiley-confuse:
Mon mode fondu est bien en boucle, si je comprend bien, je dois ré appuyer sur la même touche pour désactiver le mode ? Seulement, une fois la fondue lancé , impossible de l'arêter ou de changer de mode ( choisir une couleur statique etc..)
Le serial monitor n'affiche plus rien (le signal est reçu pourtant, blink13 clignote a l'appuie d'une touche)

kamill

flagFondu est remis à false dans le traitement de la touche marche/arrêt
Code: [Select]
     case 0xFFA25D:    // on /off
       Serial.println("Touche on/off");
       flagFondu = false;


Si tu veux tu peux le remettre à false dans le traitement de toutes les touches.
Le petit problème avec la fonction couleursFondue que tu as fait est qu'il faut attendre la fin du cycle pour la prise en compte de la touche

Tristan_Guillo

Je vient d'essayer, je ne vois pas trop de difference  :o
Ce n'est pas un petit soucis alors vu que l'opération me bloque toute interactions, comment faire une fondue (toute bête pourtant) qui me permettrais de ne pas attendre la fin d'un cycle ?

kamill

#18
Apr 22, 2016, 02:49 pm Last Edit: Apr 22, 2016, 02:50 pm by kamill
Tu ne vois pas la différence avec quoi?
Il faudrait ne pas utiliser delay(), ou tout au moins ne pas utiliser de boucle avec delay(), mais ça complique fortement les choses.

Tristan_Guillo

Tu ne vois pas la différence avec quoi?
Entre executer le programme en écrivant "true" a la place de "false".

Bonjour,

Tu utilises la fonction DELAYquiestune fonction bloquante : l'exécution du programme s'arrête ...

Tu doid utiliser la fonction MILLIS pour gérer tes temporisations : voir dans les exemples de l'IDE : blink whitout delay.
Est t'il possible de crée ma fondu avec millis() ? Si oui, comment ?

kamill

#20
Apr 22, 2016, 03:32 pm Last Edit: Apr 22, 2016, 04:15 pm by kamill
C'est difficile de faire avec millis() essaye déjà sans faire de boucle

Tristan_Guillo

C'est difficile de faire avec millis() essaye déjà sans faire de boucle
Faire une fondue sans faire de boucle ? L'intérêt de la fondue est justement que les couleurs defiles a l'infini..
Mon projet n'est pas réalisable ??  :(

kamill

Bien sur que si il est réalisable, car tu as déjà une boucle principale qui s'appelle loop().
If suffit de faire progresser un (ou deux) index à chaque appel de couleursFondue()

Tristan_Guillo

Je m'excuse mais je ne suis pas encore assez calé en code, je ne comprend pas…
Qu'est ce qu'un index ? Un appel ? :smiley-confuse:

kamill

Un index c'est une variable qui sert à compter et/ou a savoir on on en est comme i dans for (int i; i<10; i++)

Un appel, bin ... c'est un appel. Quand tu lances la fonction tu fais un appel à la fonction.

Go Up