une boucle dans une boucle ou comment faire une sortie clignotante permanente.

Bonjour,

Je débute et je suis en train de jouer avec les variable et les boucles histoire d'apprendre les bases.

Je bute sur un détail ou je ne vois pas du tout comment faire.

Faire clignoter une led, c'est simple, a base de
digitalWrite(1,HIGH);
delay(1000)
digitalWrite(1,LOW);
delay(1000);

Mais si je fait ce code ça fonctionne, par contre si j'ai un code plus complexe, avec d'autre delay insérés par exemple, ça ne fonctionnera plus.

Comment je fait si par exemple je veux une sortie qui clignote en permanence ou suivant un événement dans le programme.

Merci de vos lumières.

Bonjour

Il ne faut pas/plus utiliser de delay

mais les Millis

@+

Salut logiquement le code que tu as donné est dans loop {
}

qui signifie en fait boucle ( infinie )

donc inutile de faire autrechose pour que ca clignote en fait ::slight_smile:

en gros si tu fais void setup {
// definitions des pins , des variables , des constantes , des fonctions
}

puis void loop {
digitalWrite(1,HIGH);
delay(1000)
digitalWrite(1,LOW);
delay(1000);
}

ca clignote en permanence .

Salut logiquement le code que tu as donné est dans loop {
}

qui signifie en fait boucle ( infinie )

donc inutile de faire autre chose pour que ça clignote en fait ::slight_smile:

Si je ne fait que ça oui, mais si j'ajoute du code et dans ce code il y a un autre delai, il va s'ajouter donc ça ne fonctionnera plus de la même façon.

Bonjour

Il ne faut pas/plus utiliser de delay

mais les Millis

https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay

@+

Vais aller étudier ça.Merci

la fonction delay " bloque " le programme .

donc si tu veux ne pas bloquer ton execution de programme il faut effectivement utiliser la fonction millis ().

mais tu devrais peut etre continuer ton apprentissage , ca sera certainement detaille un peu plus en avant de tes cours.

il ne faut pas vouloir mettre la charue avant les boeufs :wink:

iznobe:
la fonction delay " bloque " le programme .

donc si tu veux ne pas bloquer ton execution de programme il faut effectivement utiliser la fonction millis ().

mais tu devrais peut etre continuer ton apprentissage , ca sera certainement detaille un peu plus en avant de tes cours.

il ne faut pas vouloir mettre la charue avant les boeufs :wink:

Je sais, mais quand je lis un truc et que j'ai une idée, ça me bloque, et comme patience n'est pas mon deuxième prénom :smiley: :smiley: 8)

Après si tu veux aller plus loin, utilise les timers, chacun agissent sur 2 broches et rien de transparaît dans ta boucle loop()

Tu trouveras des liens vers des tutos ici