Bonjour,
Apres quelque heures d'essais et de recherche, je n'arrive pas a faire marcher votre formule.
SVP aider moi.
je vous colle se que j'ai modifier dans mon code :
#include <Time.h>
#include "LiquidCrystal.h"
#include "WProgram.h"
#include "Wire.h"
#include "DS1307.h"
/*
sorti /entre Arduino
Analog Pin 0 = Température Sensor
Analog Pin 4 = SDA pour ds1307
Analog Pin 5 = SCL pour ds1307
Digital Pin 2 = LCD
Digital Pin 3 = LCD
Digital Pin 4 = LCD
Digital Pin 5 = LCD
Digital Pin 6 = power led
Digital Pin 7 = ventilateur
Digital pin 9 = rouge
Digital pin 10 = blanc
Digital Pin 11 = LCD
Digital Pin 12 = LCD
Digital Pin 8 = bleu uv
*/
//Configuration des Pin de cablage**********************
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sensorPin = 0;
int power_led = 6;
int bleu_uv = 8;
int rouge = 10;
int blanc = 9;
int ventilateur = 7;
int time;
float temp;
int val1=0;
int val2=0;
int valeurPWM=0;
float GAMMA_CORRECTION = 2.2;
int result = floor( pow( valeurPWM / 255 , GAMMA_CORRECTION ) * 255 );
//Configuration des heures allumage/extinction ( format HHMM )**********************
int bleu_uv_on_time = 1930; //allume la pompe à cette heure
int bleu_uv_off_time = 2359; //éteint la pompe à cette heure
int ventilateur_on_temp = 27; //allume chauffage à cette température
int ventilateur_off_temp = 26.3; //éteint le chauffage à cette température
int minut;
int heure;
int seconde;
int date;
int mois;
int annee;
int temps_perso;
//Configuration de l'heure ( pour modifier l'heure de votre Arduino, enlevez les /* et */ puis une foi le programe envoyé, remettez les )**********************
void setup() {
RTC.stop();
RTC.set(DS1307_SEC,45); //réglage secondes
RTC.set(DS1307_MIN,30); //réglage minutes
RTC.set(DS1307_HR,8); //réglage heures
RTC.set(DS1307_DOW,1); //réglage jour de la semaine
RTC.set(DS1307_DATE,10); //réglage date
RTC.set(DS1307_MTH,9); //réglage mois
RTC.set(DS1307_YR,12); //réglage année
RTC.start();
//Configuration des entrées/sorties**********************
pinMode(ventilateur, OUTPUT); // digital pin ventilateur 1
pinMode(bleu_uv, OUTPUT); // digital pin pour bleu uv
pinMode(blanc, OUTPUT); // digital pin pour blanc
pinMode(rouge, OUTPUT); // digital pin pour rouge
pinMode(power_led, OUTPUT); // digital pin pour power led
lcd.begin(16, 2);
}
void loop(){
// map(value, fromLow, fromHigh, toLow, toHigh)
val1 = (map ((minut * 30), 0, 7650, 0, 255));
val2 = (map ((minut * 30), 0, 7650, 255, 0));
valeurPWM = 8.5;
//Récupération de l'heure du DS1307**********************************************************************************************
heure = RTC.get(DS1307_HR,true);
minut = RTC.get(DS1307_MIN,false);
seconde = RTC.get(DS1307_SEC,false);
date = RTC.get(DS1307_DATE,false);
mois = RTC.get(DS1307_MTH,false);
annee = RTC.get(DS1307_YR,false);
temps_perso = (heure * 100) + minut;
//Récupération de la température du LM35 ***************************************************************************************
temp = analogRead(sensorPin);
temp = temp * 0.48828125;
//****************ventilateur
if(temp > ventilateur_on_temp){
digitalWrite(ventilateur, HIGH);
}
if(temp < ventilateur_off_temp){
digitalWrite(ventilateur, LOW);
}
//*****Controle des sorties eclairage *********
//**on-off******* bleu uv *************
if(bleu_uv_on_time > temps_perso || bleu_uv_off_time <= temps_perso){
digitalWrite(bleu_uv, LOW);
}
else{
digitalWrite(bleu_uv, HIGH);
}
//***on-off***** blanc ***
if ((heure ==

&& (minut >=30)) { // entre 8:30 et 8:59:59
analogWrite (blanc, result); // allumage progressif
}
else if ((heure == 20) && (minut >=1)) { // entre 20:00 et 20:59:59
analogWrite (blanc, result); // extinction progressive
}
else if ((heure > 8 ) && (heure < 21)) {
analogWrite(blanc, 255);
}
//***on-off***** power led ***
if ((heure == 9) && (minut >=1)) { // entre 9:00 et 9:59:59
analogWrite (power_led, val1); // allumage progressif
}
else if ((heure == 20) && (minut >=1)) { // entre 20:00 et 20:59:59
analogWrite (power_led, val2); // extinction progressive
}
else if ((heure > 9 ) && (heure < 20)) {
analogWrite(power_led, 255);
}
//***on-off***** rouge ***
if ((heure ==

&& (minut >=1)) { // entre 8:00 et 8:29:59
analogWrite (rouge, result); // allumage progressif
}
else if ((heure == 21) && (minut >=30)) { // entre 20:30 et 20:59:59
analogWrite (rouge, result); // extinction progressive
}
else if ((heure > 8 ) && (heure < 21)) {
analogWrite(rouge, 255);
}
//****Gestion de l'Affichage Sur l'écran ********
//Affichage température*****************************************************************************
lcd.setCursor(10,0);
delay(100);
lcd.print(temp);
lcd.print((char)223);
//Affichage heure******************************************************************************************
lcd.setCursor(0,0);
if (heure < 10)
{
lcd.print("0");
}
lcd.print(RTC.get(DS1307_HR,true));
lcd.print("H");
if (minut < 10)
{
lcd.print("0");
}
lcd.print(RTC.get(DS1307_MIN,false));
lcd.print(" ");
delay(200);
//****Affichage ventilateur ********
lcd.setCursor(0,1);
if(digitalRead(ventilateur) == HIGH)
{
lcd.println("ventilateur ON ");
}
else
{
lcd.println("ventilateur OFF ");
}
}