calcule d'une vitesse

Bonjour,

Voila, je voudrais calculer une vitesse avec mon arduino en l’occurrence représenter par des boutons poussoir en PULL DOWN, donc le premier récupère le temps en microseconde ou milliseconde (mon choix) le second récupère le temps aussi et je réaliser la soustraction des deux pour obtenir le temps entre les deux actions et donc après je voudrais utiliser la formule V = D/T pour obtenir le vitesse sauf que le résultat est un entier donc je n'est pas un chiffre a virgule et moi je recherche ceci.

Savez vous si c'est possible de réaliser un résultat avec une virgules ?

Il faut choisir le bon type de variable (float)
http://arduino.cc/fr/Main/SyntheseTypesDonnees

ok, merci de la réponse c'est bien ce que j'avais oublier.

Sinon autre question

V = D/T donc dans mon exemple j'ai 3 seconde donc 30000012 ms environ donc divisée par 100000 µM pour les 10 cm et j'obtient -0.010 et non 0.033 alors que la formule est la division normal.

par exemple ceci vitesse = (100000/ 30000012); l'arduino renvoi 0

Prends une calculette et vérifie, l'arduino à raison! En quelle unité veux-tu afficher la vitesse?

Moi je rechercher en M/S à partir des microseconde,

même me calcule comme vitesse = (100000 / 3000000); j'ai 0.00000 m/s alors que dans la calculatrice j'ai 0.03333333.

Je présume que tu as mis : vitesse = distance/temps;
au lieu de : vitesse= (float)distance/temps;

Ok, merci cela répond bien à ma question, je test demain et je dirais ce que sa donne.

Merci :slight_smile:

Bonjour,

Donc avec le float , c'est mieux mais j'obtient toujours pas le bon résultat avec la division V = D/T.

Dans mon exemple :
D = 100000
T = 3000012 ms

Ce qui donne 0.033 et l'arduino calcule -0.01036

Ca sent le dépassement de capacité (mauvais choix de type de variable pour D et T) :grin:
Un entier (int) doit être compris entre -32767 et 32767
http://arduino.cc/en/Reference/Int

x = 32767;
x = x + 1; // x now contains -32,768 - rolls over

donc ça produit des négatifs et n'importe quoi

Ok, je commence à avoir un doute par rapport au choix.

Un choix du type long serais préférable ?

Edit : Oui type long cela ne pose plus de problème, je découvre l'arduino depuis 4 jours et me rend compte des limites quand je tombe dessus :slight_smile:

Merci

Les constantes en float s'écrivent avec le point décimal sinon elles sont prises pour des entiers.

vitesse = (100000.0 / 3000000.0)