Condition "à partir de"

Bonjour,

Je récupère les données d'un gyroscope, et je souhaite les afficher seulement à partir du moment où le gyroscope lit une valeur d'1° par seconde.

Par exemple si j'ai : 0;0;1;2;5;0;1 , je veux récupérer 1;2;5;0;1

Avec un if, je récupère : 1;2;5;1

Je cherche donc comment programmer "à partir de"

Merci d'avance

Bonobodu24:
Bonjour,

Je récupère les données d'un gyroscope, et je souhaite les afficher seulement à partir du moment où le gyroscope lit une valeur d'1° par seconde.

Par exemple si j'ai : 0;0;1;2;5;0;1 , je veux récupérer 1;2;5;0;1

Avec un if, je récupère : 1;2;5;1

Je cherche donc comment programmer "à partir de"

Merci d'avance

Salut ,

il suffit de faire une simple boucle for :

for ( valeur = 12 ; etc ; etc ) {
//code
}

commencera uniquement lorsque valeur atteindra 12 .

si vous voulez supprimer que les 2 premieres valeurs vous pouvez aussi faire un truc du style :

int i = 0;
while ( 1==1 )  {
  i++;
   if ( i > 1 ) {
       // stockage des valeurs dans une variable 
   }
}

Je ne crois pas que c’est cela qui est demandé par Bonobodu24

Il faut faire une boucle while dans laquelle tu attends d’avoir atteint le seuil que tu as fixé.

int valeur=0;
int monseuil=1;
while(valeur<monseuil){
     valeur = lecture_du_capteur();
}

J’ai utilisé des int pour l’exemple à toi de mettre le type approprié en fonction de ce que retourne ton capteur.

fdufnews:
Je ne crois pas que c’est cela qui est demandé par Bonobodu24

Il faut faire une boucle while dans laquelle tu attends d’avoir atteint le seuil que tu as fixé.

int valeur=0;

int monseuil=1;
while(valeur<monseuil){
    valeur = lecture_du_capteur();
}



J'ai utilisé des int pour l'exemple à toi de mettre le type approprié en fonction de ce que retourne ton capteur.

possible , mais comment recuperer le 3eme zero en 6eme position donné dans son exemple du coup :

Par exemple si j’ai : 0;0;1;2;5;0;1 , je veux récupérer 1;2;5;**0;**1

?

cela ressemble a une lecture des valeurs directement , sans attente .

faudrait avoir le code complet pour etre sur .

Mais ne vaudrait il pas mieux introduire une attente dans le code avant de recuperer les valeurs avec la fonction millis() ?

Je complète pour la compréhension

int valeur=0;
int monseuil=1;
while(valeur<monseuil){                    // on reste dans cette boucle tant que l'on a pas franchi le seuil
     valeur = lecture_du_capteur();
}
// boucle d'acquisition

....ici ton code qui fait l'acquisiton des données

Le plus simple à mon avis pour ça est d'utiliser un flag, une variable qui sert à décider si on conserve les valeurs liées ou non

Tu déclare un booléen que tu initialises à false
bool flag = false;

Tu commences à lire tes données et tant qu'il y en a, tu compares à la valeur recherchée, ici 1. Si flag est false tu ne conserves pas la valeur. Si elle vaut 1, tu passes flag à true.

Bonobodu24:
Je récupère les données d'un gyroscope, et je souhaite les afficher seulement à partir du moment où le gyroscope lit une valeur d'1° par seconde.

cela veut dire quoi exactement , recuperer les données uniquement si : plus d' un degré par seconde ?

Bonobodu24:
Par exemple si j'ai : 0;0;1;2;5;0;1 , je veux récupérer 1;2;5;0;1

Dans l ' exemple je ne vois pas de similitude avec la phrase precedente ... je comprends que vous voulez supprimer certaines valeurs placées en tete de la liste des valeurs recuperees .

Bonobodu24:
Avec un if, je récupère : 1;2;5;1

Je cherche donc comment programmer "à partir de"

Merci d'avance

" à partir de " quoi justement ?

faudrait le code complet et nous dire a partir de quoi precisément

Il veut déclencher l'acquisition lorsque la valeur mesurée dépasse un degré par seconde

Merci pour les réponses, je vais essayer vos propositions.

@iznobe

Je ne souhaite afficher les données du gyroscope que lorsqu'il est en mouvement. J'ai donc fixer un seuil à partir duquel je souhaite qu'il m'affiche les données (1°/s).

Dans un deuxième temps je souhaiterai qu'il arrête de me les afficher lorsqu'il n'est plus en mouvement (par exemple une série de 10 mesures inférieures à 1°/s.

fdufnews:
Il veut déclencher l'acquisition lorsque la valeur mesurée dépasse un degré par seconde

Exactement, désolé si ce n'était pas clair

Salut ,

juste pour ma comprehension personnelle , le gyroscope est activée par l ’ intermediare du code ?

iznobe:
Salut ,

juste pour ma comprehension personnelle , le gyroscope est activée par l ’ intermediare du code ?

Je ne suis pas sur de bien comprendre. Lorsque je lance le programme le gyroscope me retourne des données. Je ne souhaite afficher les données que quand la vitesse mesurées est supérieure à 1°/s (exemple).

fdufnews:
Je complète pour la compréhension

int valeur=0;

int monseuil=1;
while(valeur<monseuil){                    // on reste dans cette boucle tant que l’on a pas franchi le seuil
    valeur = lecture_du_capteur();
}
// boucle d’acquisition

…ici ton code qui fait l’acquisiton des données

ça fonctionne très bien, merci!