int dtime ;
int bestime = 400;
int timeneed = 20000 ;
int led = 13; // Alimentation de la bobine
int hall = A0; // Analyse du capteur a effet Hall
long startTime ; // start time for stop watch
long elapsedTime = 0 ;
int RPM;
long lastelapsedTime = 0;
long calcul ;
unsigned long valeur; //Donnees directes du capteru a effet Hall
float tension; // Valeur actuelle en voltage du capteur
float pretension; // Valeur precedente en voltage du capteur
void setup() // Effectuer une seule fois
{
pinMode (hall, INPUT); // Declarer capteur a effet Hall comme INPUT
pinMode (led, OUTPUT); // Declarer led comme OUTPUT
Serial.begin (9600); // Vitesse du retour des donnees
}
void loop() // Effectuer à chaque fois
{
pretension = tension; // Tension precedente vs tension actuelle
valeur = analogRead (hall); // Lecture du capteur a effet Hall
tension = valeur * 5.0 / 1024; // Formule de calcul du voltage du capteur a effet Hall
int time = elapsedTime * 0.04 ; //Alimentation de la bobine en pourcentage de la periode mesurée
lastelapsedTime = elapsedTime;
calcul = elapsedTime - (10 * (lastelapsedTime - elapsedTime)); //projection des futures periodes obtenues
RPM = 60 / elapsedTime;
elapsedTime = timeneed;
int elapsedTime = bestime;
if (tension < 2.55)
{if (tension < (pretension - 0.005)) { // compare them
elapsedTime = micros() - startTime;
startTime = micros();
digitalWrite(led, HIGH);
dtime = time;
if (elapsedTime < timeneed)
{dtime = 400;}
if (calcul < timeneed)//periode devient plus courte, moteur trop rapide
{dtime = elapsedTime - 200;}//diminuer l'alimentation par des paliers
else
{dtime = elapsedTime + 200;}
delay (dtime);
digitalWrite(led, LOW); // do something, they are different
{if (tension > 2.54 && tension < (pretension - 0.005)) {digitalWrite(led, LOW);}
} }
}
Serial.print("previous time= "); // Imprimer les valeurs pecedentes du capteur
Serial.println(lastelapsedTime);
Serial.print("LAP= "); // Imprimer les valeurs pecedentes du capteur
Serial.println(elapsedTime);
Serial.print("RPM= "); // Imprimer les valeurs pecedentes du capteur
Serial.println(RPM);
Serial.print("T N= "); // Imprimer les valeurs pecedentes du capteur
Serial.println(timeneed);
Serial.print("B T= "); // Imprimer les valeurs pecedentes du capteur
Serial.println(bestime);
Serial.print("calcul= "); // Imprimer les valeurs pecedentes du capteur
Serial.println(calcul);
Serial.print("previous time= "); // Imprimer les valeurs pecedentes du capteur
Serial.println(lastelapsedTime);
Serial.print("time 4%= "); // Imprimer les valeurs pecedentes du capteur
Serial.println(time);
Serial.print("dtime= "); // Imprimer les valeurs pecedentes du capteur
Serial.println(dtime);
Serial.println(); // Sauter une ligne lors de l'affichage
Serial.println();
}
can I ask him to choose the dtime for a number of loop and execute after thank you
dtime = time;
if (elapsedTime < timeneed)
{dtime = 400;}
if (calcul < timeneed)//periode devient plus courte, moteur trop rapide
{dtime = elapsedTime - 200;}//diminuer l'alimentation par des paliers
else
{dtime = elapsedTime + 200;}
delay (dtime);