Pages: [1]   Go Down
Author Topic: calcule d'une vitesse  (Read 865 times)
0 Members and 1 Guest are viewing this topic.
Orleans
Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ?
Logged

Be-creation.fr
Arduino UNO SMD Edition - Raspberry PI B 512 Mb

france
Offline Offline
God Member
*****
Karma: 8
Posts: 690
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Christian

Orleans
Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: April 18, 2013, 04:10:28 pm by san41 » Logged

Be-creation.fr
Arduino UNO SMD Edition - Raspberry PI B 512 Mb

Offline Offline
Full Member
***
Karma: 2
Posts: 143
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Orleans
Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Be-creation.fr
Arduino UNO SMD Edition - Raspberry PI B 512 Mb

france
Offline Offline
God Member
*****
Karma: 8
Posts: 690
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Christian

Orleans
Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Merci  smiley
Logged

Be-creation.fr
Arduino UNO SMD Edition - Raspberry PI B 512 Mb

Orleans
Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Logged

Be-creation.fr
Arduino UNO SMD Edition - Raspberry PI B 512 Mb

france
Offline Offline
God Member
*****
Karma: 8
Posts: 690
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ca sent le dépassement de capacité (mauvais choix de type de variable pour D et T) smiley-mr-green
Un entier (int) doit être compris entre -32767 et 32767
http://arduino.cc/en/Reference/Int
Quote
x = 32767;
   x = x + 1;       // x now contains -32,768 - rolls over
donc ça produit des négatifs et n'importe quoi
Logged

Christian

Orleans
Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley

Merci
« Last Edit: April 19, 2013, 05:25:31 am by san41 » Logged

Be-creation.fr
Arduino UNO SMD Edition - Raspberry PI B 512 Mb

France
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3010
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

vitesse = (100000.0 / 3000000.0)
Logged

Pages: [1]   Go Up
Jump to: