Go Down

Topic: Aide SVP (Read 206 times) previous topic - next topic

Foufou

Sep 12, 2017, 07:18 pm Last Edit: Oct 09, 2017, 06:24 pm by Foufou
Salut tout le monde , mon conde constitue a mesuere le nombre de tours d un moteur .
en faite j aimerai compter le nombre de tours a chaque pique ( changement d etat) et puis apres 18 pics il faudra  fair la moyenne du nombre de tours apres 18 pics en tout



Merci d avoir lu mon MSG :D

ZigZag

Merci d avoir lu mon MSG :D
De rien, je l'ai même lu 2 fois plutôt qu'une ... mais euh  :smiley-confuse:  desolé

dfgh

hello, regarde LA

c'est dans l'esprit de ce que tu cherches

Foufou

au faite je dois particulierement  me baser sur la fonction attachInterrupt .

dfgh

 :o je viens de m'apercevoir que le lien que je t'ai passé t'envoie sur un post qui est déjà de toi et dans lequel tu demandais déjà de l'aide à ce sujet... >:(

pourquoi ne pas avoir continuer sur ce post.

il ne sert à rein d'en ouvrir plusieurs en même temps.

infobarquee

par ce que j ai pas eu d autre reponse :S

et CA c'est pas une réponse?

en plus tu poste dans la partie allemande
et la réponse n'est pas plus explicite http://forum.arduino.cc/index.php?topic=499833.msg3409861#msg3409861

A LIRE POUR RAPPEL
AUCUNE AIDE PAR MP

dfgh

#6
Sep 13, 2017, 01:02 pm Last Edit: Sep 30, 2017, 03:48 pm by dfgh
testes ça

moniteur en 115200 bauds

Code: [Select]
unsigned long top_1ere_dent; // le temps debut pour la deuxiemer messure
volatile unsigned long top_18eme_dent; // le temps ecoule
volatile byte  nombre_dents; // compteur de dents
int vitesse; //nombre de tours par minute
unsigned long temps_au_tour;
void setup()
{
Serial.begin(115200);
pinMode(2,INPUT_PULLUP);
vitesse=0;
top_18eme_dent=0;
nombre_dents=0;
attachInterrupt(0,isr_impulsion,HIGH) ;//
}

void isr_impulsion(){nombre_dents++;}

void loop()
{
  if (nombre_dents==1){top_1ere_dent=millis();}
  if (nombre_dents==18)
      {
        top_18eme_dent=millis(); // le temps ecoule
        nombre_dents=0;
        temps_au_tour = (top_18eme_dent-top_1ere_dent);
        vitesse = (60000/temps_au_tour);
        Serial.print("vitesse tr/mn : ");Serial.println(vitesse); // le nombre de tours
      }}

Go Up