salut as tous , j'ai avancer un peux dans l'acheminement de mon programme , je m'apercois que quand les sondes arrivent as la consigne les relais mitraille , il y aurais pas moyen de mettre un delais de lecture des sondes pour eviter la mitraillette ?
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS_1 2
#define ONE_WIRE_BUS_2 3
OneWire oneWire_1(ONE_WIRE_BUS_1);
OneWire oneWire_2(ONE_WIRE_BUS_2);
DallasTemperature sensors_1(&oneWire_1);
DallasTemperature sensors_2(&oneWire_2);
//sonde1 = {0x28, 0xAA, 0x69, 0x58, 0x3C, 0x14, 0x01, 0x47};
//sonde2 = {0x28, 0xEF, 0xCF, 0xE0, 0x2E, 0x19, 0x01, 0x77};
LiquidCrystal_I2C lcd(0x27,16,2);
const int relais_Vent_Ext = 8;
const int relais_Comp = 9;
const int relais_Vent_Int = 10;
const int relais_V4V = 11;
const int therm_S = 51;
const int therm_Ch1 = 50;
const int led_S = 33;
const int led_Ch1 = 31;
const int led_FR = 45;
const int led_CH = 30;
float hysteresis = 2.00;
float consigne = 23.00;
unsigned long chrono_demar_Comp = 0;
void setup()
{
Serial.begin(115200);
lcd.init();
lcd.backlight();
sensors_1.begin();
sensors_2.begin();
pinMode(relais_Vent_Ext,OUTPUT); // Relais Ventilateur Exterieur
pinMode(relais_Comp,OUTPUT); // Relais Compresseur
pinMode(relais_Vent_Int,OUTPUT); // Relais Ventilateur Interieur
pinMode(relais_V4V,OUTPUT); // Relais Vanne 4 Voies
pinMode(therm_S,INPUT); // Thermostat Radio Salon
pinMode(therm_Ch1,INPUT); // Thermostat Radio Chambre1
pinMode(led_S,OUTPUT); // LED Thermostat Salon en demande (froid ou chauffage)
pinMode(led_Ch1,OUTPUT); // LED Thermostat Chambre en demande (froid ou chauffage)
pinMode(led_FR,OUTPUT); // LED Mode Froid
pinMode(led_CH,OUTPUT); // LED Mode Chauffage
}
void loop()
{
Serial.print("Temp Démarage Arduino : ");
Serial.println(millis());
sensors_1.requestTemperatures();
sensors_2.requestTemperatures();
float temp_Ext = sensors_1.getTempCByIndex(0);
float temp_Unit_Ext = sensors_2.getTempCByIndex(0);
float grand_V_Ext = temp_Unit_Ext >= 20;
Serial.print("Temperature EXT °C ");
Serial.println(temp_Ext);
Serial.print("Temperature Unite EXT °C ");
Serial.println(temp_Unit_Ext);
byte etattherm_S = digitalRead(therm_S);
byte etattherm_Ch1 = digitalRead(therm_Ch1);
Serial.print("ETAT thermosat Salon = ");
Serial.println(etattherm_S);
Serial.print("ETAT thermostat Chambre 1 = ");
Serial.println(etattherm_Ch1);
lcd.setCursor(0, 0 );
lcd.print("Temperature:");
lcd.setCursor(1,1);
lcd.print(temp_Ext);
lcd.setCursor(6,1);
lcd.print((char)223);
delay(1000);
digitalWrite(led_S, etattherm_S);
digitalWrite(led_Ch1, etattherm_Ch1);
if(((temp_Ext >= consigne) && (etattherm_S == 1))
|| ((temp_Ext >= consigne) && (etattherm_Ch1 == 1))){
digitalWrite(relais_Vent_Ext, LOW);// petite vitesse
digitalWrite(relais_Vent_Int, HIGH);
digitalWrite(relais_V4V, HIGH);
digitalWrite(relais_Comp, LOW);
digitalWrite(led_FR, HIGH);
digitalWrite(led_CH, LOW);
if(grand_V_Ext){
digitalWrite(relais_Vent_Ext, HIGH);// grande viesse
digitalWrite(relais_Vent_Int, HIGH);
digitalWrite(relais_V4V, HIGH);
digitalWrite(relais_Comp, LOW);
digitalWrite(led_FR, HIGH);
digitalWrite(led_CH, LOW);
}
}else{
digitalWrite(relais_Vent_Ext, LOW);
digitalWrite(relais_Vent_Int, LOW);
digitalWrite(relais_V4V, LOW);
digitalWrite(led_FR, LOW);
digitalWrite(led_CH, HIGH);
}
if(!digitalRead(led_FR)){
chrono_demar_Comp = millis() + 180000;
}
if(millis() > chrono_demar_Comp){
digitalWrite(relais_Comp, HIGH);
Serial.print("Compresseur ON ");
}else{
digitalWrite(relais_Comp, LOW);
Serial.print("Démarage Compresseur dans : ");
Serial.println(chrono_demar_Comp - millis());
}
}