non je l'ai fais cette partie et si le programme fonctionnais mais depuis que j'ai rajouter le volet et la pompe il ne marche plus
voici le code juste en mode automatique :
#include <OneWire.h>
#define monte 9
#define descente 8
#define vanne 7
#define LEDVvolet 28
#define LEDRvolet 29
#define LEDVvanne 30
#define LEDVauto 31
#define LEDRauto 32
#define LEDV???
#define LEDR???
#define LEDR???
#define selecmod 12
#define bpvanne 9
#define bpfermevolet 11
#define bpouvertvolet 10
#define ET 0
#define al 1
boolean etatvanne=ET ;
OneWire bus_sonde1(4);
OneWire bus_sonde2(5);
int seuilpiscine = 26;
int seuilext = 27;
int seuilldr = 450;
uint8_t adresse_sonde1[8];
uint8_t adresse_sonde2[8];
void initialiserSonde1()
{
if (!bus_sonde1.search(adresse_sonde1))
{
Serial.println("Sonde 1 absente");
bus_sonde1.reset_search();
return;
}
bus_sonde1.reset_search();
if (OneWire::crc8(adresse_sonde1, 7) != adresse_sonde1[7])
{
Serial.println("Identifiant sonde 1 invalide");
return;
}
if (adresse_sonde1[0] != 0x28)
{
Serial.println("Le composant sonde 1 n'est pas un DS18B20");
return;
}
Serial.println("Sonde 1 trouvee");
}
void initialiserSonde2()
{
if (!bus_sonde2.search(adresse_sonde2))
{
Serial.println("Sonde 2 absente");
bus_sonde2.reset_search();
return;
}
bus_sonde2.reset_search();
if (OneWire::crc8(adresse_sonde2, 7) != adresse_sonde2[7])
{
Serial.println("Identifiant sonde 2 invalide");
return;
}
if (adresse_sonde2[0] != 0x28)
{
Serial.println("Le composant sonde 2 n'est pas un DS18B20");
return;
}
Serial.println("Sonde 2 trouvee");
}
uint16_t lectureSonde1()
{//retourne la température relevée en seizièmes de degrés
uint8_t data[9];
uint8_t i;
bus_sonde1.reset();
bus_sonde1.select(adresse_sonde1);
bus_sonde1.write(0x44,1);
delay(750);
bus_sonde1.reset();
bus_sonde1.select(adresse_sonde1);
bus_sonde1.write(0xBE);
for (i=0; i<9; i++) data[i] = bus_sonde1.read();
if (OneWire::crc8(data, 8) != data[8])
{
return 0;
}
else
{
return ((uint16_t) data[1] << 8) | data[0];
}
}
uint16_t lectureSonde2()
{//retourne la température relevée en seizièmes de degrés
uint8_t data[9];
uint8_t i;
bus_sonde2.reset();
bus_sonde2.select(adresse_sonde2);
bus_sonde2.write(0x44,1);
delay(750);
bus_sonde2.reset();
bus_sonde2.select(adresse_sonde2);
bus_sonde2.write(0xBE);
for (i=0; i<9; i++) data[i] = bus_sonde2.read();
if (OneWire::crc8(data, 8) != data[8])
{
return 0;
}
else
{
return ((uint16_t) data[1] << 8) | data[0];
}
}
void setup()
{
Serial.begin(9600);
initialiserSonde1();
initialiserSonde2();
pinMode(LEDVvanne, OUTPUT);
pinMode(LEDVvolet, OUTPUT);
pinMode(LEDRvolet, OUTPUT);
pinMode(LEDVauto, OUTPUT);
pinMode(LEDRauto, OUTPUT);
pinMode(vanne,OUTPUT);
pinMode(monte, OUTPUT);
pinMode(descente, OUTPUT);
pinMode(selecmod, INPUT);
pinMode(bpvanne,INPUT);
pinMode(bpfermevolet,INPUT);
pinMode(bpouvertvolet,INPUT);
digitalWrite(bpfermevolet, HIGH);
digitalWrite(bpouvertvolet, HIGH);
}
void loop()
{
if(digitalRead(selecmod)==1)
{
Serial.print("temp piscine: ");
Serial.print((float) 0.0625 * lectureSonde1());
Serial.write('C');
Serial.write(0x03);
Serial.print("temp ext : ");
Serial.print((float) 0.0625 * lectureSonde2());
Serial.write('C');
delay(5000);
Serial.write (0x1B);
Serial.write (0x43);
Serial.write(0x01);
{
if (0.0625 * lectureSonde1()> seuilpiscine)
{
digitalWrite(LEDVvanne, HIGH);
digitalWrite(vanne,HIGH);
}
else
{
digitalWrite(LEDVvanne, LOW);
digitalWrite(vanne,LOW);
}
if (0.0625 * lectureSonde2()< seuilext)
{
if (analogRead(A0)>seuilldr)
{
digitalWrite(LEDRvolet, HIGH);
digitalWrite(LEDVvolet, LOW);
digitalWrite(descente,HIGH);
delay(500); // temps de descente ou d'ouverture du volet
digitalWrite(descente,LOW);
}
}
else
{
if (analogRead(A0)<seuilldr)
{
digitalWrite(LEDVvolet, HIGH);
digitalWrite(LEDRvolet, LOW);
digitalWrite(monte,HIGH);
delay(500);// temps de descente ou d'ouverture du volet
digitalWrite(monte,LOW);
}
else
{
digitalWrite(LEDVvolet, LOW);
digitalWrite(LEDRvolet, HIGH);
digitalWrite(descente,HIGH);
delay(500);// temps de descente ou d'ouverture du volet
digitalWrite(descente,LOW);
}
}
}}
else
{
Serial.print("temp piscine: ");
Serial.print((float) 0.0625 * lectureSonde1());
Serial.write('C');
Serial.write(0x03);
Serial.print("temp ext : ");
Serial.print((float) 0.0625 * lectureSonde2());
Serial.write('C');
delay(5000);
Serial.write (0x1B);
Serial.write (0x43);
Serial.write(0x01);
if(digitalRead(bpvanne)==LOW)
{
if(etatvanne==ET)
{
digitalWrite(vanne,al);
etatvanne=al;
}
else
{
digitalWrite(vanne,ET);
etatvanne=ET;
}
do{} while (digitalRead(bpvanne)==LOW);
delay(1000);
}
if(!digitalRead(bpouvertvolet))
{
digitalWrite(monte,HIGH);
delay(13000);
digitalWrite(monte,LOW);
}
if(!digitalRead(bpfermevolet))
{
digitalWrite(descente,HIGH);
delay(13000);
digitalWrite(descente,LOW);
}
}
}