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);
}
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.
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.
[](As - Google Search tu utilisé le tuto d'Eskimon (en français) comme nous le recommandons dans le message de bienvenue du forum)[](Redirect Notice 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 ?