Bonjour,
après quelques jours de programmation (je n'avais jamais fait ça avant à part 2-3 projets en VB), voici mon code pour mon radar. Je l'ai testé sur mon matos et ça marche. Si toutefois, il y a des incohérences ou des choses qui pourraient faire bugger mon système, dites-le moi

// include the library code
#include <LiquidCrystal.h>
LiquidCrystal lcd(7,8,9,10,11,12);
//Déclaration variables
const int PD1 = A0; //Photodiode1 sur entrée A0
const int PD2 = A1; //Photodiode1 sur entrée A1
const int LED1=4; //LED de contrôle pour PD1
const int LED2=5; //LED de contrôle pour PD2
int ValeurPD1 = 0; // valeur PD1 du port A0
int ValeurPD2 = 0; // valeur PD1 du port A1
int ValeurLED1 = 0; // valeur LED1 pour sortie 4
int ValeurLED2 = 0; //valeur LED2 pour sortie 5
long PD1VH =1023;
long PD1VB=0;
long PD2VH =1023;
long PD2VB=0;
long Tps0 =0;
long TpsEnd=0;
long TpsAffi=0; //Temps affiché en ms depuis fonction micros()
float Speedkph =0; // en kph
float Speedmph =0; // en mph
float SpeedkphM =0; // en kph
float SpeedmphM =0; // en mph
float Longueur = 10; // Longueur en cellules en mètres en décimales
long LongueurAffi = 0; //Longueur affichée au LCD en entier
boolean chrono = false;
void setup() {
Serial.begin(9600);
LongueurAffi=Longueur;
lcd.begin(16, 2); // set up the LCD's number of columns and rows:
lcd.clear();
lcd.print("Tassault"); //Displays version of the software
lcd.setCursor (12,0);
lcd.print("V0.9"); // Print a message to the LCD.
lcd.setCursor (3,1);
lcd.print("Developpement"); // Print a message to the LCD.
delay(1000); // Time for displays of soft version
lcd.clear();
lcd.setCursor (3,0);
lcd.print("ms"); // Print a message to the LCD.
lcd.setCursor (6,0);
lcd.print("kph:"); // Print a message to the LCD.
lcd.setCursor (6,1);
lcd.print("mph:");
lcd.setCursor(0,1);
lcd.print("L:");
lcd.setCursor(2,1);
lcd.print(LongueurAffi);
lcd.setCursor(4,1);
lcd.print("m");
}
void loop() {
ValeurPD1=analogRead(PD1);
ValeurPD2=analogRead(PD2);
ValeurLED1=map(ValeurPD1,PD1VB,PD1VH,0,255);
ValeurLED2=map(ValeurPD2,PD2VB,PD2VH,0,255);
analogWrite(LED1,ValeurLED1);
analogWrite(LED2, ValeurLED2);
if(ValeurPD1<=100 && ValeurPD2<=100 && chrono==false){ //initialisation pour démarrer le chrono
chrono=true;
}
if (ValeurPD1>=600 && ValeurPD2<=100 && chrono==true){ //départ du chrono
Tps0=(micros());
lcd.setCursor (10,0); //Efface Vitesse kph
lcd.print(" ");
lcd.setCursor (10,1); // Efface Vitesse mph
lcd.print(" ");
lcd.setCursor (0,0); // Efface Temps
lcd.print(" ");
lcd.setCursor (3,0);
lcd.print("ms");
}
if (ValeurPD1<=100 && ValeurPD2>=600 && chrono==true && Tps0>0){ //Arret chrono
TpsEnd=micros()-Tps0;
TpsAffi=TpsEnd/1000;
lcd.setCursor(0,0);
lcd.print(TpsAffi);
Speedkph=3600000*Longueur/TpsEnd;
Speedmph=Speedkph/1.7;
SpeedkphM=Speedkph;
lcd.setCursor(10,0);
lcd.print(SpeedkphM);
lcd.setCursor (10,1);
lcd.print(Speedmph);
Tps0=0;
}
}
Edit de Jean-François : j'ai mis le code entre les balises idoines 