Mesure du nombre de tour par minute

Bonjour, je souhaite mesurer le nombre de tour par minute que fait ma roue codeuse. Pour cela j'ai un capteur infrarouge qui me permet de compter le nombre de tour que fais ma roue. J'essaye de mesure grâce à deux timer que soustrait la duré que fait ma roue lorsque elle fait un tour complet. Malheureusement mon code me permet pas de mesurer le temps que fais ma roue. Pouvez vous m'aider à modifier mon code pour qu'il puisse mesurer le nombre de tour par minute que fais ma roue.
Ci dessous mon code

int vitesse = 0;
float compteur = 0;
int capteur = 3; // Déclaration du capteur sur la broche 3
int val = 0; // Déclaration d'un variable numérique
unsigned long time;
unsigned long time1;
int duree = 250;
int freq = 200;
#include<Wire.h>
#include<LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup()
{

  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  //Déclaration de Led en tant que sortie
  pinMode(capteur, INPUT_PULLUP); // Déclaration de capteur en tant qu'entrée
  pinMode (8, OUTPUT); //Pin relié au buzzer et configuré comme sortie
}
void loop()
{
  time = millis();
  delay(1000);
  val = digitalRead(3);

  if (val == HIGH) {
    compteur = compteur + 1;
    for (int i = 1; i <= 255; i++) {
      if (compteur == 4 * i) {
        time1 = millis();
        delay(1000);
        vitesse = compteur * (time - time1) / 1000;
        i = i + 1;
      }
    }
  }
}

lcd.setCursor(9, 0);
lcd.print(vitesse);
delay(500);
lcd.setCursor(0, 0);
lcd.print("Vitesse:");
}

J'ai modifié votre post pour rajouter les balises de code et indenter. Regardez la find du code après la loop()et maintenant ça saute aux yeux qu'il y a un problème d'accolades... donc ça ne compilera même pas.

Vous ne pouvez pas mettre un delay() et espérer mesurer quoi que ce soit de pertinent. utilisez millis() ou une interruption


Pour ajouter les balises de code:

  • sélectionner la partie du texte qui correspond au code
  • appuyez sur l'icône </> dans la barre d'outils pour indiquer que c'est du code

(Assurez vous aussi d'indenter le code correctement dans l'IDE avant de le copier pour le coller ici. Cela se fait en pressant ctrlT sur PC ou cmdT sur un Mac)

Pour qu'on puisse vous aider à aller plus loin il faut savoir combien de pulses par seconde votre roue codeuse vous envoie. Il y a plusieurs solutions possibles, mais le choix dépend de la valeur maximale de ce paramètre.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.