gestion aquarium recifal allumage progressif

bonjour,

le dernier code que j'utilisait etait :

#include "LiquidCrystal.h"
#include "Arduino.h"
#include "Wire.h"
#include "DS1307.h"

LiquidCrystal lcd(7, 2, 3, 4, 5, 6);
int pompe = 8;
int soleil = 9;
int ventilateur = 10;
int rampeled = 11;
int led = 12;
int niveau = 13;

int valeurPWM=0;

int minut;
int heure;
int seconde;
int time;

float sensorPin;
float temp;
float temp1;
float Vact = 0;  // variable valeur instantanée
int Fd=20; // facteur de division de la moyenne = moyenne toutes les FD boucles ici 20
long Accm=0; // accumulateur pour moyenne
int Nbcl=0; // compteur de boucles
float vitventilo;
int off;
int printvitvent;

void setup() {
  
  lcd.begin(16,2);
Serial.begin(9600);

  pinMode(pompe, OUTPUT);  
  pinMode(ventilateur, OUTPUT);  
  pinMode(soleil, OUTPUT);  
  pinMode(led, OUTPUT);  
  pinMode(rampeled, OUTPUT); 
  pinMode(niveau, INPUT);
} 
  
  
  void loop(){
  
sensorPin = analogRead(0);
Vact = ((sensorPin*0.5)+1.5)*100 ;
Accm=Accm+Vact;
Nbcl ++;

if (Nbcl == Fd) { 
  temp1 = (Accm / Fd) ;
  temp = temp1/100;
  Accm= Accm-(Accm/20) ;
  Nbcl= 19;
  }   
else{
   temp = (Accm / Nbcl) ;
   temp = temp/100;   
   }

//Récupération de l'heure du DS1307**********************************************************************************************
  heure = RTC.get(DS1307_HR,true);  
  minut = RTC.get(DS1307_MIN,true);
  seconde = RTC.get(DS1307_SEC,true);
  time = (heure * 100) + minut;
  
//Affichage ******************************************************************************************
 lcd.clear();
 lcd.setCursor(0,0);
   lcd.print ("  AQUA GESTION  ");
   lcd.setCursor(0,1);
   lcd.print("     ");
  if (heure < 10)
  {
    lcd.print("0");
  }
  lcd.print(heure);
  lcd.print("H");
  if (minut < 10)
  {
    lcd.print("0");
  }
  lcd.print(minut);
lcd.print("      ");
  delay (5000);
lcd.setCursor(0,1);
lcd.print("     ");
  lcd.print(temp);
  lcd.print((char)223);
  lcd.print("     ");
  delay (5000);


 //*****Controle des sorties eclairage *********
 //***on-off***** soleil ***
  
 if ((time >= 930) && (time < 1020)){ 
    valeurPWM = map(time, 930, 1019, 0, 255);
    analogWrite (soleil, valeurPWM);
lcd.setCursor(0,1);
    lcd.print(" + + soleil + + ");
    delay(5000);
  }
 else if ((time >= 2230) && (time < 2300)){  
   valeurPWM = map(time, 2230, 2259, 255, 0);
    analogWrite (soleil, valeurPWM); 
lcd.setCursor(0,1);
    lcd.print(" - - soleil - - ");
    delay(5000);
  }   
  else if ((time >= 1020 ) && (time < 2230)) {
    analogWrite(soleil, 255);
  }
else {
    analogWrite(soleil, 0);
      lcd.setCursor(0,1);
    lcd.print("   BONNE NUIT   ");
    delay(5000);
}


//***on-off*****led 1w***
     if((time >= 1030) && (time < 2225)){
    digitalWrite(led, HIGH);
   }
  else{
    digitalWrite(led, LOW);
   }
    

//***on-off***** ventilateur  ***

lcd.setCursor(0,0);
lcd.print("     ");
  lcd.print(temp);
  lcd.print((char)223);
  lcd.print("     ");

if (temp1 > 2725){
  temp1 = 2725;
}
 
 if (temp1 < 2676){
  temp1 = 2625;
}

 vitventilo = map(temp1,2625,2725, 0, 255);
 analogWrite (ventilateur, vitventilo);
  lcd.setCursor(0,1);
    lcd.print("ventilateur ");
        off = ((vitventilo*100)/255);
    if (off == 0){
    lcd.print(" OFF");
    delay(5000);
    }
    
    else {
    printvitvent = ((vitventilo*100)/255);
    lcd.print(printvitvent);
    lcd.print("% ");
    delay(5000);
    }

//***on-off***** pompe ***
if (digitalRead (niveau) == HIGH)
{
   lcd.setCursor(0,1);
    lcd.print("niveau d'eau BAS");
    delay(5000);
 if ((time >= 800) && (time <= 2359)){
 if ((minut % 10)== 0) {
   delay (35000);
     lcd.setCursor(0,1);
    lcd.print("  ajout  d'eau  ");
    digitalWrite(pompe, HIGH);
    delay (4500);
    digitalWrite(pompe, LOW);
    
}
}
}
 else if (digitalRead (niveau) == LOW){
      lcd.setCursor(0,1);
    lcd.print("niveau d'eau  OK");
    delay(5000);
} 

 }