Aide sur un programme

Bonjour, je suis à la recherche des lignes de code qui corresponde à la récupération de la vitesse du vent et à la mettre en km/h.Sachant que mon camarade de classe est pas là je viens vers vous car je comprend rien à son programme !

const float pi = 3.14159265;  // Nombre Pi
int period = 1000;           // Période de mesure (miliseconde)
int delaytime = 1000;        // Temps entre les mesures (miliseconde)
int radio = 70 ;             // Distance du centre au capteur (mm)
unsigned int Sample = 0;       // Mesure a 0
unsigned int counter = 0;      // compteur
unsigned int RPM = 0;          // Tours par minute
float speedwind = 0;           // Vitesse du vent (km/h)  
// include the library code:
#include <LiquidCrystal.h>

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 6, d5 = 5, d6 = 4, d7 = 3;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup()
{
  pinMode(2, INPUT); // sur le port 2
  digitalWrite(2, HIGH); // impulssion haute
  Serial.begin(115200); // Port série a 115200 baud
   
  Serial.println("Anemometre"); // affichage sur moniteur serie
  Serial.println("**********"); // idem
  Serial.print(" Mesure toutes les secondes : "); //idem
  Serial.println();
  lcd.begin(16,2);
}
 
void loop()
{
  Sample++;
  windvelocity();
  RPMcalc();
  WindSpeed();
  Serial.print(speedwind); // afficher le vent sur moniteur serie
  Serial.print(" [km/h] "); // afficher sur miniteur serie
  Serial.println();
delay(1000); // affichage toutes les  vsecondes
  Serial.print(" Mesure suivante... "); // afficher sur moniteur serie
  Serial.println();
   lcd.setCursor(0,0); // affiche sur le première ligne
  lcd.print(speedwind); // afficher le vent sur le lcd
  lcd.print(" [km/h] "); // afficher sur le lcd
  if (speedwind > 50)
  {
    lcd.setCursor(0,9);
    lcd.print("Securite");
  }
  if (speedwind < 50)
  {
    lcd.setCursor(0,9);
    lcd.print("                 ");
  
  }
  
}
 
// Mesurer la vitesse du vent
void windvelocity()
{
  speedwind = 0;
  counter = 0; 
  attachInterrupt(0, addcount, CHANGE);
  unsigned long millis();                    
  long startTime = millis();
  while(millis() < startTime + period) {
  }
  detachInterrupt(1);
}
 
void RPMcalc(){
  RPM=((counter/2)*60)/(period/1000);  // Calculer tours par minute (RPM)
}
 
void WindSpeed(){
  speedwind = ((((2 * pi * radio * RPM)/60) / 1000) / 1000) * 3600;  // Calculer la vitesse du vent en km/h
}
//declaration de addcount 
void addcount()
{
  counter++;
}

au hasard, est-ce que ça ne serait pas la ligne dont le commentaire dit : // Calculer la vitesse du vent en km/h ?

Surement mais j’arrive pas à comprendre son programme cette partie la quand elle est mise

void windvelocity()
{
  speedwind = 0;
  counter = 0; 
  attachInterrupt(0, addcount, CHANGE);
  unsigned long millis();                    
  long startTime = millis();
  while(millis() < startTime + period) {
  }
  detachInterrupt(1);
}
 
void RPMcalc(){
  RPM=((counter/2)*60)/(period/1000);  // Calculer tours par minute (RPM)
}
 
void WindSpeed(){
  speedwind = ((((2 * pi * radio * RPM)/60) / 1000) / 1000) * 3600;  // Calculer la vitesse du vent en km/h
}
//declaration de addcount 
void addcount()
{
  counter++;
}

Il me trouve des erreurs ici quand je l’ajoute dans mon programme

 Sample++;
  windvelocity();
  RPMcalc();
  WindSpeed();

Donc petite question ou je dois mettre tout les voids comme Windvelocity,Windspeed,RPMcalc et account ?^^’

quelles erreurs ?

Des erreurs comme celle-ci:
exit status 1
'Sample' was not declared in this scope

Dans windVelocity, la ligne

  unsigned long millis();

est nuisible (je ne suis pas allé plus loin (ça doit empêcher windVelocity d'exister, et déclencher pas mal d'autres horreurs)

Avec ça c'est mieux ?

 unsigned long startTime = millis();

Bon c’est bon j’avais pour but d’afficher la vitesse du vent sur mon Serveur WEB je vous partage mon programme si vous voyez des anomalies pouvez vous me les données?

#include <SPI.h> //bibliothèqe pour SPI
#include <Ethernet.h> //bibliothèque pour Ethernet
byte mac[] = {0x90, 0xA2, 0xDA, 0x0F, 0x2B, 0xB7}; //adresse mac de votre carte
byte ip[] = {172, 19, 67, 14}; //adresse IP
EthernetServer serveur(80); // déclare l'objet serveur au port d'écoute 80
int sensorValue = 0;
const int sensorPin = 0;
int val=0;
int ane= 0;
unsigned int Sample = 0;
float speedwind = 0;
unsigned int counter = 0;
int period = 1000;
unsigned int RPM = 0;
const float pi = 3.14159265;
int radio = 70 ;
void setup() { 
  pinMode(2, INPUT); // sur le port 2
  digitalWrite(2, HIGH); // impulssion haute
  Serial.begin (9600); //initialisation de communication série
  Ethernet.begin (mac, ip); //initialisation de la communication Ethernet
  Serial.print("\nLe serveur est sur l'adresse : ");
  Serial.println(Ethernet.localIP()); //on affiche l'adresse IP de la connexion
  serveur.begin(); // démarre l'écoute
}
void loop()
{ 
  Sample++;
  windvelocity();
  RPMcalc();
  WindSpeed();
    Serial.print(speedwind); // afficher le vent sur moniteur serie
    Serial.print(" [km/h] "); // afficher sur miniteur serie
    Serial.println();
    delay(1000); // affichage toutes les  vsecondes
    Serial.print(" Mesure suivante... "); // afficher sur moniteur serie
    Serial.println(); 
{
  EthernetClient client = serveur.available(); //on écoute le port
  if (client) { //si client connecté
    Serial.println("Client en ligne\n"); //on le dit...
    if (client.connected()) { // si le client est en connecté
      while (client.available()) { // tant qu'il a des infos à transmettre
        char c=client.read(); // on lit le caractère  
        Serial.write(c);// on l'écrit sur le moniteur série
        delay(1); //delai de lecture
      }
     client.println ("HTTP/1.1 200 OK");
      client.println ("Content-Type: text/html; charset=ascii");
      client.println ("Connection: close");
      client.println ( ); 
      client.println("<meta charset='utf-8'>");
      client.println("<html>"); //début du code html
      client.println("<head>"); //entête
      client.println("<style> body { background-color:skyblue;}</style>");
      client.println ("<META HTTP-EQUIV=\"Refresh\" CONTENT=\"1\">");
      client.println("<header>");
      client.println("<title>Suiveur Solaire</title>"); //titre de la fenêtre
      client.println("</h1>");
      client.println("</head>");//fin d'entête
      client.println("<body>"); //corps
      client.println("<h1><u><p align=center>Suiveur Solaire</p></u></h1>"); //titre en grosse lettres
      client.println("<hr>"); //ligne horizontale
     { // boucle pour parcourir les pins
        client.print("<h1>Luminosite en %"); // affichage
        client.print(" : "); // affichage
        sensorValue= analogRead(0);
        sensorValue = map(sensorValue,0,1023,0,100);
        client.print(sensorValue);
        client.println("%</h1>");
        client.print("
"); //saut de ligne
      }
      for (int p=1;p<2;p++){ // boucle pour parcourir les pins
        client.print("<h1>Valeur potentiometre V"); // affichage
        client.print(" : "); // affichage
        val = analogRead(p);
        val = map(val,0,1023,0,5);
        client.print(val);
        client.print("
"); //saut de ligne
      }
      {
        client.print("<h1>Anemometre"); // affichage
        client.print(":");
        ane = digitalRead(2);
        client.print(speedwind);
        client.println("Km/h</h1>");
        client.print("
");
      }
      client.println("<hr>"); //ligne horizontale
      client.println("</body>"); //fin du corps
      client.println("</html>"); //fin du code html
      client.stop(); //on déconnecte le client
      Serial.println("Fin de communication avec le client");
      }
    }
  }
}
void windvelocity()
{
  speedwind = 0;
  counter = 0; 
  attachInterrupt(0, addcount, CHANGE);
  unsigned long startTime = millis();
  while(millis() < startTime + period) {
  }
  detachInterrupt(1);
}
 
void RPMcalc(){
  RPM=((counter/2)*60)/(period/1000);  // Calculer tours par minute (RPM)
}
 
void WindSpeed(){
  speedwind = ((((2 * pi * radio * RPM)/60) / 1000) / 1000) * 3600;  // Calculer la vitesse du vent en km/h
}
//declaration de addcount 
void addcount()
{
  counter++;
}

"vous me les données"
s:données:donnez:

// sur le port 2
-> sur la patte 2 : un port, sur un microcontrôleur type avr, est un ensemble de 8 pattes vues souvent comme un uint8_t

Est ce que le LCD accepte des caractères non ASCII?

PS (post scriptum; sans contre façon) : que dit votre compilateur (compiler est un travail fastidieux qu'on n'inflige pas aux hêtres humains)? Au cas où ça compilerait, est ce que ça marche comme prévu....

On se demande à quoi Sample peut bien servir.

Normalement, g++, si l'option -Wunused-variables est activée -j'espère que les fabticants d'ArduinoIDE y ont pensé- , doit grogner (et l'auteur du "programme" devrait lire les avertissements et messages d'horreurs de son compilateur)