Cycle qui doit durer 10 secondes

Bonjour,
Je débute en programmation sur arduino est je me demandai comment faire pour faire:

while(10 secondes ne sont pas écoulé){

déroulement du programme
}

Merci de vos réponses.

Bonjour

delay(10000);

Simplement
Delay fait faire une pause à ton programme, pendant ce temps, rien ne se passe. Ca se fait en milisecondes

Salut

while(10 secondes ne sont pas écoulé){

     déroulement du programme
}

Sauf erreur d'énoncé et si j'ai bien lu : tant que les dix secondes ne sont pas écoulées -> faire quelque chose.
Si c'est bien cela, il faut plutôt utiliser millis().

    unsigned long now = millis();
    while(millis() < now + 10000) {
        // faire qqchose
    }

@+

Un bon tuto sur le sujet ici.

hbachetti:
Sauf erreur d'énoncé et si j'ai bien lu : tant que les dix secondes ne sont pas écoulées -> faire quelque chose.
Si c'est bien cela, il faut plutôt utiliser millis().

Ah mince j'ai compris le contraire. Merci de me corriger :wink:

Merci pour toutes vos réponses mon programme fonctionne maintenant ! :slight_smile:

chouette!
En éditant ton premier post, tu peux ajouter [RESOLU] au titre :wink:

Bonsoir
Merci du retour.

@+

pepe:
Bonsoir

Attention.

Au bout d'un certain temps (232 ms ≈ 49 jours et 17 heures), le nombre de millisecondes écoulées depuis l'allumage de la carte dépassera la capacité du compteur, et celui-ci repartira à zéro. Si la valeur de now est enregistrée moins de 10000 ms avant ce dépassement de capacité, alors la valeur de « now+10000 » sera inférieure à 10000 et le test sera faux avant l'heure convenue.

:grin:

Quelquefois , il est bon de rappeler simplement "un principe simple"
~ 50 jours = ~ 2 mois et 2 mois ça peut passer... trés vite :smiley: