Arret clignotement LED

Bonjour à tous,

J'ai un problème avec mon programme Arduino qui est censé faire clignoter des DEL mais il ne s'arrête jamais. Comment modifier mon programme pour que la DEL arrête de clignoter car tout est dans le loop, j'ai essayé de mettre une boucle dans le loop mais ca ne fait rien

Voici mon programme :

void setup() {
// put your setup code here, to run once:
pinMode(3,OUTPUT);
Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(3, HIGH);
delay(450);
digitalWrite(3, LOW);
delay(450);
}

Merci pour l'aide.

bonsoir,
explications pas clair!

veux tu par exemple que la led clignote 1mn puis s'arrête?

Yan_duino

Petit préambule :
Je pense que tu n'as pas lu les messages "Bienvenue sur le forum francophone" et "Comment faire un nouveau sujet" sinon tu aurais mis le code entre balise et tu aurais appliqué les recommandations du chapitre "Les information qui nous sont nécessaires pour nous répondre".

Eléments de réponse.
Ton programme fait exactement ce que tu lui demande de faire, à la remarque près que ce n'est pas la peine de lancer un Serial.begin dans le setup si tu ne l'utilise pas après : tu bouffe de la mémoire flash pour rien.

Il faut écrire sur le papier ce que tu veux faire et faire le programme après.
Tu nous dis que tu veux que la Del arrète de clignoter mais tu ne nous dis pas sur quel(s) critère(s) elle doit s'arrêter de clignoter ni le nombre de clignotement max que tu veux.

En général pour ce type d'action on utilise une boucle "if" dans laquelle on teste l'état d'une variable. Reste à savoir sur quel critère, sur quelle action, le contenu de la variable est modifié.
La réponse est chez toi. Quand tout sera clair tu verra que la programmation se fera naturellement.

Merci pour votre réponse.

En fait je veux que la DEL arrete de clignoter au bout de 1 min par exemple automatiquement, le nombre de clignotement je sais pas ça en fait combien.

Tu dois pouvoir faire ça avec une boucle for

Ou avec millis()

J'ai testé avec une boucle for mais ça marche pas mais comment millis pourrait marcher ? Où le placer ?

Tu déclares d'abord ta variable stockant le temps : par exemple insigned long temps ;

Ensuite dans ta loop, au début de ton clignotement, tu stockes le temps actuelle dans ta variable :

Temps = millis ();

Puis , quand ton temps est atteint tu arrêtes tes leds :

If ( millis - temps >= 60000)
{ arrêt des leds }

En fait je veux que la DEL arrete de clignoter au bout de 1 min par exemple automatiquement, le nombre de clignotement je sais pas ça en fait combien.

Bien sur que si tu peut savoir !
La référence des fonctions est ici :
Menu horizontal
Learning --> Reference

Delay(nombre); --> nombre représente des millisecondes. Comme dans ton programme tu as écrit delay(450) la del s'allume pendant 450ms et s'éteint pendant 450 ms soit 0,9 secondes par cycle --> soit 60/0,9 = 66 cycles.

saygl:
J'ai testé avec une boucle for mais ça marche pas mais comment millis pourrait marcher ? Où le placer ?

Le tout roti ne fait pas progresser.
Il faut que tu commence à regarder la définition de millis() et l'exemple d'application associé. C'est au même endroit que delay().
Regarde aussi parmi les exemples fournis avec l'IDE le programme "Blink_without_delay.ino" .
Tout ce que tu cherches y est expliqué.
Si cela ne suffit pas une recherche gogole avec les mots clé "arduino" et "millis" donne beaucoup de réponses dont une bonne partie en français.
Cet effort préalable te permettra de poser des questions plus précises et par conséquent d'obtenir des réponses plus pertinentes.

As tu utilisé le tuto d'Eskimon (en français) comme nous le recommandons dans le message de bienvenue du forum ?

Remarque importante : tu n'as toujours pas défini quels sont les critères qui provoquent l'arret du clignotement. Tel que tu es parti la del clignotera 60 seconde et puis c'est tout.
Le programme ne pourra jamais la refaire clignoter, il faudra appuyer sur le bouton Reset : je ne pense pas que ce soit cela que tu cherches.

[](http://www.google.fr/search?q=As tu utilisé le tuto d'Eskimon (en français) comme nous le recommandons dans le message de bienvenue du forum)[](http://www.google.fr/search?hl=fr&btnI=I'm+Feeling+Lucky&q=As tu utilisé le tuto d'Eskimon (en français) comme nous le recommandons dans le message de bienvenue du forum+wikipedia)

En effet @68tjs je souhaite que la DEL puisse de nouveau se mettre à clignoter si on fait une action pour qu'elle reclignote, j'ai regardé pour millis et je vois que c'est pour que deux actions soient effectués en même temps mais comment me servir de ça pour faire repartir le clignotement une 2e fois ?

bonjour,
tu mets un bouton pour relancer le clignotement par exemple.

temps_max = 10000 => 10s par exemple

lancement dans le loop

temps_depart = millis
tant que (millis - temps_depart)<temps_max

sinon pas de clignotement

si appui bouton
temps_depart = millis

et hop voila ton programme simplifié

Et si je ne veux pas mettre de bouton, par exemple une page web qui déclenche le clignotement par l'appui sur un bouton du site ?

saygl:
Et si je ne veux pas mettre de bouton, par exemple une page web qui déclenche le clignotement par l'appui sur un bouton du site ?

déjà, commence par comprendre certaines choses en programmation avant de vouloir faire compliqué.

infobarquee:
déjà, commence par comprendre certaines choses en programmation avant de vouloir faire compliqué.

Oh que OUI !

On n'apprend qu'une chose à la fois.

  • apprend à utiliser un bouton (gestion par vérification cyclique de l'état du bouton (polling) ou gestion par interruption par exemple).
  • apprend à gérer une page web avec une carte arduino + extension ethernet.

Seulement quand les deux fonctionneront séparément tu pourra interconnecter les deux mais pas avant sinon tu ne t'en sortira jamais.