Merci beaucoup fdufnews ![]()
Je sais mtn que depuis 6 mois je travaille pour rien lol
en faite j'utlisais la variable temps pour faire des calculs mais il est bien preciser que
Note that the parameter for millis is an unsigned long, errors may be generated if a programmer tries to do math with other datatypes such as ints.
Donc mon programme est foutu
enfin je pense. Le voila :
// DEFINITIONS DES VARIABLES
const int CapteurDeLigne = 4;
float Tours = 0;
int CapteurDeLigneState = 0;
float Vitesse = 0.00;
float TempsEcoule = 0.00;
float RefTemps = 0.00;
void setup() {
pinMode(CapteurDeLigne, INPUT);
Serial.begin (9600);
while(digitalRead(CapteurDeLigne)!=0) ;
RefTemps=millis();
while(digitalRead(CapteurDeLigne)==0) ;
delay(1000);
}
void loop(){
if(digitalRead(CapteurDeLigne)==LOW) {
TempsEcoule=millis()-RefTemps;
RefTemps=millis();
Tours=Tours+1;
Vitesse = 0.14*PI*(Tours/TempsEcoule*0.001);}
else {
TempsEcoule=millis()-RefTemps;
RefTemps=millis();
Tours=Tours;
Vitesse = 0.14*PI*(Tours/TempsEcoule*0.001);}
Serial.print (Tours);
Serial.print (" Tr ");
Serial.print (Vitesse);
Serial.print (" m/s ");
while(digitalRead(CapteurDeLigne)==0); // tant que le capteur n'est pas revenu à la normale on boucle
delay(1000);// à ajuster pour limiter les effets de rebond
}