Aide millis() pour mon PPE


bonjour à tous et à toutes.. alors voilà je travaille pour mon ppe sur un segway, (le modèle ewee).
le de notre ppe est de réaliser un sorte de tableau de bord pour que la personne puisse consulter la vitesse, la distance parcourue .. etc. dans mon groupe, je suis celui qui doit m'occuper de faire le programme avec arduino, je dispose d'un capteur à effet hall et d'un aimant pour calculer la distance parcourue et la vitesse. pour la distance parcourue, j'ai réussi en faisant :

code: [select]
float distanceparcourue;
const float perimetre = 2 * 3.14 * 0.0415;
int compteur;

void setup() {
 attachinterrupt(0, compte, rising);
 serial.begin(9600);
}

void mesuretemps() {
 temps= millis();
 tempsprecedent = millis();
}


void loop()
{  
 
 distanceparcourue = compteur * perimetre;
 serial.print(compteur);
 serial.print(" , ");
 serial.print(distanceparcourue);
 delay(1000);  
}

void compte() {
compteur = compteur+1;
}


ca m'affiche bien la distance parcourue et le nombre de tour que fait ma roue.

maintenant vient pour calculer la vitesse .. j'utilise donc la fonction millis(); qui compte le temps dès que ma carte arduino est allumée.
je souhaite faire un chronomètre qui, dès que l'aimant passe devant ma capteur, démarre, lorsque l'aimant repasse devant le capteur, le chronomètre 1 s'arrête, fait le calcul vitesse = perimetre (de ma roue) / par la temps du chronometre. et un chronomètre 2 se lance pendant que le 1 se réinitialise .. etc.

code: [select]
float distance;
const float perimetre = 2 * 3.14 * 0.0415;
float vitesse;
int compteur;
unsigned temps;
unsigned tempsprecedent;

void setup() {
 attachinterrupt(0, compte, rising);
 serial.begin(9600);
}

void mesuretemps() {
 temps= millis();
 tempsprecedent = millis();
}


void loop()
{  
 vitesse = perimetre / temps;
 distance = compteur * perimetre;
 serial.print(compteur);
 serial.print(" , ");
 serial.print(distance);
 serial.print(" , ");
 serial.println(vitesse);
 delay(1000);  
}

void compte() {
compteur = compteur+1;
}


j'ai fais ça. mais je ne sais pas comment faire avec millis(); :/ quelqu'un pour éclairer ma lanterne ?

bonjour
premier point (règle du forum) : balises code
pour millis() si tu sauvegarde la valeur de millis entre la première détection du capteur hall et idem pour le second tour, tu auras par différence le temps mis pour faire un tour donc la vitesse.
@+


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Aide millis() pour mon PPE


arduino

Comments