Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //**************************************************************************************************************************************************************************
- //*********************************************** Programmateur Horaire - Ecran TFT Tactile v1.0 - Carte Mega (com52) ******************************************************
- //**************************************************************************************************************************************************************************
- #include <SPI.h> // Librairie pour la gestion de la communication SPI avec le Module Horloge DS3234
- #include <SparkFunDS3234RTC.h> // Librairie pour la gestion du Module Horloge DS3234
- #include "DHT.h" // Librairie pour la gestion du Capteur DHT22 (Température et Taux Humidité)
- #include <Adafruit_GFX.h> // Librairie pour la Gestion Graphique
- #include <Adafruit_TFTLCD.h> // Librairie pour la Gestion Graphique Spécifique à l'écran TFT
- #include <MCUFRIEND_kbv.h> // Librairie pour la Gestion Spécifique Spécifique à l'écran TFT
- #include <TouchScreen.h> // Librairie pour la Gestion de la Fonction Tactile de l'écran TFT
- #include "EEPROM.h" // Librairie pour la gestion de l'EEPROM interne
- #include <avr/pgmspace.h> // Librairie pour la Gestion de la Mémoire
- #define DHTTYPE DHT22 // Définit le type de capteur DHT22 (Température et Taux Humidité)
- MCUFRIEND_kbv tft; // Crée l'objet tft
- #define BrocheDS3234 53 // Broche SS du Module Horloge DS3234
- #define BrocheCapteurDHT22 41 // Broche du Capteur DHT22
- #define BrocheBuzzer 23 // Broche du Buzzer 5v
- #define BrocheProg1LedVerte 24 // Broche sortie programmateur 1 Led Verte
- #define BrocheProg2LedVerte 25 // Broche sortie programmateur 2 Led Verte
- #define BrocheBPONOFFProg1 30 // Broche du bouton poussoir "BPONOFFProg1"
- #define BrocheBPONOFFProg2 31 // Broche du bouton poussoir "BPONOFFProg2"
- uint8_t YP = A1; // Broche pour la fonction tactile de l'écran TFT
- uint8_t XM = A2; // Broche pour la fonction tactile de l'écran TFT
- uint8_t YM = 7; // Broche pour la fonction tactile de l'écran TFT
- uint8_t XP = 6; // Broche pour la fonction tactile de l'écran TFT
- uint16_t TS_LEFT = 880; // Calibrage de l'écran pour la fonction tactile
- uint16_t TS_RT = 180;
- uint16_t TS_TOP = 170;
- uint16_t TS_BOT = 950;
- TouchScreen ts = TouchScreen(XP, YP, XM, YM, 260); // Crée l'objet ts
- TSPoint tp; // Crée l'objet tp
- #define PressionMin 5 // Pression Min et Max acceptées
- #define PressionMax 1000
- int PageCourante = 0; // Page courante
- int LastPageCourante = -1; // Dernière Page courante
- int Hrs = 0; // Heure Courante
- int Mins = 0; // Minutes courantes
- int Secs = 0; // Seconde Courantes
- int LastMins = -1; // Dernière minutes courantes
- int HrsReglages = 0; // Heure Courante de réglages
- int MinsReglages = 0; // Minutes courantes de réglages
- int LastHrsReglages = -1; // Dernières heures courantes de réglages
- int LastMinsReglages = -1; // Dernières minutes courantes de réglages
- int LastJourSemaine = -1; // Dernière valeur du jour de la semaine pour la réinitialisation des températures Min et Max tous les jours à minuit
- int Jour = 0; // Jour du mois de la date courante (1 à 31)
- int Mois = 0; // Mois de la date courante (1 à 12)
- int Annee = 0; // Année de la date courante (0 à 99)
- int JourSemaine = 0; // Jour de la semaine (1 à 7)
- String JDLS = ""; // Variable contenant le jour de la semaine
- String MDLA = ""; // Variable contenant le mois de l'année
- int LastJour = -1; // Dernier jour du mois courant
- int LastAffichageJourSemaine = -1; // Dernier indicateur courant du changement du jour de la semaine
- int AffichageJourSemaine = 0; // Indicateur courant du changement du jour de la semaine
- int JourSemaineReglages = 0; // Jours de la semaine de réglages
- int LastJourReglages = -1; // Dernier jour courant de réglages
- int JourReglages = 0; // Jours de réglages
- int LastMoisReglages = -1; // Dernier mois courant de réglages
- int MoisReglages = 0; // Mois de réglages
- int LastAnneeReglages = -1; // Dernière année courante de réglages indicateur courant du changement de l'année
- int AnneeReglages = 0; // Année de réglages
- float temperatureCourante = 0; // Température courante relevée par le capteur DHT22
- float LasttemperatureCourante = -1; // Dernière température courante relevée par le capteur DHT22
- float MaxTemp = -1; // Température Max courante
- float MinTemp = -1; // Température Min courante
- float LastMaxTemp = -1; // Dernière température Max courante
- float LastMinTemp = -1; // Dernière température Min courante
- float temperatureThermostat1 = 20.0; // Température du thermostat 1
- float LasttemperatureThermostat1 = -1; // Dernière température du thermostat 1
- float temperatureThermostat2 = 20.0; // Température du thermostat 2
- float LasttemperatureThermostat2 = 20.0; // Dernière température du thermostat 2
- int ModeThermostat1 = 0; // Mode de fonctionnement du thermostat 1
- int LastModeThermostat1 = -1; // Dernière valeur du mode de fonctionnement du thermostat 1
- int ModeThermostat2 = 0; // Mode de fonctionnement du thermostat 2
- int LastModeThermostat2 = -1; // Dernière valeur du mode de fonctionnement du thermostat 2
- float LastAffichageTemperatureModeThermostat1 = -1; // Variable pour forcer l'affichage de la température courante sur la page de réglage du thermostat 1
- float LastAffichageTemperatureModeThermostat2 = -1; // Variable pour forcer l'affichage de la température courante sur la page de réglage du thermostat 2
- int LastHrsDepartReglages = -1; // Dernière Heure de départ de réglages
- int LastMinsDepartReglages = -1; // Dernière Minutes de départ de réglages
- int LastHrsArretReglages = -1; // Dernière Heures d'arrêt de réglages
- int LastMinsArretReglages = -1; // Dernière Minutes d'arrêt de réglages
- int HrsDepartReglages = 0; // Heure de départ de réglages
- int MinsDepartReglages = 0; // Minutes de départ de réglages
- int HrsArretReglages = 0; // Heures d'arrêt de réglages
- int MinsArretReglages = 0; // Minutes d'arrêt de réglages
- int HrsDepartProg1a = 0; // Heure de départ du programmateur 1a
- int MinsDepartProg1a = 0; // Minutes de départ du programmateur 1a
- int HrsArretProg1a = 0; // Heures d'arrêt du programmateur 1a
- int MinsArretProg1a = 0; // Minutes d'arrêt du programmateur 1a
- int LastAffichageHeuresProg1a = -1; // Dernier indicateur courant du changement d'heure de départ ou d'arrêt du programmateur 1a
- int AffichageHeuresProg1a = 0; // Indicateur courant du changement d'heure de départ ou d'arrêt du programmateur 1a
- int IterationProg1a [] = {0, 0, 0, 0, 0, 0, 0}; // Itération du programmateur 1a
- int LastAffichageIterationProg1a = -1; // Dernier indicateur courant du changement d'itération du programmateur 1a
- int AffichageIterationProg1a = 0; // Indicateur courant du changement d'itération du programmateur 1a
- int LastModeProg1a = -1; // Dernier mode de fonctionnement courant du programmateur 1a
- int ModeProg1a = 0; // Mode de fonctionnement courant du programmateur 1a
- int HrsDepartProg1b = 0; // Heure de départ du programmateur 1b
- int MinsDepartProg1b = 0; // Minutes de départ du programmateur 1b
- int HrsArretProg1b = 0; // Heures d'arrêt du programmateur 1b
- int MinsArretProg1b = 0; // Minutes d'arrêt du programmateur 1b
- int LastAffichageHeuresProg1b = -1; // Dernier indicateur courant du changement d'heure de départ ou d'arrêt du programmateur 1b
- int AffichageHeuresProg1b = 0; // Indicateur courant du changement d'heure de départ ou d'arrêt du programmateur 1b
- int IterationProg1b [] = {0, 0, 0, 0, 0, 0, 0}; // Itération du programmateur 1b
- int LastAffichageIterationProg1b = -1; // Dernier indicateur courant du changement d'itération du programmateur 1b
- int AffichageIterationProg1b = 0; // Indicateur courant du changement d'itération du programmateur 1b
- int LastModeProg1b = -1; // Dernier mode de fonctionnement courant du programmateur 1b
- int ModeProg1b = 0; // Mode de fonctionnement courant du programmateur 1b
- int HrsDepartProg1c = 0; // Heure de départ du programmateur 1c
- int MinsDepartProg1c = 0; // Minutes de départ du programmateur 1c
- int HrsArretProg1c = 0; // Heures d'arrêt du programmateur 1c
- int MinsArretProg1c = 0; // Minutes d'arrêt du programmateur 1c
- int LastAffichageHeuresProg1c = -1; // Dernier indicateur courant du changement d'heure de départ ou d'arrêt du programmateur 1c
- int AffichageHeuresProg1c = 0; // Indicateur courant du changement d'heure de départ ou d'arrêt du programmateur 1c
- int IterationProg1c [] = {0, 0, 0, 0, 0, 0, 0}; // Itération du programmateur 1c
- int LastAffichageIterationProg1c = -1; // Dernier indicateur courant du changement d'itération du programmateur 1c
- int AffichageIterationProg1c = 0; // Indicateur courant du changement d'itération du programmateur 1c
- int LastModeProg1c = -1; // Dernier mode de fonctionnement courant du programmateur 1c
- int ModeProg1c = 0; // Mode de fonctionnement courant du programmateur 1c
- int HrsDepartProg2a = 0; // Heure de départ du programmateur 2a
- int MinsDepartProg2a = 0; // Minutes de départ du programmateur 2a
- int HrsArretProg2a = 0; // Heures d'arrêt du programmateur 2a
- int MinsArretProg2a = 0; // Minutes d'arrêt du programmateur 2a
- int LastAffichageHeuresProg2a = -1; // Dernier indicateur courant du changement d'heure de départ ou d'arrêt du programmateur 2a
- int AffichageHeuresProg2a = 0; // Indicateur courant du changement d'heure de départ ou d'arrêt du programmateur 2a
- int IterationProg2a [] = {0, 0, 0, 0, 0, 0, 0}; // Itération du programmateur 2a
- int LastAffichageIterationProg2a = -1; // Dernier indicateur courant du changement d'itération du programmateur 2a
- int AffichageIterationProg2a = 0; // Indicateur courant du changement d'itération du programmateur 2a
- int LastModeProg2a = -1; // Dernier mode de fonctionnement courant du programmateur 2a
- int ModeProg2a = 0; // Mode de fonctionnement courant du programmateur 2a
- int HrsDepartProg2b = 0; // Heure de départ du programmateur 2b
- int MinsDepartProg2b = 0; // Minutes de départ du programmateur 2b
- int HrsArretProg2b = 0; // Heures d'arrêt du programmateur 2b
- int MinsArretProg2b = 0; // Minutes d'arrêt du programmateur 2b
- int LastAffichageHeuresProg2b = -1; // Dernier indicateur courant du changement d'heure de départ ou d'arrêt du programmateur 2b
- int AffichageHeuresProg2b = 0; // Indicateur courant du changement d'heure de départ ou d'arrêt du programmateur 2b
- int IterationProg2b [] = {0, 0, 0, 0, 0, 0, 0}; // Itération du programmateur 2b
- int LastAffichageIterationProg2b = -1; // Dernier indicateur courant du changement d'itération du programmateur 2b
- int AffichageIterationProg2b = 0; // Indicateur courant du changement d'itération du programmateur 2b
- int LastModeProg2b = -1; // Dernier mode de fonctionnement courant du programmateur 2b
- int ModeProg2b = 0; // Mode de fonctionnement courant du programmateur 2b
- int HrsDepartProg2c = 0; // Heure de départ du programmateur 2c
- int MinsDepartProg2c = 0; // Minutes de départ du programmateur 2c
- int HrsArretProg2c = 0; // Heures d'arrêt du programmateur 2c
- int MinsArretProg2c = 0; // Minutes d'arrêt du programmateur 2c
- int LastAffichageHeuresProg2c = -1; // Dernier indicateur courant du changement d'heure de départ ou d'arrêt du programmateur 2c
- int AffichageHeuresProg2c = 0; // Indicateur courant du changement d'heure de départ ou d'arrêt du programmateur 2c
- int IterationProg2c [] = {0, 0, 0, 0, 0, 0, 0}; // Itération du programmateur 2c
- int LastAffichageIterationProg2c = -1; // Dernier indicateur courant du changement d'itération du programmateur 2c
- int AffichageIterationProg2c = 0; // Indicateur courant du changement d'itération du programmateur 2c
- int LastModeProg2c = -1; // Dernier mode de fonctionnement courant du programmateur 2c
- int ModeProg2c = 0; // Mode de fonctionnement courant du programmateur 2c
- int ModeMinuterieProg1 = 0; // Mode de fonctionnement de la minuterie du programmateur 1
- int LastModeMinuterieProg1 = -1; // Dernier mode de fonctionnement de la minuterie du programmateur 1
- int HrsMinuterieProg1 = 0; // Heures de la minuterie du programmateur 1
- int MinsMinuterieProg1 = 0; // Minutes de la minuterie du programmateur 1
- int HrsMinuterieReglageProg1 = 0; // Heures de réglages la minuterie du programmateur 1
- int MinsMinuterieReglageProg1 = 0; // Minutes de réglages la minuterie du programmateur 1
- int LastHrsReglagesMinuterie1 = -1; // Dernières heures de la minuterie 1 de réglages
- int LastMinsReglagesMinuterie1 = -1; // Dernières minutes de la miniterie 1 de réglages
- unsigned long DureeMinuterie1_ms = 0; // Durée de la minuterie 1 en ms
- unsigned long t1DebutTempoMinuterie1 = 0; // Début de la temporisation de la minuterie 1 en ms
- int ModeMinuterieProg2 = 0; // Mode de fonctionnement de la minuterie du programmateur 2
- int LastModeMinuterieProg2 = -1; // Dernier mode de fonctionnement de la minuterie du programmateur 2
- int HrsMinuterieProg2 = 0; // Heures de la minuterie du programmateur 2
- int MinsMinuterieProg2 = 0; // Minutes de la minuterie du programmateur 2
- int HrsMinuterieReglageProg2 = 0; // Heures de réglages la minuterie du programmateur 2
- int MinsMinuterieReglageProg2 = 0; // Minutes de réglages la minuterie du programmateur 2
- int LastHrsReglagesMinuterie2 = -1; // Dernières heures de la minuterie 2 de réglages
- int LastMinsReglagesMinuterie2 = -1; // Dernières minutes de la miniterie 2 de réglages
- unsigned long DureeMinuterie2_ms = 0; // Durée de la minuterie 2 en ms
- unsigned long t1DebutTempoMinuterie2 = 0; // Début de la temporisation de la minuterie 1 en ms
- boolean etatSortieProg1 = false; // Etat courant de la sortie du programmateur 1
- boolean etatSortieProg2 = false; // Etat courant de la sortie du programmateur 2
- unsigned tempoPression = 0; // Début de la temporisation entre deux pressions sur l'écran tactile TFT
- boolean etatBPONOFFProg1 = HIGH; // Etat courant du bouton poussoir "BPONOFFProg1"
- boolean LastetatBPONOFFProg1 = HIGH; // Dernier état courant du bouton poussoir "BPONOFFProg1"
- boolean etatBPONOFFProg2 = HIGH; // Etat courant du bouton poussoir "BPONOFFProg2"
- boolean LastetatBPONOFFProg2 = HIGH; // Dernier état courant du bouton poussoir "BPONOFFProg2"
- #define BLACK 0x0000 // Variables contenant la valeur sur 16 bits des couleurs courantes
- #define BLUE 0x001F
- #define RED 0xF800
- #define GREEN 0x07E0
- #define CYAN 0x07FF
- #define MAGENTA 0xF81F
- #define YELLOW 0xFFE0
- #define WHITE 0xFFFF
- #define GRAY 0xA514
- #define DARKRED 0x8800
- uint16_t g_identifier; // Identifiant de l'écran TFT
- uint8_t OrientationTFT = 1; // Variable contenant le sens d'affichage de l'écran TFT
- DHT dht(BrocheCapteurDHT22, DHTTYPE); // Crée l'objet "dht"
- void setup()
- {
- Serial.begin(9600); // Démarre la voie série pour la communication avec la Console
- pinMode(BrocheBuzzer, OUTPUT); // Configure les broches en sorties
- pinMode(BrocheProg1LedVerte, OUTPUT);
- pinMode(BrocheProg2LedVerte, OUTPUT);
- pinMode(BrocheBPONOFFProg1, INPUT_PULLUP); // Configure les broches en entrées
- pinMode(BrocheBPONOFFProg2, INPUT_PULLUP);
- int codeEEPROM1 = 0; // Initialisation de l'EEPROM à la première utilisation
- int codeEEPROM2 = 0;
- EEPROM.get(145, codeEEPROM1); // Lit les codes d'initialisation de l'EEPROM
- EEPROM.get(148, codeEEPROM2);
- if (codeEEPROM1 != 6487 || codeEEPROM2 != 8521) // Si les codes d'initialisation ne sont pas présents
- {
- EEPROM.put(0, HrsDepartProg1a); // Initialise les heures de départ du programmateur 1a si EEPROM non configurée
- EEPROM.put(2, MinsDepartProg1a); // Initialise les minutes de départ du programmateur 1a si EEPROM non configurée
- EEPROM.put(4, HrsArretProg1a); // Initialise les heures d'arrêt du programmateur 1a si EEPROM non configurée
- EEPROM.put(6, MinsArretProg1a); // Initialise les minutes d'arrêt du programmateur 1a si EEPROM non configurée
- EEPROM.put(8, IterationProg1a[0]); // Initialise l'itération du lundi du programmateur 1a si EEPROM non configurée
- EEPROM.put(10, IterationProg1a[1]); // Initialise l'itération du mardi du programmateur 1a si EEPROM non configurée
- EEPROM.put(12, IterationProg1a[2]); // Initialise l'itération du mercredi du programmateur 1a si EEPROM non configurée
- EEPROM.put(14, IterationProg1a[3]); // Initialise l'itération du jeudi du programmateur 1a si EEPROM non configurée
- EEPROM.put(16, IterationProg1a[4]); // Initialise l'itération du vendredi du programmateur 1a si EEPROM non configurée
- EEPROM.put(18, IterationProg1a[5]); // Initialise l'itération du samedi du programmateur 1a si EEPROM non configurée
- EEPROM.put(20, IterationProg1a[6]); // Initialise l'itération du dimanche du programmateur 1a si EEPROM non configurée
- EEPROM.put(22, ModeProg1a); // Initialise le mode du programmateur 1a si EEPROM non configurée
- EEPROM.put(24, HrsDepartProg1b); // Initialise les heures de départ du programmateur 1b si EEPROM non configurée
- EEPROM.put(26, MinsDepartProg1b); // Initialise les minutes de départ du programmateur 1b si EEPROM non configurée
- EEPROM.put(28, HrsArretProg1b); // Initialise les heures d'arrêt du programmateur 1b si EEPROM non configurée
- EEPROM.put(30, MinsArretProg1b); // Initialise les minutes d'arrêt du programmateur 1b si EEPROM non configurée
- EEPROM.put(32, IterationProg1b[0]); // Initialise l'itération du lundi du programmateur 1b si EEPROM non configurée
- EEPROM.put(34, IterationProg1b[1]); // Initialise l'itération du mardi du programmateur 1b si EEPROM non configurée
- EEPROM.put(36, IterationProg1b[2]); // Initialise l'itération du mercredi du programmateur 1b si EEPROM non configurée
- EEPROM.put(38, IterationProg1b[3]); // Initialise l'itération du jeudi du programmateur 1b si EEPROM non configurée
- EEPROM.put(40, IterationProg1b[4]); // Initialise l'itération du vendredi du programmateur 1b si EEPROM non configurée
- EEPROM.put(42, IterationProg1b[5]); // Initialise l'itération du samedi du programmateur 1b si EEPROM non configurée
- EEPROM.put(44, IterationProg1b[6]); // Initialise l'itération du dimanche du programmateur 1b si EEPROM non configurée
- EEPROM.put(46, ModeProg1b); // Initialise le mode du programmateur 1b si EEPROM non configurée
- EEPROM.put(48, HrsDepartProg1c); // Initialise les heures de départ du programmateur 1c si EEPROM non configurée
- EEPROM.put(50, MinsDepartProg1c); // Initialise les minutes de départ du programmateur 1c si EEPROM non configurée
- EEPROM.put(52, HrsArretProg1c); // Initialise les heures d'arrêt du programmateur 1c si EEPROM non configurée
- EEPROM.put(54, MinsArretProg1c); // Initialise les minutes d'arrêt du programmateur 1c si EEPROM non configurée
- EEPROM.put(56, IterationProg1c[0]); // Initialise l'itération du lundi du programmateur 1c si EEPROM non configurée
- EEPROM.put(58, IterationProg1c[1]); // Initialise l'itération du mardi du programmateur 1c si EEPROM non configurée
- EEPROM.put(60, IterationProg1c[2]); // Initialise l'itération du mercredi du programmateur 1c si EEPROM non configurée
- EEPROM.put(62, IterationProg1c[3]); // Initialise l'itération du jeudi du programmateur 1c si EEPROM non configurée
- EEPROM.put(64, IterationProg1c[4]); // Initialise l'itération du vendredi du programmateur 1c si EEPROM non configurée
- EEPROM.put(66, IterationProg1c[5]); // Initialise l'itération du samedi du programmateur 1c si EEPROM non configurée
- EEPROM.put(68, IterationProg1c[6]); // Initialise l'itération du dimanche du programmateur 1c si EEPROM non configurée
- EEPROM.put(70, ModeProg1c); // Initialise le mode du programmateur 1c si EEPROM non configurée
- EEPROM.put(72, HrsDepartProg2a); // Initialise les heures de départ du programmateur 2a si EEPROM non configurée
- EEPROM.put(74, MinsDepartProg2a); // Initialise les minutes de départ du programmateur 2a si EEPROM non configurée
- EEPROM.put(76, HrsArretProg2a); // Initialise les heures d'arrêt du programmateur 2a si EEPROM non configurée
- EEPROM.put(78, MinsArretProg2a); // Initialise les minutes d'arrêt du programmateur 2a si EEPROM non configurée
- EEPROM.put(80, IterationProg2a[0]); // Initialise l'itération du lundi du programmateur 2a si EEPROM non configurée
- EEPROM.put(82, IterationProg2a[1]); // Initialise l'itération du mardi du programmateur 2a si EEPROM non configurée
- EEPROM.put(84, IterationProg2a[2]); // Initialise l'itération du mercredi du programmateur 2a si EEPROM non configurée
- EEPROM.put(86, IterationProg2a[3]); // Initialise l'itération du jeudi du programmateur 2a si EEPROM non configurée
- EEPROM.put(88, IterationProg2a[4]); // Initialise l'itération du vendredi du programmateur 2a si EEPROM non configurée
- EEPROM.put(90, IterationProg2a[5]); // Initialise l'itération du samedi du programmateur 2a si EEPROM non configurée
- EEPROM.put(92, IterationProg2a[6]); // Initialise l'itération du dimanche du programmateur 2a si EEPROM non configurée
- EEPROM.put(94, ModeProg2a); // Initialise le mode du programmateur 2a si EEPROM non configurée
- EEPROM.put(96, HrsDepartProg2b); // Initialise les heures de départ du programmateur 2b si EEPROM non configurée
- EEPROM.put(98, MinsDepartProg2b); // Initialise les minutes de départ du programmateur 2b si EEPROM non configurée
- EEPROM.put(100, HrsArretProg2b); // Initialise les heures d'arrêt du programmateur 2b si EEPROM non configurée
- EEPROM.put(102, MinsArretProg2b); // Initialise les minutes d'arrêt du programmateur 2b si EEPROM non configurée
- EEPROM.put(104, IterationProg2b[0]); // Initialise l'itération du lundi du programmateur 2b si EEPROM non configurée
- EEPROM.put(106, IterationProg2b[1]); // Initialise l'itération du mardi du programmateur 2b si EEPROM non configurée
- EEPROM.put(108, IterationProg2b[2]); // Initialise l'itération du mercredi du programmateur 2b si EEPROM non configurée
- EEPROM.put(110, IterationProg2b[3]); // Initialise l'itération du jeudi du programmateur 2b si EEPROM non configurée
- EEPROM.put(112, IterationProg2b[4]); // Initialise l'itération du vendredi du programmateur 2b si EEPROM non configurée
- EEPROM.put(114, IterationProg2b[5]); // Initialise l'itération du samedi du programmateur 2b si EEPROM non configurée
- EEPROM.put(116, IterationProg2b[6]); // Initialise l'itération du dimanche du programmateur 2b si EEPROM non configurée
- EEPROM.put(118, ModeProg2b); // Initialise le mode du programmateur 2b si EEPROM non configurée
- EEPROM.put(120, HrsDepartProg2c); // Initialise les heures de départ du programmateur 2c si EEPROM non configurée
- EEPROM.put(122, MinsDepartProg2c); // Initialise les minutes de départ du programmateur 2c si EEPROM non configurée
- EEPROM.put(124, HrsArretProg2c); // Initialise les heures d'arrêt du programmateur 2c si EEPROM non configurée
- EEPROM.put(126, MinsArretProg2c); // Initialise les minutes d'arrêt du programmateur 2c si EEPROM non configurée
- EEPROM.put(128, IterationProg2c[0]); // Initialise l'itération du lundi du programmateur 2c si EEPROM non configurée
- EEPROM.put(130, IterationProg2c[1]); // Initialise l'itération du mardi du programmateur 2c si EEPROM non configurée
- EEPROM.put(132, IterationProg2c[2]); // Initialise l'itération du mercredi du programmateur 2c si EEPROM non configurée
- EEPROM.put(134, IterationProg2c[3]); // Initialise l'itération du jeudi du programmateur 2c si EEPROM non configurée
- EEPROM.put(136, IterationProg2c[4]); // Initialise l'itération du vendredi du programmateur 2c si EEPROM non configurée
- EEPROM.put(138, IterationProg2c[5]); // Initialise l'itération du samedi du programmateur 2c si EEPROM non configurée
- EEPROM.put(140, IterationProg2c[6]); // Initialise l'itération du dimanche du programmateur 2c si EEPROM non configurée
- EEPROM.put(142, ModeProg2c); // Initialise le mode du programmateur 2c si EEPROM non configurée
- EEPROM.put(145, 6487); // Mémorise les codes d'initialisation de l'EEPROM
- EEPROM.put(148, 8521);
- }
- EEPROM.get(0, HrsDepartProg1a); // Restaure les heures de départ du programmateur 1a
- EEPROM.get(2, MinsDepartProg1a); // Restaure les minutes de départ du programmateur 1a
- EEPROM.get(4, HrsArretProg1a); // Restaure les heures d'arrêt du programmateur 1a
- EEPROM.get(6, MinsArretProg1a); // Restaure les minutes d'arrêt du programmateur 1a
- EEPROM.get(8, IterationProg1a[0]); // Restaure l'itération du lundi du programmateur 1a
- EEPROM.get(10, IterationProg1a[1]); // Restaure l'itération du mardi du programmateur 1a
- EEPROM.get(12, IterationProg1a[2]); // Restaure l'itération du mercredi du programmateur 1a
- EEPROM.get(14, IterationProg1a[3]); // Restaure l'itération du jeudi du programmateur 1a
- EEPROM.get(16, IterationProg1a[4]); // Restaure l'itération du vendredi du programmateur 1a
- EEPROM.get(18, IterationProg1a[5]); // Restaure l'itération du samedi du programmateur 1a
- EEPROM.get(20, IterationProg1a[6]); // Restaure l'itération du dimanche du programmateur 1a
- EEPROM.get(22, ModeProg1a); // Restaure le mode du programmateur 1a
- EEPROM.get(24, HrsDepartProg1b); // Restaure les heures de départ du programmateur 1b
- EEPROM.get(26, MinsDepartProg1b); // Restaure les minutes de départ du programmateur 1b
- EEPROM.get(28, HrsArretProg1b); // Restaure les heures d'arrêt du programmateur 1b
- EEPROM.get(30, MinsArretProg1b); // Restaure les minutes d'arrêt du programmateur 1b
- EEPROM.get(32, IterationProg1b[0]); // Restaure l'itération du lundi du programmateur 1b
- EEPROM.get(34, IterationProg1b[1]); // Restaure l'itération du mardi du programmateur 1b
- EEPROM.get(36, IterationProg1b[2]); // Restaure l'itération du mercredi du programmateur 1b
- EEPROM.get(38, IterationProg1b[3]); // Restaure l'itération du jeudi du programmateur 1b
- EEPROM.get(40, IterationProg1b[4]); // Restaure l'itération du vendredi du programmateur 1b
- EEPROM.get(42, IterationProg1b[5]); // Restaure l'itération du samedi du programmateur 1b
- EEPROM.get(44, IterationProg1b[6]); // Restaure l'itération du dimanche du programmateur 1b
- EEPROM.get(46, ModeProg1b); // Restaure le mode du programmateur 1b
- EEPROM.get(48, HrsDepartProg1c); // Restaure les heures de départ du programmateur 1c
- EEPROM.get(50, MinsDepartProg1c); // Restaure les minutes de départ du programmateur 1c
- EEPROM.get(52, HrsArretProg1c); // Restaure les heures d'arrêt du programmateur 1c
- EEPROM.get(54, MinsArretProg1c); // Restaure les minutes d'arrêt du programmateur 1c
- EEPROM.get(56, IterationProg1c[0]); // Restaure l'itération du lundi du programmateur 1c
- EEPROM.get(58, IterationProg1c[1]); // Restaure l'itération du mardi du programmateur 1c
- EEPROM.get(60, IterationProg1c[2]); // Restaure l'itération du mercredi du programmateur 1c
- EEPROM.get(62, IterationProg1c[3]); // Restaure l'itération du jeudi du programmateur 1c
- EEPROM.get(64, IterationProg1c[4]); // Restaure l'itération du vendredi du programmateur 1c
- EEPROM.get(66, IterationProg1c[5]); // Restaure l'itération du samedi du programmateur 1c
- EEPROM.get(68, IterationProg1c[6]); // Restaure l'itération du dimanche du programmateur 1c
- EEPROM.get(70, ModeProg1c); // Restaure le mode du programmateur 1c
- EEPROM.get(72, HrsDepartProg2a); // Restaure les heures de départ du programmateur 2a
- EEPROM.get(74, MinsDepartProg2a); // Restaure les minutes de départ du programmateur 2a
- EEPROM.get(76, HrsArretProg2a); // Restaure les heures d'arrêt du programmateur 2a
- EEPROM.get(78, MinsArretProg2a); // Restaure les minutes d'arrêt du programmateur 2a
- EEPROM.get(80, IterationProg2a[0]); // Restaure l'itération du lundi du programmateur 2a
- EEPROM.get(82, IterationProg2a[1]); // Restaure l'itération du mardi du programmateur 2a
- EEPROM.get(84, IterationProg2a[2]); // Restaure l'itération du mercredi du programmateur 2a
- EEPROM.get(86, IterationProg2a[3]); // Restaure l'itération du jeudi du programmateur 2a
- EEPROM.get(88, IterationProg2a[4]); // Restaure l'itération du vendredi du programmateur 2a
- EEPROM.get(90, IterationProg2a[5]); // Restaure l'itération du samedi du programmateur 2a
- EEPROM.get(92, IterationProg2a[6]); // Restaure l'itération du dimanche du programmateur 2a
- EEPROM.get(94, ModeProg2a); // Restaure le mode du programmateur 2a
- EEPROM.get(96, HrsDepartProg2b); // Restaure les heures de départ du programmateur 2b
- EEPROM.get(98, MinsDepartProg2b); // Restaure les minutes de départ du programmateur 2b
- EEPROM.get(100, HrsArretProg2b); // Restaure les heures d'arrêt du programmateur 2b
- EEPROM.get(102, MinsArretProg2b); // Restaure les minutes d'arrêt du programmateur 2b
- EEPROM.get(104, IterationProg2b[0]); // Restaure l'itération du lundi du programmateur 2b
- EEPROM.get(106, IterationProg2b[1]); // Restaure l'itération du mardi du programmateur 2b
- EEPROM.get(108, IterationProg2b[2]); // Restaure l'itération du mercredi du programmateur 2b
- EEPROM.get(110, IterationProg2b[3]); // Restaure l'itération du jeudi du programmateur 2b
- EEPROM.get(112, IterationProg2b[4]); // Restaure l'itération du vendredi du programmateur 2b
- EEPROM.get(114, IterationProg2b[5]); // Restaure l'itération du samedi du programmateur 2b
- EEPROM.get(116, IterationProg2b[6]); // Restaure l'itération du dimanche du programmateur 2b
- EEPROM.get(118, ModeProg2b); // Restaure le mode du programmateur 2b
- EEPROM.get(120, HrsDepartProg2c); // Restaure les heures de départ du programmateur 2c
- EEPROM.get(122, MinsDepartProg2c); // Restaure les minutes de départ du programmateur 2c
- EEPROM.get(124, HrsArretProg2c); // Restaure les heures d'arrêt du programmateur 2c
- EEPROM.get(126, MinsArretProg2c); // Restaure les minutes d'arrêt du programmateur 2c
- EEPROM.get(128, IterationProg2c[0]); // Restaure l'itération du lundi du programmateur 2c
- EEPROM.get(130, IterationProg2c[1]); // Restaure l'itération du mardi du programmateur 2c
- EEPROM.get(132, IterationProg2c[2]); // Restaure l'itération du mercredi du programmateur 2c
- EEPROM.get(134, IterationProg2c[3]); // Restaure l'itération du jeudi du programmateur 2c
- EEPROM.get(136, IterationProg2c[4]); // Restaure l'itération du vendredi du programmateur 2c
- EEPROM.get(138, IterationProg2c[5]); // Restaure l'itération du samedi du programmateur 2c
- EEPROM.get(140, IterationProg2c[6]); // Restaure l'itération du dimanche du programmateur 2c
- EEPROM.get(142, ModeProg2c); // Restaure le mode du programmateur 2c
- dht.begin(); // Démarre la librairie du capteur DHT22
- rtc.begin(BrocheDS3234); // Initialisation de la librairie du module horloge DS3234
- //rtc.setTime(0, 13, 23, 3, 10, 3, 20); // Réglage Heure / Date (Secs, Minutes, Heures, Jour de la semaine, Jour du mois, Mois, Année)
- tft.begin(9600); // Initialise la communication avec l'écran TFT
- tft.reset(); // Initialise l'écran TFT
- g_identifier = tft.readID(); // Lecture de l'identifiant de l'écran TFT
- tft.begin(g_identifier); // Démarre la librairie de l'écran TFT
- tft.fillScreen(BLACK); // Initialise la couleur du fond d'écran
- tft.setRotation(OrientationTFT); // Initialise le sens d'affichage de l'écran TFT
- delay(1000); // Temporise 1 seconde
- Buzzer(20, 0, 1); // Active le buzzer 20ms
- //**************************************************************************************************************************************************************************
- }
- void loop()
- {
- //**************************************************************************************************************************************************************************
- if (PageCourante == 0) // ******************************************************************************************* // Si la Page courante 0 est sélectionnée => Page principale
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(26, 8); tft.print(F("*** PROGRAMMATEUR HORAIRE ***")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 176, 394, 176, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK); tft.setTextSize(2); // Définit le couleur et Positionne le texte
- tft.fillCircle(10, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 119, 22, WHITE);
- tft.setCursor(6, 113); tft.print('<'); // Affiche la Touche "<"
- tft.fillCircle(388, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 119, 22, WHITE);
- tft.setCursor(384, 113); tft.print('>'); // Affiche la Touche ">"
- tft.drawRoundRect(55, 42, 287, 76, 12, 0x3B0A); // Affiche le cadre de l'heure courante
- tft.drawRoundRect(53, 40, 291, 80, 12, 0x3B0A);
- tft.fillCircle(198, 100, 4, GREEN); tft.fillCircle(198, 82, 4, GREEN); // Affiche les deux points ":" de l'heure
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(2); // Définit la taille
- tft.setCursor(20, 188); tft.print(F("Min")); // Positionne et Affiche le texte
- tft.setCursor(342, 188); tft.print(F("Max")); // Positionne et Affiche le texte
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- FonctionLectureDS3234(); // Appelle la fonction de lecture de l'heure courante et de la date
- GestionTactile (); // Appelle la fonction de gestion du mode tactile
- tft.setTextColor(GREEN, BLACK); tft.setTextSize(8); // Définit le couleur et Positionne le texte
- tft.setCursor(92, 50); // Définit la position
- GestionTactile (); // Appelle la fonction de gestion du mode tactile
- if (Hrs < 10) {tft.print('0');} tft.print(Hrs); // Affiche les heures
- tft.setCursor(216, 50); // Définit la position
- if (Mins < 10) {tft.print('0');} tft.print(Mins); // Affiche les minutes
- GestionTactile (); // Appelle la fonction de gestion du mode tactile
- if (JourSemaine == 1) {JDLS = (F("Dimanche"));} else if (JourSemaine == 2) {JDLS = (F("Lundi"));} // Définit le jour de la semaine
- else if (JourSemaine == 3) {JDLS = (F("Mardi"));} else if (JourSemaine == 4) {JDLS = (F("Mercredi"));}
- else if (JourSemaine == 5) {JDLS = (F("Jeudi"));} else if (JourSemaine == 6) {JDLS = (F("Vendredi"));}
- else if (JourSemaine == 7) {JDLS = (F("Samedi"));}
- if (Mois == 1) {MDLA = (F("JANVIER"));} else if (Mois == 2) {MDLA = (F("FEVRIER"));} // Définit le mois
- else if (Mois == 3) {MDLA = (F("MARS"));} else if (Mois == 4) {MDLA = (F("AVRIL"));}
- else if (Mois == 5) {MDLA = (F("MAI"));} else if (Mois == 6) {MDLA = (F("JUIN"));}
- else if (Mois == 7) {MDLA = (F("JUILLET"));} else if (Mois == 8) {MDLA = (F("AOUT"));}
- else if (Mois == 9) {MDLA = (F("SEPTEMBRE"));} else if (Mois == 10) {MDLA = (F("OCTOBRE"));}
- else if (Mois == 11) {MDLA = (F("NOVEMBRE"));} else if (Mois == 12) {MDLA = (F("DECEMBRE"));}
- GestionTactile (); // Appelle la fonction de gestion du mode tactile
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(2); // Définit la taille
- if (LastJour != Jour) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le jour du mois courant a changé
- {
- tft.fillRect(0, 142, 399, 14, BLACK); // Efface la date
- LastJour = Jour; // Mémorise le dernier jour du mois
- }
- int xpos = 0; // Déclare les variables pour centrer la date courante
- int longueur = 0;
- longueur = JDLS.length(); // Calcule la longueur de la date courante
- longueur = longueur + MDLA.length();
- longueur = longueur + 2 + 4 + 3; // Ajoute la longueur du jour du mois, de l'année et des espaces
- longueur = longueur *12;
- xpos = 399 - longueur;
- xpos = int(xpos / 2.0); // Définit l'abscisse de la position de la date courante pour le centrage
- GestionTactile (); // Appelle la fonction de gestion du mode tactile
- tft.setTextSize(2); // Définit la taille du texte
- tft.setCursor(xpos, 142); tft.print(JDLS); // Positionne et Affiche le jour de la semaine
- GestionTactile (); // Appelle la fonction de gestion du mode tactile
- tft.print(' '); tft.print(Jour); // Affiche un espace et le jour du mois
- tft.print(' '); tft.print(MDLA); // Affiche un espace et le mois
- tft.print(' '); tft.print("20"); tft.print(Annee); // Affiche un espace, affiche "20" et affiche l'année
- GestionTactile (); // Appelle la fonction de gestion du mode tactile
- temperatureCourante = dht.readTemperature(); // Relève la température courante
- //Serial.println(temperatureCourante); // Débug
- if (isnan(temperatureCourante)) {return;} // Vérifie si la lecture de la température courante a échoué
- static int CompteurRelevesTemperature = 0; // Déclare et Initialise les variables pour le calcul de la moyenne de la température
- static float SommeRelevesTemperature = 0.0;
- CompteurRelevesTemperature++; // Incrémente le compteur des relevés de température
- SommeRelevesTemperature = SommeRelevesTemperature + temperatureCourante; // Calcule la somme des 50 relevés
- if (CompteurRelevesTemperature >= 50) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si 50 relevés ont été effectués
- {
- temperatureCourante = SommeRelevesTemperature / 50.0; // Calcule la moyenne des 50 relevés
- //Serial.println(temperatureCourante, 1); // Débug
- CompteurRelevesTemperature = 0; SommeRelevesTemperature = 0.0; // Réinitialisation des variables de calcul de la moyenne de la température
- GestionTactile (); // Appelle la fonction de gestion du mode tactile
- if (LasttemperatureCourante != temperatureCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la température courante a changé
- {
- if (temperatureCourante < 0) {temperatureCourante = 0.0;} // Borne la température courante
- else if (temperatureCourante > 80) {temperatureCourante = 80.0;}
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(4); // Définit la taile
- GestionTactile (); // Appelle la fonction de gestion du mode tactile
- if (temperatureCourante >= 10) {tft.setCursor(146, 194); tft.print(temperatureCourante, 1);} // Positionne et Affiche la température courante
- else if (temperatureCourante >= 0 && temperatureCourante < 10){tft.setCursor(146, 194); tft.print(' '); tft.print(temperatureCourante, 1);}
- tft.setTextSize(2); tft.print((char)247); // Affiche le symbole degré
- if (temperatureCourante > MaxTemp || MaxTemp == -1) {MaxTemp = temperatureCourante;} // Mémorise la température Max
- if (temperatureCourante < MinTemp || MinTemp == -1) {MinTemp = temperatureCourante;} // Mémorise la température Min
- LasttemperatureCourante = temperatureCourante; // Mémorise la dernière valeur de la température courante
- }
- }
- else if (LasttemperatureCourante == -1) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si LasttemperatureCourante est égale à -1
- {
- temperatureCourante = dht.readTemperature(); // Relève la température courante
- //Serial.println(temperatureCourante); // Débug
- if (isnan(temperatureCourante)) {return;} // Vérifie si la lecture de la température courante a échoué
- if (temperatureCourante < 0) {temperatureCourante = 0.0;} // Borne la température courante
- else if (temperatureCourante > 80) {temperatureCourante = 80.0;}
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(4); // Définit la taile
- GestionTactile (); // Appelle la fonction de gestion du mode tactile
- if (temperatureCourante >= 10) {tft.setCursor(146, 194); tft.print(temperatureCourante, 1);} // Positionne et Affiche la température courante
- else if (temperatureCourante >= 0 && temperatureCourante < 10){tft.setCursor(140, 194); tft.print(' '); tft.print(temperatureCourante, 1);}
- tft.setTextSize(2); tft.print((char)247); // Affiche le symbole degré
- LasttemperatureCourante = temperatureCourante; // Mémorise la dernière valeur de la température courante
- }
- if (LastMaxTemp != MaxTemp || LastMinTemp != MinTemp || MaxTemp == -1 || MinTemp == -1) // ++++++++++++++++++++++++ // Si la température courante Min ou Max a changé
- {
- if (LastJourSemaine != JourSemaine) // -------------------------------------------------------------------------- // Réinitialise les températures Min et Max tous les jours à minuit
- {
- MaxTemp = temperatureCourante; MinTemp = temperatureCourante;
- LastJourSemaine = JourSemaine; // Mémorise le dernier jour de la semaine
- }
- tft.setTextSize(2); // Définit la taille
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setCursor(12, 214); tft.print(MinTemp, 1); tft.print((char)247); // Positionne et Affiche la température Min
- tft.setTextColor(RED, BLACK); // Définit la couleur
- tft.setCursor(334, 214); tft.print(MaxTemp, 1); tft.print((char)247); // Positionne et Affiche la température Max
- LastMaxTemp = MaxTemp; // Mémorise la dernière température Max
- LastMinTemp = MinTemp; // Mémorise la dernière température Min
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 10) // ************************************************************************************* // Si la Page courante 10 est sélectionnée => Prog 1a
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("PROGRAMMATEUR 1a (D24)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK); tft.setTextSize(2); // Définit le couleur et Positionne le texte
- tft.fillCircle(10, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 119, 22, WHITE);
- tft.setCursor(6, 113); tft.print('<'); // Affiche la Touche "<"
- tft.fillCircle(388, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 119, 22, WHITE);
- tft.setCursor(384, 113); tft.print('>'); // Affiche la Touche ">"
- tft.fillCircle(10, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 224, 22, WHITE);
- tft.drawLine(4, 230, 10, 218, BLACK); // Affiche la Touche "Haut"
- tft.drawLine(16, 230, 10, 218, BLACK);
- tft.fillCircle(388, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 224, 22, WHITE);
- tft.drawLine(4+376, 218, 10+376, 230, BLACK); // Affiche la Touche "Bas"
- tft.drawLine(16+376, 218, 10+376, 230, BLACK);
- tft.fillRoundRect(379, 0, 20, 20, 2, RED); // Dessine le bouton "X" pour sortir d'une page
- tft.setTextColor(WHITE); tft.setTextSize(2);
- tft.setCursor(384, 2); tft.print('X');
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(55, 46); tft.print(F("DEPART1:")); // Positionne et Affiche le texte
- tft.setCursor(55, 94); tft.print(F("ARRET1 :")); // Positionne et Affiche le texte
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastAffichageHeuresProg1a != AffichageHeuresProg1a) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si les heures de départ ou d'arrêt du programmateur 1a ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(4); // Définit la taille
- tft.setCursor(220, 42); if (HrsDepartProg1a < 10) {tft.print('0');} tft.print(HrsDepartProg1a); // Positionne et Affiche le texte
- tft.setCursor(272, 42); tft.print(':'); // Positionne et Affiche le texte
- tft.setCursor(300, 42); if (MinsDepartProg1a < 10) {tft.print('0');} tft.print(MinsDepartProg1a); // Positionne et Affiche le texte
- tft.setCursor(220, 90); if (HrsArretProg1a < 10) {tft.print('0');} tft.print(HrsArretProg1a); // Positionne et Affiche le texte
- tft.setCursor(272, 90); tft.print(':'); // Positionne et Affiche le texte
- tft.setCursor(300, 90); if (MinsArretProg1a < 10) {tft.print('0');} tft.print(MinsArretProg1a); // Positionne et Affiche le texte
- LastAffichageHeuresProg1a = AffichageHeuresProg1a; // Mémorise le dernier indicateur courant de changement d'heure du programmateur 1a
- }
- if (LastAffichageIterationProg1a != AffichageIterationProg1a) // ++++++++++++++++++++++++++++++++++++++++++++++++++ // Si l'itération du programmateur 1a a changé
- {
- uint16_t coul; // Déclarare la variable couleur des touches
- tft.setTextSize(2); // Définit la taille
- tft.setTextColor(WHITE); // Définit la couleur
- if (IterationProg1a[0] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(49, 155, 16, coul); // Dessine la Touche Dimanche "D"
- tft.drawCircle(49, 155, 20, coul);
- tft.setCursor(45, 148); tft.print('D'); // Positionne et Affiche le texte
- if (IterationProg1a[1] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(99, 155, 16, coul); // Dessine la Touche Lundi "L"
- tft.drawCircle(99, 155, 20, coul);
- tft.setCursor(95, 148); tft.print('L'); // Positionne et Affiche le texte
- if (IterationProg1a[2] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(149, 155, 16, coul); // Dessine la Touche Mardi "M"
- tft.drawCircle(149, 155, 20, coul);
- tft.setCursor(145, 148); tft.print('M'); // Positionne et Affiche le texte
- if (IterationProg1a[3] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(199, 155, 16, coul); // Dessine la Touche Mercredi "M"
- tft.drawCircle(199, 155, 20, coul);
- tft.setCursor(195, 148); tft.print('M'); // Positionne et Affiche le texte
- if (IterationProg1a[4] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(249, 155, 16, coul); // Dessine la Touche Jeudi "J"
- tft.drawCircle(249, 155, 20, coul);
- tft.setCursor(245, 148); tft.print('J'); // Positionne et Affiche le texte
- if (IterationProg1a[5] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(299, 155, 16, coul); // Dessine la Touche Vendredi "V"
- tft.drawCircle(299, 155, 20, coul);
- tft.setCursor(295, 148); tft.print('V'); // Positionne et Affiche le texte
- if (IterationProg1a[6] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(349, 155, 16, coul); // Dessine la Touche Samedi "S"
- tft.drawCircle(349, 155, 20, coul);
- tft.setCursor(345, 148); tft.print('S'); // Positionne et Affiche le texte
- LastAffichageIterationProg1a = AffichageIterationProg1a; // Mémorise le dernier indicateur courant de changement de l'itération du programmateur 1a
- }
- if (LastModeProg1a != ModeProg1a) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le mode de fonctionnement courant du programmateur 1a a changé
- {
- tft.setTextColor(RED); // Affiche ON, AUTO, OFF
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(80, 198); tft.print(F("ON")); tft.setCursor(160, 198); tft.print(F("AUTO")); tft.setCursor(265, 198); tft.print(F("OFF"));
- if (ModeProg1a == 2) {tft.drawRect(71, 188, 51, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(151, 188, 87, 39, BLACK);} //Affiche le Cadre Autour de "ON" et Efface les deux autres
- else if (ModeProg1a == 1) {tft.drawRect(151, 188, 87, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "AUTO" et Efface les deux autres
- else if (ModeProg1a == 0) {tft.drawRect(256, 188, 69, 39, GREEN); tft.drawRect(151, 188, 87, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "OFF" et Efface les deux autres
- LastModeProg1a = ModeProg1a; // Mémorise le dernier le mode de fonctionnement courant du programmateur 1a
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 11) // ************************************************************************************* // Si la Page courante 11 est sélectionnée => Prog 1b
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("PROGRAMMATEUR 1b (D24)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK); tft.setTextSize(2); // Définit le couleur et Positionne le texte
- tft.fillCircle(10, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 119, 22, WHITE);
- tft.setCursor(6, 113); tft.print('<'); // Affiche la Touche "<"
- tft.fillCircle(388, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 119, 22, WHITE);
- tft.setCursor(384, 113); tft.print('>'); // Affiche la Touche ">"
- tft.fillCircle(10, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 224, 22, WHITE);
- tft.drawLine(4, 230, 10, 218, BLACK); // Affiche la Touche "Haut"
- tft.drawLine(16, 230, 10, 218, BLACK);
- tft.fillCircle(388, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 224, 22, WHITE);
- tft.drawLine(4+376, 218, 10+376, 230, BLACK); // Affiche la Touche "Bas"
- tft.drawLine(16+376, 218, 10+376, 230, BLACK);
- tft.fillRoundRect(379, 0, 20, 20, 2, RED); // Dessine le bouton "X" pour sortir d'une page
- tft.setTextColor(WHITE); tft.setTextSize(2);
- tft.setCursor(384, 2); tft.print('X');
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(55, 46); tft.print(F("DEPART2:")); // Positionne et Affiche le texte
- tft.setCursor(55, 94); tft.print(F("ARRET2 :")); // Positionne et Affiche le texte
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastAffichageHeuresProg1b != AffichageHeuresProg1b) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si les heures de départ ou d'arrêt du programmateur 1b ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(4); // Définit la taille
- tft.setCursor(220, 42); if (HrsDepartProg1b < 10) {tft.print('0');} tft.print(HrsDepartProg1b); // Positionne et Affiche le texte
- tft.setCursor(272, 42); tft.print(':'); // Positionne et Affiche le texte
- tft.setCursor(300, 42); if (MinsDepartProg1b < 10) {tft.print('0');} tft.print(MinsDepartProg1b); // Positionne et Affiche le texte
- tft.setCursor(220, 90); if (HrsArretProg1b < 10) {tft.print('0');} tft.print(HrsArretProg1b); // Positionne et Affiche le texte
- tft.setCursor(272, 90); tft.print(':'); // Positionne et Affiche le texte
- tft.setCursor(300, 90); if (MinsArretProg1b < 10) {tft.print('0');} tft.print(MinsArretProg1b); // Positionne et Affiche le texte
- LastAffichageHeuresProg1b = AffichageHeuresProg1b; // Mémorise le dernier indicateur courant de changement d'heure du programmateur 1b
- }
- if (LastAffichageIterationProg1b != AffichageIterationProg1b) // ++++++++++++++++++++++++++++++++++++++++++++++++++ // Si l'itération du programmateur 1b a changé
- {
- uint16_t coul; // Déclarare la variable couleur des touches
- tft.setTextSize(2); // Définit la taille
- tft.setTextColor(WHITE); // Définit la couleur
- if (IterationProg1b[0] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(49, 155, 16, coul); // Dessine la Touche Dimanche "D"
- tft.drawCircle(49, 155, 20, coul);
- tft.setCursor(45, 148); tft.print('D'); // Positionne et Affiche le texte
- if (IterationProg1b[1] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(99, 155, 16, coul); // Dessine la Touche Lundi "L"
- tft.drawCircle(99, 155, 20, coul);
- tft.setCursor(95, 148); tft.print('L'); // Positionne et Affiche le texte
- if (IterationProg1b[2] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(149, 155, 16, coul); // Dessine la Touche Mardi "M"
- tft.drawCircle(149, 155, 20, coul);
- tft.setCursor(145, 148); tft.print('M'); // Positionne et Affiche le texte
- if (IterationProg1b[3] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(199, 155, 16, coul); // Dessine la Touche Mercredi "M"
- tft.drawCircle(199, 155, 20, coul);
- tft.setCursor(195, 148); tft.print('M'); // Positionne et Affiche le texte
- if (IterationProg1b[4] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(249, 155, 16, coul); // Dessine la Touche Jeudi "J"
- tft.drawCircle(249, 155, 20, coul);
- tft.setCursor(245, 148); tft.print('J'); // Positionne et Affiche le texte
- if (IterationProg1b[5] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(299, 155, 16, coul); // Dessine la Touche Vendredi "V"
- tft.drawCircle(299, 155, 20, coul);
- tft.setCursor(295, 148); tft.print('V'); // Positionne et Affiche le texte
- if (IterationProg1b[6] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(349, 155, 16, coul); // Dessine la Touche Samedi "S"
- tft.drawCircle(349, 155, 20, coul);
- tft.setCursor(345, 148); tft.print('S'); // Positionne et Affiche le texte
- LastAffichageIterationProg1b = AffichageIterationProg1b; // Mémorise le dernier indicateur courant de changement de l'itération du programmateur 1b
- }
- if (LastModeProg1b != ModeProg1b) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le mode de fonctionnement courant du programmateur 1b a changé
- {
- tft.setTextColor(RED); // Affiche ON, AUTO, OFF
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(80, 198); tft.print(F("ON")); tft.setCursor(160, 198); tft.print(F("AUTO")); tft.setCursor(265, 198); tft.print(F("OFF"));
- if (ModeProg1b == 2) {tft.drawRect(71, 188, 51, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(151, 188, 87, 39, BLACK);} //Affiche le Cadre Autour de "ON" et Efface les deux autres
- else if (ModeProg1b == 1) {tft.drawRect(151, 188, 87, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "AUTO" et Efface les deux autres
- else if (ModeProg1b == 0) {tft.drawRect(256, 188, 69, 39, GREEN); tft.drawRect(151, 188, 87, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "OFF" et Efface les deux autres
- LastModeProg1b = ModeProg1b; // Mémorise le dernier le mode de fonctionnement courant du programmateur 1b
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 12) // ************************************************************************************* // Si la Page courante 12 est sélectionnée => Prog 1c
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("PROGRAMMATEUR 1c (D24)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK); tft.setTextSize(2); // Définit le couleur et Positionne le texte
- tft.fillCircle(10, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 119, 22, WHITE);
- tft.setCursor(6, 113); tft.print('<'); // Affiche la Touche "<"
- tft.fillCircle(388, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 119, 22, WHITE);
- tft.setCursor(384, 113); tft.print('>'); // Affiche la Touche ">"
- tft.fillCircle(10, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 224, 22, WHITE);
- tft.drawLine(4, 230, 10, 218, BLACK); // Affiche la Touche "Haut"
- tft.drawLine(16, 230, 10, 218, BLACK);
- tft.fillCircle(388, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 224, 22, WHITE);
- tft.drawLine(4+376, 218, 10+376, 230, BLACK); // Affiche la Touche "Bas"
- tft.drawLine(16+376, 218, 10+376, 230, BLACK);
- tft.fillRoundRect(379, 0, 20, 20, 2, RED); // Dessine le bouton "X" pour sortir d'une page
- tft.setTextColor(WHITE); tft.setTextSize(2);
- tft.setCursor(384, 2); tft.print('X');
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(55, 46); tft.print(F("DEPART3:")); // Positionne et Affiche le texte
- tft.setCursor(55, 94); tft.print(F("ARRET3 :")); // Positionne et Affiche le texte
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastAffichageHeuresProg1c != AffichageHeuresProg1c) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si les heures de départ ou d'arrêt du programmateur 1c ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(4); // Définit la taille
- tft.setCursor(220, 42); if (HrsDepartProg1c < 10) {tft.print('0');} tft.print(HrsDepartProg1c); // Positionne et Affiche le texte
- tft.setCursor(272, 42); tft.print(':'); // Positionne et Affiche le texte
- tft.setCursor(300, 42); if (MinsDepartProg1c < 10) {tft.print('0');} tft.print(MinsDepartProg1c); // Positionne et Affiche le texte
- tft.setCursor(220, 90); if (HrsArretProg1c < 10) {tft.print('0');} tft.print(HrsArretProg1c); // Positionne et Affiche le texte
- tft.setCursor(272, 90); tft.print(':'); // Positionne et Affiche le texte
- tft.setCursor(300, 90); if (MinsArretProg1c < 10) {tft.print('0');} tft.print(MinsArretProg1c); // Positionne et Affiche le texte
- LastAffichageHeuresProg1c = AffichageHeuresProg1c; // Mémorise le dernier indicateur courant de changement d'heure du programmateur 1c
- }
- if (LastAffichageIterationProg1c != AffichageIterationProg1c) // ++++++++++++++++++++++++++++++++++++++++++++++++++ // Si l'itération du programmateur 1c a changé
- {
- uint16_t coul; // Déclarare la variable couleur des touches
- tft.setTextSize(2); // Définit la taille
- tft.setTextColor(WHITE); // Définit la couleur
- if (IterationProg1c[0] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(49, 155, 16, coul); // Dessine la Touche Dimanche "D"
- tft.drawCircle(49, 155, 20, coul);
- tft.setCursor(45, 148); tft.print('D'); // Positionne et Affiche le texte
- if (IterationProg1c[1] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(99, 155, 16, coul); // Dessine la Touche Lundi "L"
- tft.drawCircle(99, 155, 20, coul);
- tft.setCursor(95, 148); tft.print('L'); // Positionne et Affiche le texte
- if (IterationProg1c[2] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(149, 155, 16, coul); // Dessine la Touche Mardi "M"
- tft.drawCircle(149, 155, 20, coul);
- tft.setCursor(145, 148); tft.print('M'); // Positionne et Affiche le texte
- if (IterationProg1c[3] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(199, 155, 16, coul); // Dessine la Touche Mercredi "M"
- tft.drawCircle(199, 155, 20, coul);
- tft.setCursor(195, 148); tft.print('M'); // Positionne et Affiche le texte
- if (IterationProg1c[4] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(249, 155, 16, coul); // Dessine la Touche Jeudi "J"
- tft.drawCircle(249, 155, 20, coul);
- tft.setCursor(245, 148); tft.print('J'); // Positionne et Affiche le texte
- if (IterationProg1c[5] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(299, 155, 16, coul); // Dessine la Touche Vendredi "V"
- tft.drawCircle(299, 155, 20, coul);
- tft.setCursor(295, 148); tft.print('V'); // Positionne et Affiche le texte
- if (IterationProg1c[6] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(349, 155, 16, coul); // Dessine la Touche Samedi "S"
- tft.drawCircle(349, 155, 20, coul);
- tft.setCursor(345, 148); tft.print('S'); // Positionne et Affiche le texte
- LastAffichageIterationProg1c = AffichageIterationProg1c; // Mémorise le dernier indicateur courant de changement de l'itération du programmateur 1c
- }
- if (LastModeProg1c != ModeProg1c) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le mode de fonctionnement courant du programmateur 1c a changé
- {
- tft.setTextColor(RED); // Affiche ON, AUTO, OFF
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(80, 198); tft.print(F("ON")); tft.setCursor(160, 198); tft.print(F("AUTO")); tft.setCursor(265, 198); tft.print(F("OFF"));
- if (ModeProg1c == 2) {tft.drawRect(71, 188, 51, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(151, 188, 87, 39, BLACK);} //Affiche le Cadre Autour de "ON" et Efface les deux autres
- else if (ModeProg1c == 1) {tft.drawRect(151, 188, 87, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "AUTO" et Efface les deux autres
- else if (ModeProg1c == 0) {tft.drawRect(256, 188, 69, 39, GREEN); tft.drawRect(151, 188, 87, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "OFF" et Efface les deux autres
- LastModeProg1c = ModeProg1c; // Mémorise le dernier le mode de fonctionnement courant du programmateur 1c
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 13) // ************************************************************************************* // Si la Page courante 13 est sélectionnée => Minuterie Prog 1
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("MINUTERIE Prog 1 (D24)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK); tft.setTextSize(2); // Définit le couleur et Positionne le texte
- tft.fillCircle(10, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 119, 22, WHITE);
- tft.setCursor(6, 113); tft.print('<'); // Affiche la Touche "<"
- tft.fillCircle(388, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 119, 22, WHITE);
- tft.setCursor(384, 113); tft.print('>'); // Affiche la Touche ">"
- tft.fillCircle(10, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 224, 22, WHITE);
- tft.drawLine(4, 230, 10, 218, BLACK); // Affiche la Touche "Haut"
- tft.drawLine(16, 230, 10, 218, BLACK);
- tft.fillCircle(388, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 224, 22, WHITE);
- tft.drawLine(4+376, 218, 10+376, 230, BLACK); // Affiche la Touche "Bas"
- tft.drawLine(16+376, 218, 10+376, 230, BLACK);
- tft.fillRoundRect(379, 0, 20, 20, 2, RED); // Dessine le bouton "X" pour sortir d'une page
- tft.setTextColor(WHITE); tft.setTextSize(2);
- tft.setCursor(384, 2); tft.print('X');
- tft.drawRoundRect(55, 42, 287, 76, 12, 0x3B0A); // Affiche le cadre de l'heure courante
- tft.drawRoundRect(53, 40, 291, 80, 12, 0x3B0A);
- tft.fillCircle(198, 100, 4, BLUE); tft.fillCircle(198, 82, 4, BLUE); // Affiche les deux points ":" de l'heure
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.drawRect(64, 130, 25, 25, GREEN); tft.drawRect(118, 130, 25, 25, GREEN); // Dessine les 4 boutons + et - et les cadres
- tft.setTextSize(2); tft.setCursor(72, 136); tft.print('+'); tft.setCursor(126, 136); tft.print('-');
- tft.drawRect(249, 130, 25, 25, GREEN); tft.drawRect(303, 130, 25, 25, GREEN);
- tft.setCursor(257, 136); tft.print('+'); tft.setCursor(311, 136); tft.print('-');
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si les heures ou les minutes de réglages de la minuterie 1 ont changé
- if (LastHrsReglagesMinuterie1 != HrsMinuterieReglageProg1 || LastMinsReglagesMinuterie1 != MinsMinuterieReglageProg1)
- {
- tft.setTextColor(BLUE, BLACK); tft.setTextSize(8); // Définit le couleur et Positionne le texte
- tft.setCursor(92, 50); // Définit la position
- if (HrsMinuterieReglageProg1 < 10) {tft.print('0');} tft.print(HrsMinuterieReglageProg1); // Affiche les heures de réglages de la minuterie 1
- tft.setCursor(216, 50); // Définit la position
- if (MinsMinuterieReglageProg1 < 10) {tft.print('0');} tft.print(MinsMinuterieReglageProg1); // Affiche les minutes de réglages de la minuterie 1
- LastHrsReglagesMinuterie1 = HrsMinuterieReglageProg1; // Mémorise dernières heures de réglages de la minuterie 1
- LastMinsReglagesMinuterie1 = MinsMinuterieReglageProg1; // Mémorise dernières minutes de réglages de la minuterie 1
- }
- if (LastModeMinuterieProg1 != ModeMinuterieProg1) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le mode de fonctionnement courant de la minuterie 1
- {
- tft.setTextColor(RED); // Affiche ON, OFF
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(80, 198); tft.print(F("ON")); tft.setCursor(265, 198); tft.print(F("OFF"));
- if (ModeMinuterieProg1 == 1) {tft.drawRect(71, 188, 51, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(151, 188, 87, 39, BLACK);} //Affiche le Cadre Autour de "ON" et Efface l'autre cadre
- else if (ModeMinuterieProg1 == 0) {tft.drawRect(256, 188, 69, 39, GREEN); tft.drawRect(151, 188, 87, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "OFF" et Efface l'autre cadre
- LastModeMinuterieProg1 = ModeMinuterieProg1; // Mémorise le dernier le mode de fonctionnement courant de la minuterie 1
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 14) // ************************************************************************************* // Si la Page courante 14 est sélectionnée => Thermostat 1
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(85, 8); tft.print(F("THERMOSTAT 1 (D24)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK); tft.setTextSize(2); // Définit le couleur et Positionne le texte
- tft.fillCircle(10, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 119, 22, WHITE);
- tft.setCursor(6, 113); tft.print('<'); // Affiche la Touche "<"
- tft.fillCircle(388, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 119, 22, WHITE);
- tft.setCursor(384, 113); tft.print('>'); // Affiche la Touche ">"
- tft.fillCircle(10, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 224, 22, WHITE);
- tft.drawLine(4, 230, 10, 218, BLACK); // Affiche la Touche "Haut"
- tft.drawLine(16, 230, 10, 218, BLACK);
- tft.fillCircle(388, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 224, 22, WHITE);
- tft.drawLine(4+376, 218, 10+376, 230, BLACK); // Affiche la Touche "Bas"
- tft.drawLine(16+376, 218, 10+376, 230, BLACK);
- tft.fillRoundRect(379, 0, 20, 20, 2, RED); // Dessine le bouton "X" pour sortir d'une page
- tft.setTextColor(WHITE); tft.setTextSize(2);
- tft.setCursor(384, 2); tft.print('X');
- tft.setTextColor(RED, BLACK); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(130, 42); tft.print(F("TEMPERATURE")); // Positionne et Affiche le texte
- tft.setTextColor(RED, BLACK); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(135, 110); tft.print(F("THERMOSTAT")); // Positionne et Affiche le texte
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.drawRect(73, 140, 25, 25, GREEN); tft.drawRect(288, 140, 25, 25, GREEN); // Dessine les 2 boutons + et - et les cadres
- tft.setTextSize(2); tft.setCursor(81, 146); tft.print('+'); tft.setCursor(296, 146); tft.print('-');
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LasttemperatureThermostat1 != temperatureThermostat1) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le thermostat 1 a changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit le couleur et Positionne le texte
- tft.setTextSize(5); // Définit la taile
- if (temperatureThermostat1 >= 10) {tft.setCursor(132, 136); tft.print(temperatureThermostat1, 1);} // Positionne et Affiche le thermostat 1
- else if (temperatureThermostat1 >= 0 && temperatureThermostat1 < 10){tft.setCursor(132, 136); tft.print(' '); tft.print(temperatureThermostat1, 1);}
- tft.setTextSize(2); tft.print((char)247); // Affiche le symbole degré
- LasttemperatureThermostat1 = temperatureThermostat1; // Mémorise la dernière valeur du thermostat 1
- }
- if (LastModeThermostat1 != ModeThermostat1) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le mode de fonctionnement courant du thermostat 1
- {
- tft.setTextColor(RED); // Affiche ON, OFF
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(80, 198); tft.print(F("ON")); tft.setCursor(265, 198); tft.print(F("OFF"));
- if (ModeThermostat1 == 1) {tft.drawRect(71, 188, 51, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(151, 188, 87, 39, BLACK);} //Affiche le Cadre Autour de "ON" et Efface l'autre cadre
- else if (ModeThermostat1 == 0) {tft.drawRect(256, 188, 69, 39, GREEN); tft.drawRect(151, 188, 87, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "OFF" et Efface l'autre cadre
- LastModeThermostat1 = ModeThermostat1; // Mémorise le dernier le mode de fonctionnement courant du thermostat 1
- }
- temperatureCourante = dht.readTemperature(); // Relève la température courante
- //Serial.println(temperatureCourante); // Débug
- if (isnan(temperatureCourante)) {return;} // Vérifie si la lecture de la température courante a échoué
- static int CompteurRelevesTemperature = 0; // Déclare et Initialise les variables pour le calcul de la moyenne de la température
- static float SommeRelevesTemperature = 0.0;
- CompteurRelevesTemperature++; // Incrémente le compteur des relevés de température
- SommeRelevesTemperature = SommeRelevesTemperature + temperatureCourante; // Calcule la somme des 50 relevés
- if (CompteurRelevesTemperature >= 100) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si 100 relevés ont été effectués
- {
- temperatureCourante = SommeRelevesTemperature / 100.0; // Calcule la moyenne des 100 relevés
- //Serial.println(temperatureCourante, 1); // Débug
- CompteurRelevesTemperature = 0; SommeRelevesTemperature = 0.0; // Réinitialisation des variables de calcul de la moyenne de la température
- }
- if (LastAffichageTemperatureModeThermostat1 != temperatureCourante) // ++++++++++++++++++++++++++++++++++++++++++++ // Si la température courante a changé
- {
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taile
- if (temperatureCourante >= 10) {tft.setCursor(152, 70); tft.print(temperatureCourante, 1);} // Positionne et Affiche la température courante
- else if (temperatureCourante >= 0 && temperatureCourante < 10){tft.setCursor(152, 70); tft.print(' '); tft.print(temperatureCourante, 1);}
- tft.setTextSize(2); tft.print((char)247); // Affiche le symbole degré
- LastAffichageTemperatureModeThermostat1 = temperatureCourante;
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 20) // ************************************************************************************* // Si la Page courante 20 est sélectionnée => Prog 2a
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("PROGRAMMATEUR 2a (D25)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK); tft.setTextSize(2); // Définit le couleur et Positionne le texte
- tft.fillCircle(10, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 119, 22, WHITE);
- tft.setCursor(6, 113); tft.print('<'); // Affiche la Touche "<"
- tft.fillCircle(388, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 119, 22, WHITE);
- tft.setCursor(384, 113); tft.print('>'); // Affiche la Touche ">"
- tft.fillCircle(10, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 224, 22, WHITE);
- tft.drawLine(4, 230, 10, 218, BLACK); // Affiche la Touche "Haut"
- tft.drawLine(16, 230, 10, 218, BLACK);
- tft.fillCircle(388, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 224, 22, WHITE);
- tft.drawLine(4+376, 218, 10+376, 230, BLACK); // Affiche la Touche "Bas"
- tft.drawLine(16+376, 218, 10+376, 230, BLACK);
- tft.fillRoundRect(379, 0, 20, 20, 2, RED); // Dessine le bouton "X" pour sortir d'une page
- tft.setTextColor(WHITE); tft.setTextSize(2);
- tft.setCursor(384, 2); tft.print('X');
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(55, 46); tft.print(F("DEPART1:")); // Positionne et Affiche le texte
- tft.setCursor(55, 94); tft.print(F("ARRET1 :")); // Positionne et Affiche le texte
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastAffichageHeuresProg2a != AffichageHeuresProg2a) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si les heures de départ ou d'arrêt du programmateur 2a ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(4); // Définit la taille
- tft.setCursor(220, 42); if (HrsDepartProg2a < 10) {tft.print('0');} tft.print(HrsDepartProg2a); // Positionne et Affiche le texte
- tft.setCursor(272, 42); tft.print(':'); // Positionne et Affiche le texte
- tft.setCursor(300, 42); if (MinsDepartProg2a < 10) {tft.print('0');} tft.print(MinsDepartProg2a); // Positionne et Affiche le texte
- tft.setCursor(220, 90); if (HrsArretProg2a < 10) {tft.print('0');} tft.print(HrsArretProg2a); // Positionne et Affiche le texte
- tft.setCursor(272, 90); tft.print(':'); // Positionne et Affiche le texte
- tft.setCursor(300, 90); if (MinsArretProg2a < 10) {tft.print('0');} tft.print(MinsArretProg2a); // Positionne et Affiche le texte
- LastAffichageHeuresProg2a = AffichageHeuresProg2a; // Mémorise le dernier indicateur courant de changement d'heure du programmateur 2a
- }
- if (LastAffichageIterationProg2a != AffichageIterationProg2a) // ++++++++++++++++++++++++++++++++++++++++++++++++++ // Si l'itération du programmateur 2a a changé
- {
- uint16_t coul; // Déclarare la variable couleur des touches
- tft.setTextSize(2); // Définit la taille
- tft.setTextColor(WHITE); // Définit la couleur
- if (IterationProg2a[0] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(49, 155, 16, coul); // Dessine la Touche Dimanche "D"
- tft.drawCircle(49, 155, 20, coul);
- tft.setCursor(45, 148); tft.print('D'); // Positionne et Affiche le texte
- if (IterationProg2a[1] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(99, 155, 16, coul); // Dessine la Touche Lundi "L"
- tft.drawCircle(99, 155, 20, coul);
- tft.setCursor(95, 148); tft.print('L'); // Positionne et Affiche le texte
- if (IterationProg2a[2] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(149, 155, 16, coul); // Dessine la Touche Mardi "M"
- tft.drawCircle(149, 155, 20, coul);
- tft.setCursor(145, 148); tft.print('M'); // Positionne et Affiche le texte
- if (IterationProg2a[3] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(199, 155, 16, coul); // Dessine la Touche Mercredi "M"
- tft.drawCircle(199, 155, 20, coul);
- tft.setCursor(195, 148); tft.print('M'); // Positionne et Affiche le texte
- if (IterationProg2a[4] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(249, 155, 16, coul); // Dessine la Touche Jeudi "J"
- tft.drawCircle(249, 155, 20, coul);
- tft.setCursor(245, 148); tft.print('J'); // Positionne et Affiche le texte
- if (IterationProg2a[5] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(299, 155, 16, coul); // Dessine la Touche Vendredi "V"
- tft.drawCircle(299, 155, 20, coul);
- tft.setCursor(295, 148); tft.print('V'); // Positionne et Affiche le texte
- if (IterationProg2a[6] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(349, 155, 16, coul); // Dessine la Touche Samedi "S"
- tft.drawCircle(349, 155, 20, coul);
- tft.setCursor(345, 148); tft.print('S'); // Positionne et Affiche le texte
- LastAffichageIterationProg2a = AffichageIterationProg2a; // Mémorise le dernier indicateur courant de changement de l'itération du programmateur 2a
- }
- if (LastModeProg2a != ModeProg2a) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le mode de fonctionnement courant du programmateur 2a a changé
- {
- tft.setTextColor(RED); // Affiche ON, AUTO, OFF
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(80, 198); tft.print(F("ON")); tft.setCursor(160, 198); tft.print(F("AUTO")); tft.setCursor(265, 198); tft.print(F("OFF"));
- if (ModeProg2a == 2) {tft.drawRect(71, 188, 51, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(151, 188, 87, 39, BLACK);} //Affiche le Cadre Autour de "ON" et Efface les deux autres
- else if (ModeProg2a == 1) {tft.drawRect(151, 188, 87, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "AUTO" et Efface les deux autres
- else if (ModeProg2a == 0) {tft.drawRect(256, 188, 69, 39, GREEN); tft.drawRect(151, 188, 87, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "OFF" et Efface les deux autres
- LastModeProg2a = ModeProg2a; // Mémorise le dernier le mode de fonctionnement courant du programmateur 2a
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 21) // ************************************************************************************* // Si la Page courante 21 est sélectionnée => Prog 2b
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("PROGRAMMATEUR 2b (D25)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK); tft.setTextSize(2); // Définit le couleur et Positionne le texte
- tft.fillCircle(10, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 119, 22, WHITE);
- tft.setCursor(6, 113); tft.print('<'); // Affiche la Touche "<"
- tft.fillCircle(388, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 119, 22, WHITE);
- tft.setCursor(384, 113); tft.print('>'); // Affiche la Touche ">"
- tft.fillCircle(10, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 224, 22, WHITE);
- tft.drawLine(4, 230, 10, 218, BLACK); // Affiche la Touche "Haut"
- tft.drawLine(16, 230, 10, 218, BLACK);
- tft.fillCircle(388, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 224, 22, WHITE);
- tft.drawLine(4+376, 218, 10+376, 230, BLACK); // Affiche la Touche "Bas"
- tft.drawLine(16+376, 218, 10+376, 230, BLACK);
- tft.fillRoundRect(379, 0, 20, 20, 2, RED); // Dessine le bouton "X" pour sortir d'une page
- tft.setTextColor(WHITE); tft.setTextSize(2);
- tft.setCursor(384, 2); tft.print('X');
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(55, 46); tft.print(F("DEPART2:")); // Positionne et Affiche le texte
- tft.setCursor(55, 94); tft.print(F("ARRET2 :")); // Positionne et Affiche le texte
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastAffichageHeuresProg2b != AffichageHeuresProg2b) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si les heures de départ ou d'arrêt du programmateur 2b ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(4); // Définit la taille
- tft.setCursor(220, 42); if (HrsDepartProg2b < 10) {tft.print('0');} tft.print(HrsDepartProg2b); // Positionne et Affiche le texte
- tft.setCursor(272, 42); tft.print(':'); // Positionne et Affiche le texte
- tft.setCursor(300, 42); if (MinsDepartProg2b < 10) {tft.print('0');} tft.print(MinsDepartProg2b); // Positionne et Affiche le texte
- tft.setCursor(220, 90); if (HrsArretProg2b < 10) {tft.print('0');} tft.print(HrsArretProg2b); // Positionne et Affiche le texte
- tft.setCursor(272, 90); tft.print(':'); // Positionne et Affiche le texte
- tft.setCursor(300, 90); if (MinsArretProg2b < 10) {tft.print('0');} tft.print(MinsArretProg2b); // Positionne et Affiche le texte
- LastAffichageHeuresProg2b = AffichageHeuresProg2b; // Mémorise le dernier indicateur courant de changement d'heure du programmateur 2b
- }
- if (LastAffichageIterationProg2b != AffichageIterationProg2b) // ++++++++++++++++++++++++++++++++++++++++++++++++++ // Si l'itération du programmateur 2b a changé
- {
- uint16_t coul; // Déclarare la variable couleur des touches
- tft.setTextSize(2); // Définit la taille
- tft.setTextColor(WHITE); // Définit la couleur
- if (IterationProg2b[0] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(49, 155, 16, coul); // Dessine la Touche Dimanche "D"
- tft.drawCircle(49, 155, 20, coul);
- tft.setCursor(45, 148); tft.print('D'); // Positionne et Affiche le texte
- if (IterationProg2b[1] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(99, 155, 16, coul); // Dessine la Touche Lundi "L"
- tft.drawCircle(99, 155, 20, coul);
- tft.setCursor(95, 148); tft.print('L'); // Positionne et Affiche le texte
- if (IterationProg2b[2] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(149, 155, 16, coul); // Dessine la Touche Mardi "M"
- tft.drawCircle(149, 155, 20, coul);
- tft.setCursor(145, 148); tft.print('M'); // Positionne et Affiche le texte
- if (IterationProg2b[3] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(199, 155, 16, coul); // Dessine la Touche Mercredi "M"
- tft.drawCircle(199, 155, 20, coul);
- tft.setCursor(195, 148); tft.print('M'); // Positionne et Affiche le texte
- if (IterationProg2b[4] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(249, 155, 16, coul); // Dessine la Touche Jeudi "J"
- tft.drawCircle(249, 155, 20, coul);
- tft.setCursor(245, 148); tft.print('J'); // Positionne et Affiche le texte
- if (IterationProg2b[5] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(299, 155, 16, coul); // Dessine la Touche Vendredi "V"
- tft.drawCircle(299, 155, 20, coul);
- tft.setCursor(295, 148); tft.print('V'); // Positionne et Affiche le texte
- if (IterationProg2b[6] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(349, 155, 16, coul); // Dessine la Touche Samedi "S"
- tft.drawCircle(349, 155, 20, coul);
- tft.setCursor(345, 148); tft.print('S'); // Positionne et Affiche le texte
- LastAffichageIterationProg2b = AffichageIterationProg2b; // Mémorise le dernier indicateur courant de changement de l'itération du programmateur 2b
- }
- if (LastModeProg2b != ModeProg2b) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le mode de fonctionnement courant du programmateur 2b a changé
- {
- tft.setTextColor(RED); // Affiche ON, AUTO, OFF
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(80, 198); tft.print(F("ON")); tft.setCursor(160, 198); tft.print(F("AUTO")); tft.setCursor(265, 198); tft.print(F("OFF"));
- if (ModeProg2b == 2) {tft.drawRect(71, 188, 51, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(151, 188, 87, 39, BLACK);} //Affiche le Cadre Autour de "ON" et Efface les deux autres
- else if (ModeProg2b == 1) {tft.drawRect(151, 188, 87, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "AUTO" et Efface les deux autres
- else if (ModeProg2b == 0) {tft.drawRect(256, 188, 69, 39, GREEN); tft.drawRect(151, 188, 87, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "OFF" et Efface les deux autres
- LastModeProg2b = ModeProg2b; // Mémorise le dernier le mode de fonctionnement courant du programmateur 2b
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 22) // ************************************************************************************* // Si la Page courante 22 est sélectionnée => Prog 2c
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("PROGRAMMATEUR 2c (D25)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK); tft.setTextSize(2); // Définit le couleur et Positionne le texte
- tft.fillCircle(10, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 119, 22, WHITE);
- tft.setCursor(6, 113); tft.print('<'); // Affiche la Touche "<"
- tft.fillCircle(388, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 119, 22, WHITE);
- tft.setCursor(384, 113); tft.print('>'); // Affiche la Touche ">"
- tft.fillCircle(10, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 224, 22, WHITE);
- tft.drawLine(4, 230, 10, 218, BLACK); // Affiche la Touche "Haut"
- tft.drawLine(16, 230, 10, 218, BLACK);
- tft.fillCircle(388, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 224, 22, WHITE);
- tft.drawLine(4+376, 218, 10+376, 230, BLACK); // Affiche la Touche "Bas"
- tft.drawLine(16+376, 218, 10+376, 230, BLACK);
- tft.fillRoundRect(379, 0, 20, 20, 2, RED); // Dessine le bouton "X" pour sortir d'une page
- tft.setTextColor(WHITE); tft.setTextSize(2);
- tft.setCursor(384, 2); tft.print('X');
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(55, 46); tft.print(F("DEPART3:")); // Positionne et Affiche le texte
- tft.setCursor(55, 94); tft.print(F("ARRET3 :")); // Positionne et Affiche le texte
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastAffichageHeuresProg2c != AffichageHeuresProg2c) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si les heures de départ ou d'arrêt du programmateur 2c ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(4); // Définit la taille
- tft.setCursor(220, 42); if (HrsDepartProg2c < 10) {tft.print('0');} tft.print(HrsDepartProg2c); // Positionne et Affiche le texte
- tft.setCursor(272, 42); tft.print(':'); // Positionne et Affiche le texte
- tft.setCursor(300, 42); if (MinsDepartProg2c < 10) {tft.print('0');} tft.print(MinsDepartProg2c); // Positionne et Affiche le texte
- tft.setCursor(220, 90); if (HrsArretProg2c < 10) {tft.print('0');} tft.print(HrsArretProg2c); // Positionne et Affiche le texte
- tft.setCursor(272, 90); tft.print(':'); // Positionne et Affiche le texte
- tft.setCursor(300, 90); if (MinsArretProg2c < 10) {tft.print('0');} tft.print(MinsArretProg2c); // Positionne et Affiche le texte
- LastAffichageHeuresProg2c = AffichageHeuresProg2c; // Mémorise le dernier indicateur courant de changement d'heure du programmateur 2c
- }
- if (LastAffichageIterationProg2c != AffichageIterationProg2c) // ++++++++++++++++++++++++++++++++++++++++++++++++++ // Si l'itération du programmateur 2c a changé
- {
- uint16_t coul; // Déclarare la variable couleur des touches
- tft.setTextSize(2); // Définit la taille
- tft.setTextColor(WHITE); // Définit la couleur
- if (IterationProg2c[0] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(49, 155, 16, coul); // Dessine la Touche Dimanche "D"
- tft.drawCircle(49, 155, 20, coul);
- tft.setCursor(45, 148); tft.print('D'); // Positionne et Affiche le texte
- if (IterationProg2c[1] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(99, 155, 16, coul); // Dessine la Touche Lundi "L"
- tft.drawCircle(99, 155, 20, coul);
- tft.setCursor(95, 148); tft.print('L'); // Positionne et Affiche le texte
- if (IterationProg2c[2] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(149, 155, 16, coul); // Dessine la Touche Mardi "M"
- tft.drawCircle(149, 155, 20, coul);
- tft.setCursor(145, 148); tft.print('M'); // Positionne et Affiche le texte
- if (IterationProg2c[3] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(199, 155, 16, coul); // Dessine la Touche Mercredi "M"
- tft.drawCircle(199, 155, 20, coul);
- tft.setCursor(195, 148); tft.print('M'); // Positionne et Affiche le texte
- if (IterationProg2c[4] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(249, 155, 16, coul); // Dessine la Touche Jeudi "J"
- tft.drawCircle(249, 155, 20, coul);
- tft.setCursor(245, 148); tft.print('J'); // Positionne et Affiche le texte
- if (IterationProg2c[5] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(299, 155, 16, coul); // Dessine la Touche Vendredi "V"
- tft.drawCircle(299, 155, 20, coul);
- tft.setCursor(295, 148); tft.print('V'); // Positionne et Affiche le texte
- if (IterationProg2c[6] == 0) {coul = RED;} else {coul = 0x195B62;} // Sélectionne la couleur
- tft.fillCircle(349, 155, 16, coul); // Dessine la Touche Samedi "S"
- tft.drawCircle(349, 155, 20, coul);
- tft.setCursor(345, 148); tft.print('S'); // Positionne et Affiche le texte
- LastAffichageIterationProg2c = AffichageIterationProg2c; // Mémorise le dernier indicateur courant de changement de l'itération du programmateur 2c
- }
- if (LastModeProg2c != ModeProg2c) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le mode de fonctionnement courant du programmateur 2c a changé
- {
- tft.setTextColor(RED); // Affiche ON, AUTO, OFF
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(80, 198); tft.print(F("ON")); tft.setCursor(160, 198); tft.print(F("AUTO")); tft.setCursor(265, 198); tft.print(F("OFF"));
- if (ModeProg2c == 2) {tft.drawRect(71, 188, 51, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(151, 188, 87, 39, BLACK);} //Affiche le Cadre Autour de "ON" et Efface les deux autres
- else if (ModeProg2c == 1) {tft.drawRect(151, 188, 87, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "AUTO" et Efface les deux autres
- else if (ModeProg2c == 0) {tft.drawRect(256, 188, 69, 39, GREEN); tft.drawRect(151, 188, 87, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "OFF" et Efface les deux autres
- LastModeProg2c = ModeProg2c; // Mémorise le dernier le mode de fonctionnement courant du programmateur 2c
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 23) // ************************************************************************************* // Si la Page courante 23 est sélectionnée => Minuterie Prog 2
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("MINUTERIE Prog 2 (D25)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK); tft.setTextSize(2); // Définit le couleur et Positionne le texte
- tft.fillCircle(10, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 119, 22, WHITE);
- tft.setCursor(6, 113); tft.print('<'); // Affiche la Touche "<"
- tft.fillCircle(388, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 119, 22, WHITE);
- tft.setCursor(384, 113); tft.print('>'); // Affiche la Touche ">"
- tft.fillCircle(10, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 224, 22, WHITE);
- tft.drawLine(4, 230, 10, 218, BLACK); // Affiche la Touche "Haut"
- tft.drawLine(16, 230, 10, 218, BLACK);
- tft.fillCircle(388, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 224, 22, WHITE);
- tft.drawLine(4+376, 218, 10+376, 230, BLACK); // Affiche la Touche "Bas"
- tft.drawLine(16+376, 218, 10+376, 230, BLACK);
- tft.fillRoundRect(379, 0, 20, 20, 2, RED); // Dessine le bouton "X" pour sortir d'une page
- tft.setTextColor(WHITE); tft.setTextSize(2);
- tft.setCursor(384, 2); tft.print('X');
- tft.drawRoundRect(55, 42, 287, 76, 12, 0x3B0A); // Affiche le cadre de l'heure courante
- tft.drawRoundRect(53, 40, 291, 80, 12, 0x3B0A);
- tft.fillCircle(198, 100, 4, BLUE); tft.fillCircle(198, 82, 4, BLUE); // Affiche les deux points ":" de l'heure
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.drawRect(64, 130, 25, 25, GREEN); tft.drawRect(118, 130, 25, 25, GREEN); // Dessine les 4 boutons + et - et les cadres
- tft.setTextSize(2); tft.setCursor(72, 136); tft.print('+'); tft.setCursor(126, 136); tft.print('-');
- tft.drawRect(249, 130, 25, 25, GREEN); tft.drawRect(303, 130, 25, 25, GREEN);
- tft.setCursor(257, 136); tft.print('+'); tft.setCursor(311, 136); tft.print('-');
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si les heures ou les minutes de réglages de la minuterie 2 ont changé
- if (LastHrsReglagesMinuterie2 != HrsMinuterieReglageProg2 || LastMinsReglagesMinuterie2 != MinsMinuterieReglageProg2)
- {
- tft.setTextColor(BLUE, BLACK); tft.setTextSize(8); // Définit le couleur et Positionne le texte
- tft.setCursor(92, 50); // Définit la position
- if (HrsMinuterieReglageProg2 < 10) {tft.print('0');} tft.print(HrsMinuterieReglageProg2); // Affiche les heures de réglages de la minuterie 2
- tft.setCursor(216, 50); // Définit la position
- if (MinsMinuterieReglageProg2 < 10) {tft.print('0');} tft.print(MinsMinuterieReglageProg2); // Affiche les minutes de réglages de la minuterie 2
- LastHrsReglagesMinuterie2 = HrsMinuterieReglageProg2; // Mémorise dernières heures de réglages de la minuterie 2
- LastMinsReglagesMinuterie2 = MinsMinuterieReglageProg2; // Mémorise dernières minutes de réglages de la minuterie 2
- }
- if (LastModeMinuterieProg2 != ModeMinuterieProg2) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le mode de fonctionnement courant de la minuterie 2
- {
- tft.setTextColor(RED); // Affiche ON, OFF
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(80, 198); tft.print(F("ON")); tft.setCursor(265, 198); tft.print(F("OFF"));
- if (ModeMinuterieProg2 == 1) {tft.drawRect(71, 188, 51, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(151, 188, 87, 39, BLACK);} //Affiche le Cadre Autour de "ON" et Efface l'autre cadre
- else if (ModeMinuterieProg2 == 0) {tft.drawRect(256, 188, 69, 39, GREEN); tft.drawRect(151, 188, 87, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "OFF" et Efface l'autre cadre
- LastModeMinuterieProg2 = ModeMinuterieProg2; // Mémorise le dernier le mode de fonctionnement courant de la minuterie 2
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 24) // ************************************************************************************* // Si la Page courante 24 est sélectionnée => Thermostat 2
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(85, 8); tft.print(F("THERMOSTAT 2 (D24)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK); tft.setTextSize(2); // Définit le couleur et Positionne le texte
- tft.fillCircle(10, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 119, 22, WHITE);
- tft.setCursor(6, 113); tft.print('<'); // Affiche la Touche "<"
- tft.fillCircle(388, 119, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 119, 22, WHITE);
- tft.setCursor(384, 113); tft.print('>'); // Affiche la Touche ">"
- tft.fillCircle(10, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(10, 224, 22, WHITE);
- tft.drawLine(4, 230, 10, 218, BLACK); // Affiche la Touche "Haut"
- tft.drawLine(16, 230, 10, 218, BLACK);
- tft.fillCircle(388, 224, 20, WHITE); // Dessine la touche
- tft.drawCircle(388, 224, 22, WHITE);
- tft.drawLine(4+376, 218, 10+376, 230, BLACK); // Affiche la Touche "Bas"
- tft.drawLine(16+376, 218, 10+376, 230, BLACK);
- tft.fillRoundRect(379, 0, 20, 20, 2, RED); // Dessine le bouton "X" pour sortir d'une page
- tft.setTextColor(WHITE); tft.setTextSize(2);
- tft.setCursor(384, 2); tft.print('X');
- tft.setTextColor(RED, BLACK); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(130, 42); tft.print(F("TEMPERATURE")); // Positionne et Affiche le texte
- tft.setTextColor(RED, BLACK); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(135, 110); tft.print(F("THERMOSTAT")); // Positionne et Affiche le texte
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.drawRect(73, 140, 25, 25, GREEN); tft.drawRect(288, 140, 25, 25, GREEN); // Dessine les 2 boutons + et - et les cadres
- tft.setTextSize(2); tft.setCursor(81, 146); tft.print('+'); tft.setCursor(296, 146); tft.print('-');
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LasttemperatureThermostat2 != temperatureThermostat2) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le thermostat 2 a changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit le couleur et Positionne le texte
- tft.setTextSize(5); // Définit la taile
- if (temperatureThermostat2 >= 10) {tft.setCursor(132, 136); tft.print(temperatureThermostat2, 1);} // Positionne et Affiche le thermostat 2
- else if (temperatureThermostat2 >= 0 && temperatureThermostat2 < 10){tft.setCursor(132, 136); tft.print(' '); tft.print(temperatureThermostat2, 1);}
- tft.setTextSize(2); tft.print((char)247); // Affiche le symbole degré
- LasttemperatureThermostat2 = temperatureThermostat2; // Mémorise la dernière valeur du thermostat 2
- }
- if (LastModeThermostat2 != ModeThermostat2) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le mode de fonctionnement courant du thermostat 2
- {
- tft.setTextColor(RED); // Affiche ON, OFF
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(80, 198); tft.print(F("ON")); tft.setCursor(265, 198); tft.print(F("OFF"));
- if (ModeThermostat2 == 1) {tft.drawRect(71, 188, 51, 39, GREEN); tft.drawRect(256, 188, 69, 39, BLACK); tft.drawRect(151, 188, 87, 39, BLACK);} //Affiche le Cadre Autour de "ON" et Efface l'autre cadre
- else if (ModeThermostat2 == 0) {tft.drawRect(256, 188, 69, 39, GREEN); tft.drawRect(151, 188, 87, 39, BLACK); tft.drawRect(71, 188, 51, 39, BLACK);} //Affiche le Cadre Autour de "OFF" et Efface l'autre cadre
- LastModeThermostat2 = ModeThermostat2; // Mémorise le dernier le mode de fonctionnement courant du thermostat 2
- }
- temperatureCourante = dht.readTemperature(); // Relève la température courante
- //Serial.println(temperatureCourante); // Débug
- if (isnan(temperatureCourante)) {return;} // Vérifie si la lecture de la température courante a échoué
- static int CompteurRelevesTemperature = 0; // Déclare et Initialise les variables pour le calcul de la moyenne de la température
- static float SommeRelevesTemperature = 0.0;
- CompteurRelevesTemperature++; // Incrémente le compteur des relevés de température
- SommeRelevesTemperature = SommeRelevesTemperature + temperatureCourante; // Calcule la somme des 50 relevés
- if (CompteurRelevesTemperature >= 100) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si 100 relevés ont été effectués
- {
- temperatureCourante = SommeRelevesTemperature / 100.0; // Calcule la moyenne des 100 relevés
- //Serial.println(temperatureCourante, 1); // Débug
- CompteurRelevesTemperature = 0; SommeRelevesTemperature = 0.0; // Réinitialisation des variables de calcul de la moyenne de la température
- }
- if (LastAffichageTemperatureModeThermostat2 != temperatureCourante) // ++++++++++++++++++++++++++++++++++++++++++++ // Si la température courante a changé
- {
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taile
- if (temperatureCourante >= 10) {tft.setCursor(152, 70); tft.print(temperatureCourante, 1);} // Positionne et Affiche la température courante
- else if (temperatureCourante >= 0 && temperatureCourante < 10){tft.setCursor(152, 70); tft.print(' '); tft.print(temperatureCourante, 1);}
- tft.setTextSize(2); tft.print((char)247); // Affiche le symbole degré
- LastAffichageTemperatureModeThermostat2 = temperatureCourante;
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 110) // ************************************************************************************ // Réglage de l'heure de départ et d'arrêt du programmateur 1a
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("PROGRAMMATEUR 1a (D24)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(51, 55); tft.print(F("DEPART")); tft.setCursor(246, 55); tft.print(F("ARRET")); // Positionne et Affiche les messages
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.drawRect(64, 130, 25, 25, GREEN); tft.drawRect(118, 130, 25, 25, GREEN); // Dessine les 4 boutons + et les cadres
- tft.setTextSize(2); tft.setCursor(72, 136); tft.print('+'); tft.setCursor(126, 136); tft.print('+');
- tft.drawRect(249, 130, 25, 25, GREEN); tft.drawRect(303, 130, 25, 25, GREEN);
- tft.setCursor(257, 136); tft.print('+'); tft.setCursor(311, 136); tft.print('+');
- tft.setTextColor(BLACK, WHITE); // Définit la couleur
- tft.fillCircle(22, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(22, 214, 22, WHITE);
- tft.setCursor(12, 208); tft.print("OK"); // Affiche la Touche "OK"
- tft.fillCircle(376, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(376, 214, 22, WHITE);
- tft.setCursor(372, 208); tft.print('X'); // Affiche la Touche "X"
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastHrsDepartReglages != HrsDepartReglages || LastMinsDepartReglages != MinsDepartReglages) // ---------------- // Si les heures ou les minutes de départ de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(60, 95); // Positionne le texte
- if (HrsDepartReglages < 10) {tft.print('0');} tft.print(HrsDepartReglages); // Affiche le texte
- tft.print(':'); // Affiche le texte
- if (MinsDepartReglages < 10) {tft.print('0');} tft.print(MinsDepartReglages); // Affiche le texte
- LastHrsDepartReglages = HrsDepartReglages; // Mémorise les dernières heures de départ de réglages
- LastMinsDepartReglages = MinsDepartReglages; // Mémorise les dernières minutes de départ de réglages
- }
- if (LastHrsArretReglages != HrsArretReglages || LastMinsArretReglages != MinsArretReglages) // -------------------- // Si les heures ou les minutes d'arrêt de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(245, 95); // Positionne le texte
- if (HrsArretReglages < 10) {tft.print('0');} tft.print(HrsArretReglages); // Affiche le texte
- tft.print(':'); // Affiche le texte
- if (MinsArretReglages < 10) {tft.print('0');} tft.print(MinsArretReglages); // Affiche le texte
- LastHrsArretReglages = HrsArretReglages; // Mémorise les dernières heures d'arrêt de réglages
- LastMinsArretReglages = MinsArretReglages; // Mémorise les dernières minutes de d'arrêt de réglages
- }
- FonctionLectureDS3234(); // Appelle la fonction de lecture de l'heure courante et de la date
- if (LastMins != Mins) // ------------------------------------------------------------------------------------------ // Si les minutes courantes ont changé
- {
- tft.setTextColor(BLUE, BLACK); tft.setTextSize(5); // Définit le couleur et Positionne le texte
- tft.setCursor(118, 186); // Définit la position
- if (Hrs < 10) {tft.print('0');} tft.print(Hrs); // Affiche les heures
- tft.fillCircle(198, 216, 4, BLUE); tft.fillCircle(198, 198, 4, BLUE); // Affiche les deux points ":" de l'heure
- tft.setCursor(218, 186); // Définit la position
- if (Mins < 10) {tft.print('0');} tft.print(Mins); // Affiche les minutes
- LastMins = Mins; // Mémorise les dernières minutes courantes
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 111) // ************************************************************************************ // Réglage de l'heure de départ et d'arrêt du programmateur 1b
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("PROGRAMMATEUR 1b (D24)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(51, 55); tft.print(F("DEPART")); tft.setCursor(246, 55); tft.print(F("ARRET")); // Positionne et Affiche les messages
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.drawRect(64, 130, 25, 25, GREEN); tft.drawRect(118, 130, 25, 25, GREEN); // Dessine les 4 boutons + et les cadres
- tft.setTextSize(2); tft.setCursor(72, 136); tft.print('+'); tft.setCursor(126, 136); tft.print('+');
- tft.drawRect(249, 130, 25, 25, GREEN); tft.drawRect(303, 130, 25, 25, GREEN);
- tft.setCursor(257, 136); tft.print('+'); tft.setCursor(311, 136); tft.print('+');
- tft.setTextColor(BLACK, WHITE); // Définit la couleur
- tft.fillCircle(22, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(22, 214, 22, WHITE);
- tft.setCursor(12, 208); tft.print("OK"); // Affiche la Touche "OK"
- tft.fillCircle(376, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(376, 214, 22, WHITE);
- tft.setCursor(372, 208); tft.print('X'); // Affiche la Touche "X"
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastHrsDepartReglages != HrsDepartReglages || LastMinsDepartReglages != MinsDepartReglages) // ---------------- // Si les heures ou les minutes de départ de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(60, 95); // Positionne le texte
- if (HrsDepartReglages < 10) {tft.print('0');} tft.print(HrsDepartReglages); // Affiche le texte
- tft.print(':'); // Affiche le texte
- if (MinsDepartReglages < 10) {tft.print('0');} tft.print(MinsDepartReglages); // Affiche le texte
- LastHrsDepartReglages = HrsDepartReglages; // Mémorise les dernières heures de départ de réglages
- LastMinsDepartReglages = MinsDepartReglages; // Mémorise les dernières minutes de départ de réglages
- }
- if (LastHrsArretReglages != HrsArretReglages || LastMinsArretReglages != MinsArretReglages) // -------------------- // Si les heures ou les minutes d'arrêt de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(245, 95); // Positionne le texte
- if (HrsArretReglages < 10) {tft.print('0');} tft.print(HrsArretReglages); // Affiche le texte
- tft.print(':'); // Affiche le texte
- if (MinsArretReglages < 10) {tft.print('0');} tft.print(MinsArretReglages); // Affiche le texte
- LastHrsArretReglages = HrsArretReglages; // Mémorise les dernières heures d'arrêt de réglages
- LastMinsArretReglages = MinsArretReglages; // Mémorise les dernières minutes de d'arrêt de réglages
- }
- FonctionLectureDS3234(); // Appelle la fonction de lecture de l'heure courante et de la date
- if (LastMins != Mins) // ------------------------------------------------------------------------------------------ // Si les minutes courantes ont changé
- {
- tft.setTextColor(BLUE, BLACK); tft.setTextSize(5); // Définit le couleur et Positionne le texte
- tft.setCursor(118, 186); // Définit la position
- if (Hrs < 10) {tft.print('0');} tft.print(Hrs); // Affiche les heures
- tft.fillCircle(198, 216, 4, BLUE); tft.fillCircle(198, 198, 4, BLUE); // Affiche les deux points ":" de l'heure
- tft.setCursor(218, 186); // Définit la position
- if (Mins < 10) {tft.print('0');} tft.print(Mins); // Affiche les minutes
- LastMins = Mins; // Mémorise les dernières minutes courantes
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 112) // ************************************************************************************ // Réglage de l'heure de départ et d'arrêt du programmateur 1c
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("PROGRAMMATEUR 1c (D24)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(51, 55); tft.print(F("DEPART")); tft.setCursor(246, 55); tft.print(F("ARRET")); // Positionne et Affiche les messages
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.drawRect(64, 130, 25, 25, GREEN); tft.drawRect(118, 130, 25, 25, GREEN); // Dessine les 4 boutons + et les cadres
- tft.setTextSize(2); tft.setCursor(72, 136); tft.print('+'); tft.setCursor(126, 136); tft.print('+');
- tft.drawRect(249, 130, 25, 25, GREEN); tft.drawRect(303, 130, 25, 25, GREEN);
- tft.setCursor(257, 136); tft.print('+'); tft.setCursor(311, 136); tft.print('+');
- tft.setTextColor(BLACK, WHITE); // Définit la couleur
- tft.fillCircle(22, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(22, 214, 22, WHITE);
- tft.setCursor(12, 208); tft.print("OK"); // Affiche la Touche "OK"
- tft.fillCircle(376, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(376, 214, 22, WHITE);
- tft.setCursor(372, 208); tft.print('X'); // Affiche la Touche "X"
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastHrsDepartReglages != HrsDepartReglages || LastMinsDepartReglages != MinsDepartReglages) // ---------------- // Si les heures ou les minutes de départ de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(60, 95); // Positionne le texte
- if (HrsDepartReglages < 10) {tft.print('0');} tft.print(HrsDepartReglages); // Affiche le texte
- tft.print(':'); // Affiche le texte
- if (MinsDepartReglages < 10) {tft.print('0');} tft.print(MinsDepartReglages); // Affiche le texte
- LastHrsDepartReglages = HrsDepartReglages; // Mémorise les dernières heures de départ de réglages
- LastMinsDepartReglages = MinsDepartReglages; // Mémorise les dernières minutes de départ de réglages
- }
- if (LastHrsArretReglages != HrsArretReglages || LastMinsArretReglages != MinsArretReglages) // -------------------- // Si les heures ou les minutes d'arrêt de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(245, 95); // Positionne le texte
- if (HrsArretReglages < 10) {tft.print('0');} tft.print(HrsArretReglages); // Affiche le texte
- tft.print(':'); // Affiche le texte
- if (MinsArretReglages < 10) {tft.print('0');} tft.print(MinsArretReglages); // Affiche le texte
- LastHrsArretReglages = HrsArretReglages; // Mémorise les dernières heures d'arrêt de réglages
- LastMinsArretReglages = MinsArretReglages; // Mémorise les dernières minutes de d'arrêt de réglages
- }
- FonctionLectureDS3234(); // Appelle la fonction de lecture de l'heure courante et de la date
- if (LastMins != Mins) // ------------------------------------------------------------------------------------------ // Si les minutes courantes ont changé
- {
- tft.setTextColor(BLUE, BLACK); tft.setTextSize(5); // Définit le couleur et Positionne le texte
- tft.setCursor(118, 186); // Définit la position
- if (Hrs < 10) {tft.print('0');} tft.print(Hrs); // Affiche les heures
- tft.fillCircle(198, 216, 4, BLUE); tft.fillCircle(198, 198, 4, BLUE); // Affiche les deux points ":" de l'heure
- tft.setCursor(218, 186); // Définit la position
- if (Mins < 10) {tft.print('0');} tft.print(Mins); // Affiche les minutes
- LastMins = Mins; // Mémorise les dernières minutes courantes
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 210) // ************************************************************************************ // Réglage de l'heure de départ et d'arrêt du programmateur 2a
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("PROGRAMMATEUR 2a (D25)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(51, 55); tft.print(F("DEPART")); tft.setCursor(246, 55); tft.print(F("ARRET")); // Positionne et Affiche les messages
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.drawRect(64, 130, 25, 25, GREEN); tft.drawRect(118, 130, 25, 25, GREEN); // Dessine les 4 boutons + et les cadres
- tft.setTextSize(2); tft.setCursor(72, 136); tft.print('+'); tft.setCursor(126, 136); tft.print('+');
- tft.drawRect(249, 130, 25, 25, GREEN); tft.drawRect(303, 130, 25, 25, GREEN);
- tft.setCursor(257, 136); tft.print('+'); tft.setCursor(311, 136); tft.print('+');
- tft.setTextColor(BLACK, WHITE); // Définit la couleur
- tft.fillCircle(22, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(22, 214, 22, WHITE);
- tft.setCursor(12, 208); tft.print("OK"); // Affiche la Touche "OK"
- tft.fillCircle(376, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(376, 214, 22, WHITE);
- tft.setCursor(372, 208); tft.print('X'); // Affiche la Touche "X"
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastHrsDepartReglages != HrsDepartReglages || LastMinsDepartReglages != MinsDepartReglages) // ---------------- // Si les heures ou les minutes de départ de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(60, 95); // Positionne le texte
- if (HrsDepartReglages < 10) {tft.print('0');} tft.print(HrsDepartReglages); // Affiche le texte
- tft.print(':'); // Affiche le texte
- if (MinsDepartReglages < 10) {tft.print('0');} tft.print(MinsDepartReglages); // Affiche le texte
- LastHrsDepartReglages = HrsDepartReglages; // Mémorise les dernières heures de départ de réglages
- LastMinsDepartReglages = MinsDepartReglages; // Mémorise les dernières minutes de départ de réglages
- }
- if (LastHrsArretReglages != HrsArretReglages || LastMinsArretReglages != MinsArretReglages) // -------------------- // Si les heures ou les minutes d'arrêt de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(245, 95); // Positionne le texte
- if (HrsArretReglages < 10) {tft.print('0');} tft.print(HrsArretReglages); // Affiche le texte
- tft.print(':'); // Affiche le texte
- if (MinsArretReglages < 10) {tft.print('0');} tft.print(MinsArretReglages); // Affiche le texte
- LastHrsArretReglages = HrsArretReglages; // Mémorise les dernières heures d'arrêt de réglages
- LastMinsArretReglages = MinsArretReglages; // Mémorise les dernières minutes de d'arrêt de réglages
- }
- FonctionLectureDS3234(); // Appelle la fonction de lecture de l'heure courante et de la date
- if (LastMins != Mins) // ------------------------------------------------------------------------------------------ // Si les minutes courantes ont changé
- {
- tft.setTextColor(BLUE, BLACK); tft.setTextSize(5); // Définit le couleur et Positionne le texte
- tft.setCursor(118, 186); // Définit la position
- if (Hrs < 10) {tft.print('0');} tft.print(Hrs); // Affiche les heures
- tft.fillCircle(198, 216, 4, BLUE); tft.fillCircle(198, 198, 4, BLUE); // Affiche les deux points ":" de l'heure
- tft.setCursor(218, 186); // Définit la position
- if (Mins < 10) {tft.print('0');} tft.print(Mins); // Affiche les minutes
- LastMins = Mins; // Mémorise les dernières minutes courantes
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 211) // ************************************************************************************ // Réglage de l'heure de départ et d'arrêt du programmateur 2b
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("PROGRAMMATEUR 2b (D25)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(51, 55); tft.print(F("DEPART")); tft.setCursor(246, 55); tft.print(F("ARRET")); // Positionne et Affiche les messages
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.drawRect(64, 130, 25, 25, GREEN); tft.drawRect(118, 130, 25, 25, GREEN); // Dessine les 4 boutons + et les cadres
- tft.setTextSize(2); tft.setCursor(72, 136); tft.print('+'); tft.setCursor(126, 136); tft.print('+');
- tft.drawRect(249, 130, 25, 25, GREEN); tft.drawRect(303, 130, 25, 25, GREEN);
- tft.setCursor(257, 136); tft.print('+'); tft.setCursor(311, 136); tft.print('+');
- tft.setTextColor(BLACK, WHITE); // Définit la couleur
- tft.fillCircle(22, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(22, 214, 22, WHITE);
- tft.setCursor(12, 208); tft.print("OK"); // Affiche la Touche "OK"
- tft.fillCircle(376, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(376, 214, 22, WHITE);
- tft.setCursor(372, 208); tft.print('X'); // Affiche la Touche "X"
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastHrsDepartReglages != HrsDepartReglages || LastMinsDepartReglages != MinsDepartReglages) // ---------------- // Si les heures ou les minutes de départ de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(60, 95); // Positionne le texte
- if (HrsDepartReglages < 10) {tft.print('0');} tft.print(HrsDepartReglages); // Affiche le texte
- tft.print(':'); // Affiche le texte
- if (MinsDepartReglages < 10) {tft.print('0');} tft.print(MinsDepartReglages); // Affiche le texte
- LastHrsDepartReglages = HrsDepartReglages; // Mémorise les dernières heures de départ de réglages
- LastMinsDepartReglages = MinsDepartReglages; // Mémorise les dernières minutes de départ de réglages
- }
- if (LastHrsArretReglages != HrsArretReglages || LastMinsArretReglages != MinsArretReglages) // -------------------- // Si les heures ou les minutes d'arrêt de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(245, 95); // Positionne le texte
- if (HrsArretReglages < 10) {tft.print('0');} tft.print(HrsArretReglages); // Affiche le texte
- tft.print(':'); // Affiche le texte
- if (MinsArretReglages < 10) {tft.print('0');} tft.print(MinsArretReglages); // Affiche le texte
- LastHrsArretReglages = HrsArretReglages; // Mémorise les dernières heures d'arrêt de réglages
- LastMinsArretReglages = MinsArretReglages; // Mémorise les dernières minutes de d'arrêt de réglages
- }
- FonctionLectureDS3234(); // Appelle la fonction de lecture de l'heure courante et de la date
- if (LastMins != Mins) // ------------------------------------------------------------------------------------------ // Si les minutes courantes ont changé
- {
- tft.setTextColor(BLUE, BLACK); tft.setTextSize(5); // Définit le couleur et Positionne le texte
- tft.setCursor(118, 186); // Définit la position
- if (Hrs < 10) {tft.print('0');} tft.print(Hrs); // Affiche les heures
- tft.fillCircle(198, 216, 4, BLUE); tft.fillCircle(198, 198, 4, BLUE); // Affiche les deux points ":" de l'heure
- tft.setCursor(218, 186); // Définit la position
- if (Mins < 10) {tft.print('0');} tft.print(Mins); // Affiche les minutes
- LastMins = Mins; // Mémorise les dernières minutes courantes
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 212) // ************************************************************************************ // Réglage de l'heure de départ et d'arrêt du programmateur 2c
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(65, 8); tft.print(F("PROGRAMMATEUR 2c (D25)")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(51, 55); tft.print(F("DEPART")); tft.setCursor(246, 55); tft.print(F("ARRET")); // Positionne et Affiche les messages
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.drawRect(64, 130, 25, 25, GREEN); tft.drawRect(118, 130, 25, 25, GREEN); // Dessine les 4 boutons + et les cadres
- tft.setTextSize(2); tft.setCursor(72, 136); tft.print('+'); tft.setCursor(126, 136); tft.print('+');
- tft.drawRect(249, 130, 25, 25, GREEN); tft.drawRect(303, 130, 25, 25, GREEN);
- tft.setCursor(257, 136); tft.print('+'); tft.setCursor(311, 136); tft.print('+');
- tft.setTextColor(BLACK, WHITE); // Définit la couleur
- tft.fillCircle(22, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(22, 214, 22, WHITE);
- tft.setCursor(12, 208); tft.print("OK"); // Affiche la Touche "OK"
- tft.fillCircle(376, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(376, 214, 22, WHITE);
- tft.setCursor(372, 208); tft.print('X'); // Affiche la Touche "X"
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastHrsDepartReglages != HrsDepartReglages || LastMinsDepartReglages != MinsDepartReglages) // ---------------- // Si les heures ou les minutes de départ de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(60, 95); // Positionne le texte
- if (HrsDepartReglages < 10) {tft.print('0');} tft.print(HrsDepartReglages); // Affiche le texte
- tft.print(':'); // Affiche le texte
- if (MinsDepartReglages < 10) {tft.print('0');} tft.print(MinsDepartReglages); // Affiche le texte
- LastHrsDepartReglages = HrsDepartReglages; // Mémorise les dernières heures de départ de réglages
- LastMinsDepartReglages = MinsDepartReglages; // Mémorise les dernières minutes de départ de réglages
- }
- if (LastHrsArretReglages != HrsArretReglages || LastMinsArretReglages != MinsArretReglages) // -------------------- // Si les heures ou les minutes d'arrêt de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setTextSize(3); // Définit la taille
- tft.setCursor(245, 95); // Positionne le texte
- if (HrsArretReglages < 10) {tft.print('0');} tft.print(HrsArretReglages); // Affiche le texte
- tft.print(':'); // Affiche le texte
- if (MinsArretReglages < 10) {tft.print('0');} tft.print(MinsArretReglages); // Affiche le texte
- LastHrsArretReglages = HrsArretReglages; // Mémorise les dernières heures d'arrêt de réglages
- LastMinsArretReglages = MinsArretReglages; // Mémorise les dernières minutes de d'arrêt de réglages
- }
- FonctionLectureDS3234(); // Appelle la fonction de lecture de l'heure courante et de la date
- if (LastMins != Mins) // ------------------------------------------------------------------------------------------ // Si les minutes courantes ont changé
- {
- tft.setTextColor(BLUE, BLACK); tft.setTextSize(5); // Définit le couleur et Positionne le texte
- tft.setCursor(118, 186); // Définit la position
- if (Hrs < 10) {tft.print('0');} tft.print(Hrs); // Affiche les heures
- tft.fillCircle(198, 216, 4, BLUE); tft.fillCircle(198, 198, 4, BLUE); // Affiche les deux points ":" de l'heure
- tft.setCursor(218, 186); // Définit la position
- if (Mins < 10) {tft.print('0');} tft.print(Mins); // Affiche les minutes
- LastMins = Mins; // Mémorise les dernières minutes courantes
- }
- }
- // *************************************************************************************************************************************************************************
- else if (PageCourante == 500) // ************************************************************************************ // Réglage de l'heure courante
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(38, 8); tft.print(F("REGLAGE DE L'HEURE COURANTE")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK, WHITE); // Définit la couleur
- tft.fillCircle(22, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(22, 214, 22, WHITE);
- tft.setCursor(12, 208); tft.print("OK"); // Affiche la Touche "OK"
- tft.fillCircle(376, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(376, 214, 22, WHITE);
- tft.setCursor(372, 208); tft.print('X'); // Affiche la Touche "X"
- tft.drawRoundRect(55, 42, 287, 76, 12, 0x3B0A); // Affiche le cadre de l'heure courante
- tft.drawRoundRect(53, 40, 291, 80, 12, 0x3B0A);
- tft.fillCircle(198, 100, 4, BLUE); tft.fillCircle(198, 82, 4, BLUE); // Affiche les deux points ":" de l'heure
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.drawRect(64, 130, 25, 25, GREEN); tft.drawRect(118, 130, 25, 25, GREEN); // Dessine les 4 boutons + et - et les cadres
- tft.setTextSize(2); tft.setCursor(72, 136); tft.print('+'); tft.setCursor(126, 136); tft.print('-');
- tft.drawRect(249, 130, 25, 25, GREEN); tft.drawRect(303, 130, 25, 25, GREEN);
- tft.setCursor(257, 136); tft.print('+'); tft.setCursor(311, 136); tft.print('-');
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastHrsReglages != HrsReglages || LastMinsReglages != MinsReglages) // ---------------------------------------- // Si les heures ou les minutes de réglages ont changé
- {
- tft.setTextColor(BLUE, BLACK); tft.setTextSize(8); // Définit le couleur et Positionne le texte
- tft.setCursor(92, 50); // Définit la position
- if (HrsReglages < 10) {tft.print('0');} tft.print(HrsReglages); // Affiche les heures de réglages
- tft.setCursor(216, 50); // Définit la position
- if (MinsReglages < 10) {tft.print('0');} tft.print(MinsReglages); // Affiche les minutes de réglages
- LastHrsReglages = HrsReglages; // Mémorise dernières heures de réglages
- LastMinsReglages = MinsReglages; // Mémorise dernières minutes de réglages
- }
- }
- // *************************************************************************************************************************************************************************
- else if (PageCourante == 501) // ************************************************************************************ // Réglage de la date courante
- {
- if (LastPageCourante != PageCourante) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la Page courante a changé
- {
- tft.fillScreen(BLACK); // Efface l'écran TFT
- tft.setTextColor(RED); // Définit la couleur
- tft.setTextSize(2); tft.setCursor(38, 8); tft.print(F("REGLAGE DE LA DATE COURANTE")); // Positionne et Affiche le texte
- tft.drawLine(5, 31, 394, 31, DARKRED); // Trace une ligne rouge horizontale
- tft.drawLine(5, 32, 394, 32, DARKRED); // Trace une ligne rouge horizontale
- tft.setTextColor(BLACK, WHITE); // Définit la couleur
- tft.fillCircle(22, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(22, 214, 22, WHITE);
- tft.setCursor(12, 208); tft.print("OK"); // Affiche la Touche "OK"
- tft.fillCircle(376, 214, 20, WHITE); // Dessine la touche
- tft.drawCircle(376, 214, 22, WHITE);
- tft.setCursor(372, 208); tft.print('X'); // Affiche la Touche "X"
- tft.setTextSize(2); // Définit la taille
- tft.setTextColor(WHITE, BLACK); // Définit la couleur
- tft.setCursor(60, 105); tft.print(F("JOUR")); // Positionne et Affiche le texte
- tft.setCursor(60, 157); tft.print(F("MOIS")); // Positionne et Affiche le texte
- tft.setCursor(60, 209); tft.print(F("ANNEE")); // Positionne et Affiche le texte
- tft.setTextSize(2);
- tft.drawRect(145, 203, 25, 25, GREEN); tft.drawRect(290, 203, 25, 25, GREEN); // Dessine les 6 boutons + et - et les cadres
- tft.setCursor(153, 209); tft.print('+'); tft.setCursor(298, 209); tft.print('-');
- tft.drawRect(145, 151, 25, 25, GREEN); tft.drawRect(290, 151, 25, 25, GREEN);
- tft.setCursor(153, 157); tft.print('+'); tft.setCursor(298, 157); tft.print('-');
- tft.drawRect(145, 99, 25, 25, GREEN); tft.drawRect(290, 99, 25, 25, GREEN);
- tft.setCursor(153, 105); tft.print('+'); tft.setCursor(298, 105); tft.print('-');
- LastPageCourante = PageCourante; // Mémorise la dernière Page courante
- }
- if (LastAffichageJourSemaine != AffichageJourSemaine) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le dernier état de l'indicateur d'affichage des jours de la semaine a changé
- {
- uint16_t coul; // Déclarare la variable couleur des touches
- tft.setTextSize(2); // Définit la taille
- tft.setTextColor(WHITE); // Définit la couleur
- if (JourSemaineReglages == 1) {coul = 0x195B62;} else {coul = RED;} // Sélectionne la couleur
- tft.fillCircle(49, 60, 16, coul); // Dessine la Touche Dimanche "D"
- tft.drawCircle(49, 60, 20, coul);
- tft.setCursor(45, 53); tft.print('D'); // Positionne et Affiche le texte
- if (JourSemaineReglages == 2) {coul = 0x195B62;} else {coul = RED;} // Sélectionne la couleur
- tft.fillCircle(99, 60, 16, coul); // Dessine la Touche Lundi "L"
- tft.drawCircle(99, 60, 20, coul);
- tft.setCursor(95, 53); tft.print('L'); // Positionne et Affiche le texte
- if (JourSemaineReglages == 3) {coul = 0x195B62;} else {coul = RED;} // Sélectionne la couleur
- tft.fillCircle(149, 60, 16, coul); // Dessine la Touche Mardi "M"
- tft.drawCircle(149, 60, 20, coul);
- tft.setCursor(145, 53); tft.print('M'); // Positionne et Affiche le texte
- if (JourSemaineReglages == 4) {coul = 0x195B62;} else {coul = RED;} // Sélectionne la couleur
- tft.fillCircle(199, 60, 16, coul); // Dessine la Touche Mercredi "M"
- tft.drawCircle(199, 60, 20, coul);
- tft.setCursor(195, 53); tft.print('M'); // Positionne et Affiche le texte
- if (JourSemaineReglages == 5) {coul = 0x195B62;} else {coul = RED;} // Sélectionne la couleur
- tft.fillCircle(249, 60, 16, coul); // Dessine la Touche Jeudi "J"
- tft.drawCircle(249, 60, 20, coul);
- tft.setCursor(245, 53); tft.print('J'); // Positionne et Affiche le texte
- if (JourSemaineReglages == 6) {coul = 0x195B62;} else {coul = RED;} // Sélectionne la couleur
- tft.fillCircle(299, 60, 16, coul); // Dessine la Touche Vendredi "V"
- tft.drawCircle(299, 60, 20, coul);
- tft.setCursor(295, 53); tft.print('V'); // Positionne et Affiche le texte
- if (JourSemaineReglages == 7) {coul = 0x195B62;} else {coul = RED;} // Sélectionne la couleur
- tft.fillCircle(349, 60, 16, coul); // Dessine la Touche Samedi "S"
- tft.drawCircle(349, 60, 20, coul);
- tft.setCursor(345, 53); tft.print('S'); // Positionne et Affiche le texte
- LastAffichageJourSemaine = AffichageJourSemaine; // Mémorise le dernier indicateur d'affichage des jours de la semaine
- }
- if (LastJourReglages != JourReglages) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le dernier jour de réglages a changé
- {
- tft.setTextSize(3); // Définit la taille
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setCursor(210, 100); if (JourReglages < 10) {tft.print('0');} tft.print(JourReglages); // Positionne et Affiche la variable de réglages
- LastJourReglages = JourReglages; // Mémorise le dernier indicateur d'affichage des jours
- delay(40); // Temporise 40ms
- }
- if (LastMoisReglages != MoisReglages) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le dernier mois de réglages a changé
- {
- tft.setTextSize(3); // Définit la taille
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setCursor(210, 152); if (MoisReglages < 10) {tft.print('0');} tft.print(MoisReglages); // Positionne et Affiche la variable de réglages
- LastMoisReglages = MoisReglages; // Mémorise le dernier mois de réglages
- delay(40); // Temporise 40ms
- }
- if (LastAnneeReglages != AnneeReglages) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la dernière année de réglage a changé
- {
- tft.setTextSize(3); // Définit la taille
- tft.setTextColor(BLUE, BLACK); // Définit la couleur
- tft.setCursor(195, 204); tft.print(F("20")); tft.print(AnneeReglages); // Positionne et Affiche la variable de réglages
- LastAnneeReglages = AnneeReglages; // Mémorise la dernière année de réglages
- delay(40); // Temporise 40ms
- }
- }
- //**************************************************************************************************************************************************************************
- GestionTactile (); // *********************************************************************************************** // Appelle la fonction de gestion du mode tactile
- //**************************************************************************************************************************************************************************
- if (ModeMinuterieProg1 == 1) // ************************************************************************************* // Si la minuterie 1 est activée
- {
- if (millis() - t1DebutTempoMinuterie1 >= DureeMinuterie1_ms && t1DebutTempoMinuterie1 != 0) // ++++++++++++++++++++ // Si la temporisation de la minuterie 1 est écoulée
- {
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie 1
- ModeMinuterieProg1 = 0; // Définit le mode de la minuterie 1
- etatSortieProg1 = false; // Désactive l'état courant de la sortie 1
- LastModeMinuterieProg1 = -1; // Force l'affichage du mode de la minuterie 1
- t1DebutTempoMinuterie1 = 0; // Réinitialise la temporisation de la minuterie 1 en ms
- }
- }
- else // ************************************************************************************************************* // Si la minuterie 1 n'est psa activée
- {
- //**************************************************************************************************************************************************************************
- if (ModeProg1a == 1) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le programmateur 1a est activé
- {
- if (IterationProg1a[JourSemaine-1] == 1) // --------------------------------------------------------------------- // Si l'itération du jour de la semaine correspond
- {
- if (HrsDepartProg1a == HrsArretProg1a && MinsDepartProg1a == MinsArretProg1a) {return;} // .................... // Si l'heure de départ est égale à l'heure d'arrêt => Retour début loop()
- if (Hrs == HrsDepartProg1a && Mins == MinsDepartProg1a && Secs < 3) // ........................................ // Si l'heure courante est égale à l'heure de départ du programmateur 1a
- {
- digitalWrite(BrocheProg1LedVerte, HIGH); // Active la sortie du programmateur 1
- etatSortieProg1 = true; // Active l'état courant de la sortie du programmateur 1
- }
- else if (Hrs == HrsArretProg1a && Mins == MinsArretProg1a && Secs < 3) // ..................................... // Si l'heure courante est égale à l'heure d'arrêt du programmateur 1a
- {
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie du programmateur 1
- etatSortieProg1 = false; // Désactive l'état courant de la sortie du programmateur 1
- }
- }
- }
- if (ModeProg1b == 1) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le programmateur 1b est activé
- {
- if (IterationProg1b[JourSemaine-1] == 1) // --------------------------------------------------------------------- // Si l'itération du jour de la semaine correspond
- {
- if (HrsDepartProg1b == HrsArretProg1b && MinsDepartProg1b == MinsArretProg1b) {return;} // .................... // Si l'heure de départ est égale à l'heure d'arrêt => Retour début loop()
- if (Hrs == HrsDepartProg1b && Mins == MinsDepartProg1b && Secs < 3) // ........................................ // Si l'heure courante est égale à l'heure de départ du programmateur 1a
- {
- digitalWrite(BrocheProg1LedVerte, HIGH); // Active la sortie du programmateur 1
- etatSortieProg1 = true; // Active l'état courant de la sortie du programmateur 1
- }
- else if (Hrs == HrsArretProg1b && Mins == MinsArretProg1b && Secs < 3) // ..................................... // Si l'heure courante est égale à l'heure d'arrêt du programmateur 1a
- {
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie du programmateur 1
- etatSortieProg1 = false; // Désactive l'état courant de la sortie du programmateur 1
- }
- }
- }
- if (ModeProg1c == 1) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le programmateur 1c est activé
- {
- if (IterationProg1c[JourSemaine-1] == 1) // --------------------------------------------------------------------- // Si l'itération du jour de la semaine correspond
- {
- if (HrsDepartProg1c == HrsArretProg1c && MinsDepartProg1c == MinsArretProg1c) {return;} // .................... // Si l'heure de départ est égale à l'heure d'arrêt => Retour début loop()
- if (Hrs == HrsDepartProg1c && Mins == MinsDepartProg1c && Secs < 3) // ........................................ // Si l'heure courante est égale à l'heure de départ du programmateur 1a
- {
- digitalWrite(BrocheProg1LedVerte, HIGH); // Active la sortie du programmateur 1
- etatSortieProg1 = true; // Active l'état courant de la sortie du programmateur 1
- }
- else if (Hrs == HrsArretProg1c && Mins == MinsArretProg1c && Secs < 3) // ..................................... // Si l'heure courante est égale à l'heure d'arrêt du programmateur 1a
- {
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie du programmateur 1
- etatSortieProg1 = false; // Désactive l'état courant de la sortie du programmateur 1
- }
- }
- }
- }
- //**************************************************************************************************************************************************************************
- if (ModeMinuterieProg2 == 1) // ************************************************************************************* // Si la minuterie 2 est activée
- {
- if (millis() - t1DebutTempoMinuterie2 >= DureeMinuterie2_ms && t1DebutTempoMinuterie2 != 0) // ++++++++++++++++++++ // Si la temporisation de la minuterie 2 est écoulée
- {
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie 2
- ModeMinuterieProg2 = 0; // Définit le mode de la minuterie 2
- etatSortieProg2 = false; // Désactive l'état courant de la sortie 2
- LastModeMinuterieProg2 = -1; // Force l'affichage du mode de la minuterie 2
- t1DebutTempoMinuterie2 = 0; // Réinitialise la temporisation de la minuterie 2 en ms
- }
- }
- else // ************************************************************************************************************* // Si la minuterie 2 n'est psa activée
- {
- //**************************************************************************************************************************************************************************
- if (ModeProg2a == 1) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le programmateur 2a est activé
- {
- if (IterationProg2a[JourSemaine-1] == 1) // --------------------------------------------------------------------- // Si l'itération du jour de la semaine correspond
- {
- if (HrsDepartProg2a == HrsArretProg2a && MinsDepartProg2a == MinsArretProg2a) {return;} // .................... // Si l'heure de départ est égale à l'heure d'arrêt => Retour début loop()
- if (Hrs == HrsDepartProg2a && Mins == MinsDepartProg2a && Secs < 3) // ........................................ // Si l'heure courante est égale à l'heure de départ du programmateur 2a
- {
- digitalWrite(BrocheProg2LedVerte, HIGH); // Active la sortie du programmateur 2
- etatSortieProg2 = true; // Active l'état courant de la sortie du programmateur 2
- }
- else if (Hrs == HrsArretProg2a && Mins == MinsArretProg2a && Secs < 3) // ..................................... // Si l'heure courante est égale à l'heure d'arrêt du programmateur 2a
- {
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie du programmateur 2
- etatSortieProg2 = false; // Désactive l'état courant de la sortie du programmateur 2
- }
- }
- }
- if (ModeProg2b == 1) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le programmateur 2b est activé
- {
- if (IterationProg2b[JourSemaine-1] == 1) // --------------------------------------------------------------------- // Si l'itération du jour de la semaine correspond
- {
- if (HrsDepartProg2b == HrsArretProg2b && MinsDepartProg2b == MinsArretProg2b) {return;} // .................... // Si l'heure de départ est égale à l'heure d'arrêt => Retour début loop()
- if (Hrs == HrsDepartProg2b && Mins == MinsDepartProg2b && Secs < 3) // ........................................ // Si l'heure courante est égale à l'heure de départ du programmateur 2a
- {
- digitalWrite(BrocheProg2LedVerte, HIGH); // Active la sortie du programmateur 2
- etatSortieProg2 = true; // Active l'état courant de la sortie du programmateur 2
- }
- else if (Hrs == HrsArretProg2b && Mins == MinsArretProg2b && Secs < 3) // ..................................... // Si l'heure courante est égale à l'heure d'arrêt du programmateur 2a
- {
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie du programmateur 2
- etatSortieProg2 = false; // Désactive l'état courant de la sortie du programmateur 2
- }
- }
- }
- if (ModeProg2c == 1) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si le programmateur 2c est activé
- {
- if (IterationProg2c[JourSemaine-1] == 1) // --------------------------------------------------------------------- // Si l'itération du jour de la semaine correspond
- {
- if (HrsDepartProg2c == HrsArretProg2c && MinsDepartProg2c == MinsArretProg2c) {return;} // .................... // Si l'heure de départ est égale à l'heure d'arrêt => Retour début loop()
- if (Hrs == HrsDepartProg2c && Mins == MinsDepartProg2c && Secs < 3) // ........................................ // Si l'heure courante est égale à l'heure de départ du programmateur 2a
- {
- digitalWrite(BrocheProg2LedVerte, HIGH); // Active la sortie du programmateur 2
- etatSortieProg2 = true; // Active l'état courant de la sortie du programmateur 2
- }
- else if (Hrs == HrsArretProg2c && Mins == MinsArretProg2c && Secs < 3) // ..................................... // Si l'heure courante est égale à l'heure d'arrêt du programmateur 2a
- {
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie du programmateur 2
- etatSortieProg2 = false; // Désactive l'état courant de la sortie du programmateur 2
- }
- }
- }
- }
- //**************************************************************************************************************************************************************************
- if (ModeThermostat1 == 1 && ModeMinuterieProg1 == 0) // ************************************************************* // Si le thermostat 1 est activé et Si la minuterie 1 est désactivée
- {
- if (temperatureCourante < temperatureThermostat1 - 0.5) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la température courante est inférieure à la température du thermostat - 0.5
- {
- if (!etatSortieProg1) // ---------------------------------------------------------------------------------------- // Si la sortie 1 n'est pas activée
- {
- digitalWrite(BrocheProg1LedVerte, HIGH); // Active la sortie 1
- etatSortieProg1 = true; // Active l'état courant de la sortie 1
- }
- }
- else if (temperatureCourante > temperatureThermostat1 + 0.5) // +++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la température courante est supérieure à la température du thermostat + 0.5
- {
- if (etatSortieProg1) // ----------------------------------------------------------------------------------------- // Si la sortie 1 est activée
- {
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie 1
- etatSortieProg1 = false; // Désactive l'état courant de la sortie 1
- }
- }
- }
- //**************************************************************************************************************************************************************************
- if (ModeThermostat2 == 1 && ModeMinuterieProg2 == 0) // ************************************************************* // Si le thermostat 2 est activé et Si la minuterie 2 est désactivée
- {
- if (temperatureCourante < temperatureThermostat2 - 0.5) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la température courante est inférieure à la température du thermostat - 0.5
- {
- if (!etatSortieProg2) // ---------------------------------------------------------------------------------------- // Si la sortie 2 n'est pas activée
- {
- digitalWrite(BrocheProg2LedVerte, HIGH); // Active la sortie 2
- etatSortieProg2 = true; // Active l'état courant de la sortie 2
- }
- }
- else if (temperatureCourante > temperatureThermostat2 + 0.5) // +++++++++++++++++++++++++++++++++++++++++++++++++++ // Si la température courante est supérieure à la température du thermostat + 0.5
- {
- if (etatSortieProg2) // ----------------------------------------------------------------------------------------- // Si la sortie 2 est activée
- {
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie 2
- etatSortieProg2 = false; // Désactive l'état courant de la sortie 2
- }
- }
- }
- //**************************************************************************************************************************************************************************
- etatBPONOFFProg1 = digitalRead(BrocheBPONOFFProg1); // ************************************************************** // Lit le bouton poussoir "BPONOFFProg1"
- if (LastetatBPONOFFProg1 != etatBPONOFFProg1) // ******************************************************************** // Si l'état du bouton poussoir "BPONOFFProg1" a changé
- {
- if (etatBPONOFFProg1 == LOW && LastetatBPONOFFProg1 == HIGH) // +++++++++++++++++++++++++++++++++++++++++++++++++++ // Si front descendant sur "BPONOFFProg1"
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (etatSortieProg1 == true) // --------------------------------------------------------------------------------- // Si l'état courant de la sortie du programmateur 1 est activé
- {
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie du programmateur 1
- etatSortieProg1 = false; // Désactive l'état courant de la sortie du programmateur 1
- }
- else if (etatSortieProg1 == false) // --------------------------------------------------------------------------- // Si l'état courant de la sortie du programmateur 1 est désactivé
- {
- digitalWrite(BrocheProg1LedVerte, HIGH); // Active la sortie du programmateur 1
- etatSortieProg1 = true; // Active l'état courant de la sortie du programmateur 1
- }
- LastetatBPONOFFProg1 = etatBPONOFFProg1; // Mémorise le dernier état courant de "BPONOFFProg1"
- }
- else {LastetatBPONOFFProg1 = HIGH;} // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si front montant sur "BPONOFFProg1"
- }
- //**************************************************************************************************************************************************************************
- etatBPONOFFProg2 = digitalRead(BrocheBPONOFFProg2); // ************************************************************** // Lit le bouton poussoir "BPONOFFProg2"
- if (LastetatBPONOFFProg2 != etatBPONOFFProg2) // ******************************************************************** // Si l'état du bouton poussoir "BPONOFFProg2" a changé
- {
- if (etatBPONOFFProg2 == LOW && LastetatBPONOFFProg2 == HIGH) // +++++++++++++++++++++++++++++++++++++++++++++++++++ // Si front descendant sur "BPONOFFProg2"
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (etatSortieProg2 == true) // --------------------------------------------------------------------------------- // Si l'état courant de la sortie du programmateur 2 est activé
- {
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie du programmateur 2
- etatSortieProg2 = false; // Désactive l'état courant de la sortie du programmateur 2
- }
- else if (etatSortieProg2 == false) // --------------------------------------------------------------------------- // Si l'état courant de la sortie du programmateur 2 est désactivé
- {
- digitalWrite(BrocheProg2LedVerte, HIGH); // Active la sortie du programmateur 2
- etatSortieProg2 = true; // Active l'état courant de la sortie du programmateur 2
- }
- LastetatBPONOFFProg2 = etatBPONOFFProg2; // Mémorise le dernier état courant de "BPONOFFProg2"
- }
- else {LastetatBPONOFFProg2 = HIGH;} // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Si front montant sur "BPONOFFProg2"
- }
- //**************************************************************************************************************************************************************************
- }
- //**************************************************************************************************************************************************************************
- //*** Fonction Gestion Buzzer **********************************************************************************************************************************************
- //**************************************************************************************************************************************************************************
- void Buzzer (int TempsH, int TempsL, int nb) // TempsH => délai buzzer ON, TempsL => délai buzzer OFF, nb => nombre de bips
- {
- for (int x = 1; x <= nb; x++) // ************************************************************************************ // Boucle le nombre de fois voulu passé par l'argument "int nb"
- {
- digitalWrite(BrocheBuzzer, HIGH); // Active le buzzer
- delay (TempsH); // Temporisation à l'état haut du buzzer pendant la durée passée par l'argument "int TempsH"
- digitalWrite(BrocheBuzzer, LOW); // Désactive le buzzer
- delay (TempsL); // Temporisation à l'état bas du buzzer pendant la durée passée par l'argument "int TempsL"
- }
- }
- //**************************************************************************************************************************************************************************
- //*** Fonction de la Gestion du Module RTC DS3234 **************************************************************************************************************************
- //**************************************************************************************************************************************************************************
- void FonctionLectureDS3234 ()
- {
- rtc.update(); // Lit l'heure et la date dans le module RTC DS3234
- Hrs = rtc.hour(); Mins = rtc.minute(); Secs = rtc.second(); // Récupère les heures, les minutes et les secondes courantes
- JourSemaine = rtc.day(); Jour = rtc.date(); Mois = rtc.month(); Annee = rtc.year(); // Récupère la date courante
- //Serial.println(Hrs); // Débug
- }
- //*************************************************************************************************************************************************************************
- //*** Fonction Gestion Tactile de l'écran TFT *****************************************************************************************************************************
- //*************************************************************************************************************************************************************************
- void GestionTactile ()
- {
- uint16_t xpos, ypos; // Coordonnées de l'écran TFT
- tp = ts.getPoint(); // Lit les coordonnées de pression sur l'écran TFT
- pinMode(XM, OUTPUT); // Reconfigure les broches en sorties pour la fonction tactile
- pinMode(YP, OUTPUT);
- pinMode(XP, OUTPUT);
- pinMode(YM, OUTPUT);
- //Serial.print(tp.y); Serial.print(' ');
- //Serial.print(tp.x); Serial.print(' '); Serial.println(tp.z);
- if (tp.z > PressionMin && tp.z < PressionMax) // ******************************************************************** // Niveau de pression correct
- {
- xpos = map(tp.y, TS_LEFT, TS_RT, tft.width(), 0); // Convertit les coordonnées annalogiques tp.x et tp.y
- ypos = map(tp.x, TS_TOP, TS_BOT, tft.height(), 0);
- Serial.print(xpos); Serial.print(' '); Serial.println(ypos); // Débug
- //**************************************************************************************************************************************************************************
- if (PageCourante == 0) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 0 => Page Principale
- {
- if (millis() - tempoPression >= 5000 && tempoPression != 0 || tempoPression == 0) // ---------------------------- // Si la temporisation entre deux pressions est écoulée ou Si elle est égale à 0
- {
- if (xpos > 408 && xpos < 430 && ypos > 112 && ypos < 155) // .................................................. // Pression sur la Touche ">" ......................
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 10; // Modifie la Page courante
- if (PageCourante > 20) {PageCourante = 0;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 18 && ypos > 112 && ypos < 155) // ................................................ // Pression sur la Touche "<" ......................
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 10; // Modifie la Page courante
- if (PageCourante < 0) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 40 && xpos < 375 && ypos > 56 && ypos < 126) // ............................................... // Pression sur l'heure courante ...................
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 500; // Modifie la Page courante => Réglage heure courante
- HrsReglages = Hrs; // Transfère les heures courantes dans les heures courantes de réglages
- MinsReglages = Mins; // Transfère les minutes courantes dans les heures courantes de réglages
- }
- else if (xpos > 75 && xpos < 340 && ypos > 138 && ypos < 180) // .............................................. // Pression sur la date courante ...................
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 501; // Modifie la Page courante => Réglage heure courante
- JourSemaineReglages = JourSemaine; // Transfère le jour de la semaine courant dans la variable de réglages
- JourReglages = Jour; // Transfère le jour courant dans la variable de réglages
- MoisReglages = Mois; // Transfère le mois courant dans la variable de réglages
- AnneeReglages = Annee; // Transfère l'année courante dans la variable de réglages
- }
- tempoPression = millis(); // (Dé)Redémarre la temporisation entre deux pression
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 500) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 500 => Réglage heure courante
- {
- if (xpos > 48 && xpos < 77 && ypos > 140 && ypos < 165) // ------------------------------------------------------ // Pression sur l'icone "+" Hrs Courantes ----------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsReglages++; if (HrsReglages > 23) {HrsReglages = 0;} // Modifie les heures courantes de réglages
- }
- else if (xpos > 112 && xpos < 140 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "-" Hrs Courantes ----------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsReglages--; if (HrsReglages < 0) {HrsReglages = 24;} // Modifie les heures courantes de réglages
- }
- else if (xpos > 270 && xpos < 300 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Courantes ---------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsReglages++; if (MinsReglages > 59) {MinsReglages = 0;} // Modifie les minutes courantes de réglages
- }
- else if (xpos > 332 && xpos < 360 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "-" Mins Courantes ---------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsReglages--; if (MinsReglages < 0) {MinsReglages = 59;} // Modifie les Minutes d'Arrêt de réglages
- }
- else if (xpos > 0 && xpos < 25 && ypos > 205 && ypos < 240) // -------------------------------------------------- // Pression sur l'icone "OK" -----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- Hrs = HrsReglages; // Transfère la variable temporaire de réglage dans les heures courantes
- Mins = MinsReglages; // Transfère la variable temporaire de réglage dans les minutes courantes
- rtc.setTime(Secs, Mins, Hrs, JourSemaine, Jour, Mois, Annee); // Réglage Heure / Date (Secs, Minutes, Heures, Jour de la semaine, Jour du mois, Mois, Année)
- PageCourante = 0; // Définit la Page courante 0
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 392 && xpos < 435 && ypos > 205 && ypos < 240) // ----------------------------------------------- // Pression sur l'icone "X" ------------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 500 ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 501) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 501 => Réglage de la date courante
- {
- if (xpos > 138 && xpos < 175 && ypos > 108 && ypos < 135) // ---------------------------------------------------- // Pression sur l'icone "+" Jour -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- JourReglages++; if (JourReglages > 31) {JourReglages = 1;} // Modifie les jours courants de réglages
- }
- else if (xpos > 313 && xpos < 347 && ypos > 108 && ypos < 135) // ----------------------------------------------- // Pression sur l'icone "-" Jour -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- JourReglages--; if (JourReglages < 0) {JourReglages = 31;} // Modifie les les jours courants de réglages
- }
- else if (xpos > 138 && xpos < 175 && ypos > 159 && ypos < 190) // ----------------------------------------------- // Pression sur l'icone "+" Mois -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MoisReglages++; if (MoisReglages > 12) {MoisReglages = 1;} // Modifie les mois courants de réglages
- }
- else if (xpos > 313 && xpos < 347 && ypos > 159 && ypos < 190) // ----------------------------------------------- // Pression sur l'icone "-" Mois -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MoisReglages--; if (MoisReglages < 0) {MoisReglages = 12;} // Modifie les mois courants de réglages
- }
- else if (xpos > 138 && xpos < 175 && ypos > 216 && ypos < 240) // ----------------------------------------------- // Pression sur l'icone "+" Année ------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- AnneeReglages++; if (AnneeReglages > 99) {AnneeReglages = 10;} // Modifie les années courantes de réglages
- }
- else if (xpos > 313 && xpos < 347 && ypos > 216 && ypos < 240) // ----------------------------------------------- // Pression sur l'icone "-" Mois -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- AnneeReglages--; if (AnneeReglages < 10) {AnneeReglages = 99;} // Modifie les années courantes de réglages
- }
- else if (xpos > 0 && xpos < 25 && ypos > 205 && ypos < 240) // -------------------------------------------------- // Pression sur l'icone "OK" -----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- JourSemaine = JourSemaineReglages; // Transfère la variable temporaire de réglage dans le jour de la semaine
- Jour = JourReglages; // Transfère la variable temporaire de réglage dans le jour
- Mois = MoisReglages; // Transfère la variable temporaire de réglage dans le mois
- Annee = AnneeReglages; // Transfère la variable temporaire de réglage dans l'annéé
- rtc.setTime(Secs, Mins, Hrs, JourSemaine, Jour, Mois, Annee); // Réglage Heure / Date (Secs, Minutes, Heures, Jour de la semaine, Jour du mois, Mois, Année)
- PageCourante = 0; // Définit la Page courante 0
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 392 && xpos < 435 && ypos > 205 && ypos < 240) // ----------------------------------------------- // Pression sur l'icone "X" ------------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 501 ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 10) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 10 => Prog 1a
- {
- if (xpos > 408 && xpos < 430 && ypos > 112 && ypos < 155) // ---------------------------------------------------- // Pression sur la Touche ">" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 10; // Modifie la Page courante
- if (PageCourante > 20) {PageCourante = 0;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 16 && ypos > 112 && ypos < 155) // -------------------------------------------------- // Pression sur la Touche "<" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 10; // Modifie la Page courante
- if (PageCourante < 0) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 10 -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 22 && ypos > 215 && ypos < 245) // -------------------------------------------------- // Pression sur la Touche "Haut" -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 1; // Modifie la Page courante
- if (PageCourante < 10) {PageCourante = 14;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 400 && xpos < 440 && ypos > 215 && ypos < 245) // ----------------------------------------------- // Pression sur la Touche "Bas" --------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 1; // Modifie la Page courante
- if (PageCourante > 14) {PageCourante = 10;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 230 && xpos < 380 && ypos > 56 && ypos < 124) // ------------------------------------------------ // Pression sur l'heure de départ ou d'arrêt -------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 110; // Définit la Page courante 110
- HrsDepartReglages = HrsDepartProg1a; // Transfère les heures de départ du programmateur 1a dans la variable temporaire de réglage
- MinsDepartReglages = MinsDepartProg1a; // Transfère les minutes de départ du programmateur 1a dans la variable temporaire de réglage
- HrsArretReglages = HrsArretProg1a; // Transfère les heures d'arrêt du programmateur 1a dans la variable temporaire de réglage
- MinsArretReglages = MinsArretProg1a; // Transfère les minutes d'arrêt du programmateur 1a dans la variable temporaire de réglage
- LastMins = -1; // Force l'affichage de l'heure sur la Page 110
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 13 && xpos < 50 && ypos > 147 && ypos < 185) // ------------------------------------------------- // Pression sur la Touche "D" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1a[0] = !IterationProg1a[0]; // Inverse l'itération 0 du programmateur 1a
- EEPROM.put(8, IterationProg1a[0]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 68 && xpos < 111 && ypos > 147 && ypos < 185) // ------------------------------------------------ // Pression sur la Touche "L" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1a[1] = !IterationProg1a[1]; // Inverse l'itération 1 du programmateur 1a
- EEPROM.put(10, IterationProg1a[1]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 129 && xpos < 168 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "M" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1a[2] = !IterationProg1a[2]; // Inverse l'itération 2 du programmateur 1a
- EEPROM.put(12, IterationProg1a[2]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 190 && xpos < 230 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "M" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1a[3] = !IterationProg1a[3]; // Inverse l'itération 3 du programmateur 1a
- EEPROM.put(14, IterationProg1a[3]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 250 && xpos < 290 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "J" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1a[4] = !IterationProg1a[4]; // Inverse l'itération 4 du programmateur 1a
- EEPROM.put(16, IterationProg1a[4]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 306 && xpos < 350 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "V" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1a[5] = !IterationProg1a[5]; // Inverse l'itération 5 du programmateur 1a
- EEPROM.put(18, IterationProg1a[5]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 367 && xpos < 405 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "S" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1a[6] = !IterationProg1a[6]; // Inverse l'itération 6 du programmateur 1a
- EEPROM.put(20, IterationProg1a[6]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 278 && xpos < 355 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "OFF" --------------------
- {
- if (ModeProg1a != 0) // ....................................................................................... // Si "ModeProg1a" est différent de 0
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie du programmateur 1
- ModeProg1a = 0; // Définit le mode du programmateur 1a
- EEPROM.put(22, ModeProg1a); // Mémorise le mode en EEPROM
- etatSortieProg1 = false; // Désactive l'état courant de la sortie du programmateur 1
- LastModeProg1a = -1; // Force l'affichage du mode du programmateur 1a
- }
- }
- else if (xpos > 153 && xpos < 250 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "AUTO" -------------------
- {
- if (ModeProg1a != 1) // ....................................................................................... // Si "ModeProg1a" est différent de 1
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- ModeProg1a = 1; // Définit le mode du programmateur 1a
- EEPROM.put(22, ModeProg1a); // Mémorise le mode en EEPROM
- LastModeProg1a = -1; // Force l'affichage du mode du programmateur 1a
- }
- }
- else if (xpos > 55 && xpos < 220 && ypos > 200 && ypos < 235) // ------------------------------------------------ // Pression sur la Touche "ON" ---------------------
- {
- if (ModeProg1a != 2) // ....................................................................................... // Si "ModeProg1a" est différent de 2
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg1LedVerte, HIGH); // Active la sortie du programmateur 1
- ModeProg1a = 2; // Définit le mode du programmateur 1a
- EEPROM.put(22, ModeProg1a); // Mémorise le mode en EEPROM
- etatSortieProg1 = true; // Active l'état courant de la sortie du programmateur 1
- LastModeProg1a = -1; // Force l'affichage du mode du programmateur 1a
- }
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 11) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 11 => Prog 1b
- {
- if (xpos > 408 && xpos < 430 && ypos > 112 && ypos < 155) // ---------------------------------------------------- // Pression sur la Touche ">" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 10; // Modifie la Page courante
- if (PageCourante > 20) {PageCourante = 0;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 16 && ypos > 112 && ypos < 155) // -------------------------------------------------- // Pression sur la Touche "<" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 10; // Modifie la Page courante
- if (PageCourante < 0) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 11 -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 22 && ypos > 215 && ypos < 245) // -------------------------------------------------- // Pression sur la Touche "Haut" -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 1; // Modifie la Page courante
- if (PageCourante < 10) {PageCourante = 14;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 400 && xpos < 440 && ypos > 215 && ypos < 245) // ----------------------------------------------- // Pression sur la Touche "Bas" --------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 1; // Modifie la Page courante
- if (PageCourante > 14) {PageCourante = 10;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 230 && xpos < 380 && ypos > 56 && ypos < 124) // ------------------------------------------------ // Pression sur l'heure de départ ou d'arrêt -------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 111; // Définit la Page courante 111
- HrsDepartReglages = HrsDepartProg1b; // Transfère les heures de départ du programmateur 1b dans la variable temporaire de réglage
- MinsDepartReglages = MinsDepartProg1b; // Transfère les minutes de départ du programmateur 1b dans la variable temporaire de réglage
- HrsArretReglages = HrsArretProg1b; // Transfère les heures d'arrêt du programmateur 1b dans la variable temporaire de réglage
- MinsArretReglages = MinsArretProg1b; // Transfère les minutes d'arrêt du programmateur 1b dans la variable temporaire de réglage
- LastMins = -1; // Force l'affichage de l'heure sur la Page 111
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 13 && xpos < 50 && ypos > 147 && ypos < 185) // ------------------------------------------------- // Pression sur la Touche "D" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1b[0] = !IterationProg1b[0]; // Inverse l'itération 0 du programmateur 1b
- EEPROM.put(32, IterationProg1b[0]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 68 && xpos < 111 && ypos > 147 && ypos < 185) // ------------------------------------------------ // Pression sur la Touche "L" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1b[1] = !IterationProg1b[1]; // Inverse l'itération 1 du programmateur 1b
- EEPROM.put(34, IterationProg1b[1]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 129 && xpos < 168 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "M" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1b[2] = !IterationProg1b[2]; // Inverse l'itération 2 du programmateur 1b
- EEPROM.put(36, IterationProg1b[2]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 190 && xpos < 230 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "M" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1b[3] = !IterationProg1b[3]; // Inverse l'itération 3 du programmateur 1b
- EEPROM.put(38, IterationProg1b[3]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 250 && xpos < 290 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "J" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1b[4] = !IterationProg1b[4]; // Inverse l'itération 4 du programmateur 1b
- EEPROM.put(40, IterationProg1b[4]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 306 && xpos < 350 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "V" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1b[5] = !IterationProg1b[5]; // Inverse l'itération 5 du programmateur 1b
- EEPROM.put(42, IterationProg1b[5]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 367 && xpos < 405 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "S" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1b[6] = !IterationProg1b[6]; // Inverse l'itération 6 du programmateur 1b
- EEPROM.put(44, IterationProg1b[6]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 278 && xpos < 355 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "OFF" --------------------
- {
- if (ModeProg1b != 0) // ....................................................................................... // Si "ModeProg1b" est différent de 0
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie du programmateur 1
- ModeProg1b = 0; // Définit le mode du programmateur 1b
- EEPROM.put(46, ModeProg1b); // Mémorise le mode en EEPROM
- etatSortieProg1 = false; // Désactive l'état courant de la sortie du programmateur 1
- LastModeProg1b = -1; // Force l'affichage du mode du programmateur 1b
- }
- }
- else if (xpos > 153 && xpos < 250 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "AUTO" -------------------
- {
- if (ModeProg1b != 1) // ....................................................................................... // Si "ModeProg1b" est différent de 1
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- ModeProg1b = 1; // Définit le mode du programmateur 1b
- EEPROM.put(46, ModeProg1b); // Mémorise le mode en EEPROM
- LastModeProg1b = -1; // Force l'affichage du mode du programmateur 1b
- }
- }
- else if (xpos > 55 && xpos < 220 && ypos > 200 && ypos < 235) // ------------------------------------------------ // Pression sur la Touche "ON" ---------------------
- {
- if (ModeProg1b != 2) // ....................................................................................... // Si "ModeProg1b" est différent de 2
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg1LedVerte, HIGH); // Active la sortie du programmateur 1
- ModeProg1b = 2; // Définit le mode du programmateur 1b
- EEPROM.put(46, ModeProg1b); // Mémorise le mode en EEPROM
- etatSortieProg1 = true; // Active l'état courant de la sortie du programmateur 1
- LastModeProg1b = -1; // Force l'affichage du mode du programmateur 1b
- }
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 12) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 12 => Prog 1c
- {
- if (xpos > 408 && xpos < 430 && ypos > 112 && ypos < 155) // ---------------------------------------------------- // Pression sur la Touche ">" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 10; // Modifie la Page courante
- if (PageCourante > 20) {PageCourante = 0;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 16 && ypos > 112 && ypos < 155) // -------------------------------------------------- // Pression sur la Touche "<" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 10; // Modifie la Page courante
- if (PageCourante < 0) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 12 -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 22 && ypos > 215 && ypos < 245) // -------------------------------------------------- // Pression sur la Touche "Haut" -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 1; // Modifie la Page courante
- if (PageCourante < 10) {PageCourante = 14;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 400 && xpos < 440 && ypos > 215 && ypos < 245) // ----------------------------------------------- // Pression sur la Touche "Bas" --------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 1; // Modifie la Page courante
- if (PageCourante > 14) {PageCourante = 10;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 230 && xpos < 380 && ypos > 56 && ypos < 124) // ------------------------------------------------ // Pression sur l'heure de départ ou d'arrêt -------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 112; // Définit la Page courante 111
- HrsDepartReglages = HrsDepartProg1c; // Transfère les heures de départ du programmateur 1c dans la variable temporaire de réglage
- MinsDepartReglages = MinsDepartProg1c; // Transfère les minutes de départ du programmateur 1c dans la variable temporaire de réglage
- HrsArretReglages = HrsArretProg1c; // Transfère les heures d'arrêt du programmateur 1c dans la variable temporaire de réglage
- MinsArretReglages = MinsArretProg1c; // Transfère les minutes d'arrêt du programmateur 1c dans la variable temporaire de réglage
- LastMins = -1; // Force l'affichage de l'heure sur la Page 112
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 13 && xpos < 50 && ypos > 147 && ypos < 185) // ------------------------------------------------- // Pression sur la Touche "D" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1c[0] = !IterationProg1c[0]; // Inverse l'itération 0 du programmateur 1c
- EEPROM.put(56, IterationProg1c[0]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 68 && xpos < 111 && ypos > 147 && ypos < 185) // ------------------------------------------------ // Pression sur la Touche "L" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1c[1] = !IterationProg1c[1]; // Inverse l'itération 1 du programmateur 1c
- EEPROM.put(58, IterationProg1c[1]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 129 && xpos < 168 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "M" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1c[2] = !IterationProg1c[2]; // Inverse l'itération 2 du programmateur 1c
- EEPROM.put(60, IterationProg1c[2]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 190 && xpos < 230 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "M" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1c[3] = !IterationProg1c[3]; // Inverse l'itération 3 du programmateur 1c
- EEPROM.put(62, IterationProg1c[3]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 250 && xpos < 290 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "J" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1c[4] = !IterationProg1c[4]; // Inverse l'itération 4 du programmateur 1c
- EEPROM.put(64, IterationProg1c[4]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 306 && xpos < 350 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "V" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1c[5] = !IterationProg1c[5]; // Inverse l'itération 5 du programmateur 1c
- EEPROM.put(66, IterationProg1c[5]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 367 && xpos < 405 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "S" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg1c[6] = !IterationProg1c[6]; // Inverse l'itération 6 du programmateur 1c
- EEPROM.put(68, IterationProg1c[6]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg1c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 278 && xpos < 355 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "OFF" --------------------
- {
- if (ModeProg1c != 0) // ....................................................................................... // Si "ModeProg1b" est différent de 0
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie du programmateur 1
- ModeProg1c = 0; // Définit le mode du programmateur 1c
- EEPROM.put(70, ModeProg1c); // Mémorise le mode en EEPROM
- etatSortieProg1 = false; // Désactive l'état courant de la sortie du programmateur 1
- LastModeProg1c = -1; // Force l'affichage du mode du programmateur 1c
- }
- }
- else if (xpos > 153 && xpos < 250 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "AUTO" -------------------
- {
- if (ModeProg1c != 1) // ....................................................................................... // Si "ModeProg1c" est différent de 1
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- ModeProg1c = 1; // Définit le mode du programmateur 1c
- EEPROM.put(70, ModeProg1c); // Mémorise le mode en EEPROM
- LastModeProg1c = -1; // Force l'affichage du mode du programmateur 1c
- }
- }
- else if (xpos > 55 && xpos < 220 && ypos > 200 && ypos < 235) // ------------------------------------------------ // Pression sur la Touche "ON" ---------------------
- {
- if (ModeProg1c != 2) // ....................................................................................... // Si "ModeProg1c" est différent de 2
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg1LedVerte, HIGH); // Active la sortie du programmateur 1
- ModeProg1c = 2; // Définit le mode du programmateur 1c
- EEPROM.put(70, ModeProg1c); // Mémorise le mode en EEPROM
- etatSortieProg1 = true; // Active l'état courant de la sortie du programmateur 1
- LastModeProg1c = -1; // Force l'affichage du mode du programmateur 1c
- }
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 13) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 13 => Minuterie Prog 1
- {
- if (xpos > 48 && xpos < 77 && ypos > 140 && ypos < 165) // ------------------------------------------------------ // Pression sur l'icone "+" Hrs Minuterie ----------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (ModeMinuterieProg1 == 1) // Si la minuterie 1 est activée
- {
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie 1
- ModeMinuterieProg1 = 0; // Définit le mode de la minuterie 1
- etatSortieProg1 = false; // Désactive l'état courant de la sortie 1
- LastModeMinuterieProg1 = -1; // Force l'affichage du mode de la minuterie 1
- t1DebutTempoMinuterie1 = 0; // Réinitialise la temporisation de la minuterie 1 en ms
- }
- HrsMinuterieReglageProg1++; if (HrsMinuterieReglageProg1 > 23) {HrsMinuterieReglageProg1 = 0;} // Modifie les heures de réglages de la minuterie 1
- }
- else if (xpos > 112 && xpos < 140 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "-" Hrs Minuterie ----------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (ModeMinuterieProg1 == 1) // Si la minuterie 1 est activée
- {
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie 1
- ModeMinuterieProg1 = 0; // Définit le mode de la minuterie 1
- etatSortieProg1 = false; // Désactive l'état courant de la sortie 1
- LastModeMinuterieProg1 = -1; // Force l'affichage du mode de la minuterie 1
- t1DebutTempoMinuterie1 = 0; // Réinitialise la temporisation de la minuterie 1 en ms
- }
- HrsMinuterieReglageProg1--; if (HrsMinuterieReglageProg1 < 0) {HrsMinuterieReglageProg1 = 23;} // Modifie les heures de réglages de la minuterie 1
- }
- else if (xpos > 270 && xpos < 300 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Minuterie ---------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (ModeMinuterieProg1 == 1) // Si la minuterie 1 est activée
- {
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie 1
- ModeMinuterieProg1 = 0; // Définit le mode de la minuterie 1
- etatSortieProg1 = false; // Désactive l'état courant de la sortie 1
- LastModeMinuterieProg1 = -1; // Force l'affichage du mode de la minuterie 1
- t1DebutTempoMinuterie1 = 0; // Réinitialise la temporisation de la minuterie 1 en ms
- }
- MinsMinuterieReglageProg1++; if (MinsMinuterieReglageProg1 > 59) {MinsMinuterieReglageProg1 = 0;} // Modifie les minutes de réglages de la minuterie 1
- }
- else if (xpos > 332 && xpos < 360 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "-" Mins Minuterie ---------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (ModeMinuterieProg1 == 1) // Si la minuterie 1 est activée
- {
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie 1
- ModeMinuterieProg1 = 0; // Définit le mode de la minuterie 1
- etatSortieProg1 = false; // Désactive l'état courant de la sortie 1
- LastModeMinuterieProg1 = -1; // Force l'affichage du mode de la minuterie 1
- t1DebutTempoMinuterie1 = 0; // Réinitialise la temporisation de la minuterie 1 en ms
- }
- MinsMinuterieReglageProg1--; if (MinsMinuterieReglageProg1 < 0) {MinsMinuterieReglageProg1 = 59;} // Modifie les Minutes de réglages de la minuterie 1
- }
- else if (xpos > 408 && xpos < 430 && ypos > 112 && ypos < 155) // ----------------------------------------------- // Pression sur la Touche ">" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 10; // Modifie la Page courante
- if (PageCourante > 20) {PageCourante = 0;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 16 && ypos > 112 && ypos < 155) // -------------------------------------------------- // Pression sur la Touche "<" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 10; // Modifie la Page courante
- if (PageCourante < 0) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 13 -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 22 && ypos > 215 && ypos < 245) // -------------------------------------------------- // Pression sur la Touche "Haut" -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 1; // Modifie la Page courante
- if (PageCourante < 10) {PageCourante = 14;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 400 && xpos < 440 && ypos > 215 && ypos < 245) // ----------------------------------------------- // Pression sur la Touche "Bas" --------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 1; // Modifie la Page courante
- if (PageCourante > 14) {PageCourante = 10;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 278 && xpos < 355 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "OFF" --------------------
- {
- if (ModeMinuterieProg1 != 0) // ............................................................................... // Si "ModeMinuterieProg1" est différent de 0
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg1LedVerte, LOW); // Désactive la sortie 1
- ModeMinuterieProg1 = 0; // Définit le mode de la minuterie 1
- etatSortieProg1 = false; // Désactive l'état courant de la sortie 1
- LastModeMinuterieProg1 = -1; // Force l'affichage du mode de la minuterie 1
- t1DebutTempoMinuterie1 = 0; // Réinitialise la temporisation de la minuterie 1 en ms
- }
- }
- else if (xpos > 55 && xpos < 220 && ypos > 200 && ypos < 235) // ------------------------------------------------ // Pression sur la Touche "ON" ---------------------
- {
- if (ModeMinuterieProg1 != 1) // ............................................................................... // Si "ModeMinuterieProg1" est différent de 1
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg1LedVerte, HIGH); // Active la sortie 1
- ModeMinuterieProg1 = 1; // Définit le mode de la minuterie 1
- etatSortieProg1 = true; // Active l'état courant de la sortie 1
- LastModeMinuterieProg1 = -1; // Force l'affichage du mode de la minuterie 1
- HrsMinuterieProg1 = HrsMinuterieReglageProg1; // Transfère les heures de réglages de la minuterie 1
- MinsMinuterieProg1 = MinsMinuterieReglageProg1; // Transfère les minutes de réglages de la minuterie 1
- DureeMinuterie1_ms = HrsMinuterieProg1*60ul*60ul*1000ul; // Convertit la durée de la minuterie 1 en ms
- DureeMinuterie1_ms = DureeMinuterie1_ms + MinsMinuterieProg1*60ul*1000ul;
- //Serial.println(DureeMinuterie1_ms); // Débug
- t1DebutTempoMinuterie1 = millis(); // Démarre la temporisation de la minuterie 1 en ms
- }
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 14) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 14 => Thermostat 1
- {
- if (xpos > 50 && xpos < 90 && ypos > 148 && ypos < 180) // ------------------------------------------------------ // Pression sur l'icone "+" Thermostat -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (ModeThermostat1 == 1) // Si le thermostat1 est activé
- {
- ModeThermostat1 = 0; // Définit le mode du thermostat 1
- LastModeThermostat1 = -1; // Force l'affichage du mode du thermostat 1
- }
- temperatureThermostat1 = temperatureThermostat1 + 0.5; // Modifie le thermostat 1
- if (temperatureThermostat1 > 28.0) {temperatureThermostat1 = 15.0;} // Borne le thermostat 1
- }
- else if (xpos > 308 && xpos < 344 && ypos > 148 && ypos < 180) // ----------------------------------------------- // Pression sur l'icone "-" Thermostat -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (ModeThermostat1 == 1) // Si le thermostat est activé
- {
- ModeThermostat1 = 0; // Définit le mode du thermostat 1
- LastModeThermostat1 = -1; // Force l'affichage du mode du thermostat 1
- }
- temperatureThermostat1 = temperatureThermostat1 - 0.5; // Modifie le thermostat 1
- if (temperatureThermostat1 < 15.0) {temperatureThermostat1 = 28.0;} // Borne le thermostat 1
- }
- else if (xpos > 408 && xpos < 430 && ypos > 112 && ypos < 155) // ----------------------------------------------- // Pression sur la Touche ">" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 10; // Modifie la Page courante
- if (PageCourante > 20) {PageCourante = 0;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 16 && ypos > 112 && ypos < 155) // -------------------------------------------------- // Pression sur la Touche "<" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 10; // Modifie la Page courante
- if (PageCourante < 0) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 14 -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 22 && ypos > 215 && ypos < 245) // -------------------------------------------------- // Pression sur la Touche "Haut" -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 1; // Modifie la Page courante
- if (PageCourante < 10) {PageCourante = 14;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 400 && xpos < 440 && ypos > 215 && ypos < 245) // ----------------------------------------------- // Pression sur la Touche "Bas" --------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 1; // Modifie la Page courante
- if (PageCourante > 14) {PageCourante = 10;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 278 && xpos < 355 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "OFF" --------------------
- {
- if (ModeThermostat1 != 0) // .................................................................................. // Si "ModeThermostat1" est différent de 0
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- ModeThermostat1 = 0; // Définit le mode du thermostat 1
- LastModeThermostat1 = -1; // Force l'affichage du mode du thermostat 1
- }
- }
- else if (xpos > 55 && xpos < 220 && ypos > 200 && ypos < 235) // ------------------------------------------------ // Pression sur la Touche "ON" ---------------------
- {
- if (ModeThermostat1 != 1) // .................................................................................. // Si "ModeThermostat1" est différent de 1
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- ModeThermostat1 = 1; // Définit le mode du thermostat 1
- LastModeThermostat1 = -1; // Force l'affichage du mode du thermostat 1
- }
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 20) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 20 => Prog 2a
- {
- if (xpos > 408 && xpos < 430 && ypos > 112 && ypos < 155) // ---------------------------------------------------- // Pression sur la Touche ">" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 10; // Modifie la Page courante
- if (PageCourante > 20) {PageCourante = 0;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 16 && ypos > 112 && ypos < 155) // -------------------------------------------------- // Pression sur la Touche "<" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 10; // Modifie la Page courante
- if (PageCourante < 0) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 20 -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 22 && ypos > 215 && ypos < 245) // -------------------------------------------------- // Pression sur la Touche "Haut" -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 1; // Modifie la Page courante
- if (PageCourante < 20) {PageCourante = 24;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 400 && xpos < 440 && ypos > 215 && ypos < 245) // ----------------------------------------------- // Pression sur la Touche "Bas" --------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 1; // Modifie la Page courante
- if (PageCourante > 24) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 230 && xpos < 380 && ypos > 56 && ypos < 124) // ------------------------------------------------ // Pression sur l'heure de départ ou d'arrêt -------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 210; // Définit la Page courante 210
- HrsDepartReglages = HrsDepartProg2a; // Transfère les heures de départ du programmateur 2a dans la variable temporaire de réglage
- MinsDepartReglages = MinsDepartProg2a; // Transfère les minutes de départ du programmateur 2a dans la variable temporaire de réglage
- HrsArretReglages = HrsArretProg2a; // Transfère les heures d'arrêt du programmateur 2a dans la variable temporaire de réglage
- MinsArretReglages = MinsArretProg2a; // Transfère les minutes d'arrêt du programmateur 2a dans la variable temporaire de réglage
- LastMins = -1; // Force l'affichage de l'heure sur la Page 210
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 13 && xpos < 50 && ypos > 147 && ypos < 185) // ------------------------------------------------- // Pression sur la Touche "D" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2a[0] = !IterationProg2a[0]; // Inverse l'itération 0 du programmateur 2a
- EEPROM.put(80, IterationProg2a[0]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 68 && xpos < 111 && ypos > 147 && ypos < 185) // ------------------------------------------------ // Pression sur la Touche "L" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2a[1] = !IterationProg2a[1]; // Inverse l'itération 1 du programmateur 2a
- EEPROM.put(82, IterationProg2a[1]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 129 && xpos < 168 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "M" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2a[2] = !IterationProg2a[2]; // Inverse l'itération 2 du programmateur 2a
- EEPROM.put(84, IterationProg2a[2]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 190 && xpos < 230 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "M" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2a[3] = !IterationProg2a[3]; // Inverse l'itération 3 du programmateur 2a
- EEPROM.put(86, IterationProg2a[3]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 250 && xpos < 290 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "J" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2a[4] = !IterationProg2a[4]; // Inverse l'itération 4 du programmateur 2a
- EEPROM.put(88, IterationProg2a[4]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 306 && xpos < 350 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "V" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2a[5] = !IterationProg2a[5]; // Inverse l'itération 5 du programmateur 2a
- EEPROM.put(90, IterationProg2a[5]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 367 && xpos < 405 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "S" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2a[6] = !IterationProg2a[6]; // Inverse l'itération 6 du programmateur 2a
- EEPROM.put(92, IterationProg2a[6]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2a = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 278 && xpos < 355 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "OFF" --------------------
- {
- if (ModeProg2a != 0) // ....................................................................................... // Si "ModeProg2a" est différent de 0
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie du programmateur 2
- ModeProg2a = 0; // Définit le mode du programmateur 2a
- EEPROM.put(94, ModeProg2a); // Mémorise le mode en EEPROM
- etatSortieProg2 = true; // Désactive l'état courant de la sortie du programmateur 2
- LastModeProg2a = -1; // Force l'affichage du mode du programmateur 2a
- }
- }
- else if (xpos > 153 && xpos < 250 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "AUTO" -------------------
- {
- if (ModeProg2a != 1) // ....................................................................................... // Si "ModeProg2a" est différent de 1
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- ModeProg2a = 1; // Définit le mode du programmateur 2a
- EEPROM.put(94, ModeProg2a); // Mémorise le mode en EEPROM
- LastModeProg2a = -1; // Force l'affichage du mode du programmateur 2a
- }
- }
- else if (xpos > 55 && xpos < 220 && ypos > 200 && ypos < 235) // ------------------------------------------------ // Pression sur la Touche "ON" ---------------------
- {
- if (ModeProg2a != 2) // ....................................................................................... // Si "ModeProg2a" est différent de 2
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg2LedVerte, HIGH); // Active la sortie du programmateur 2
- ModeProg2a = 2; // Définit le mode du programmateur 2a
- EEPROM.put(94, ModeProg2a); // Mémorise le mode en EEPROM
- etatSortieProg2 = true; // Active l'état courant de la sortie du programmateur 2
- LastModeProg2a = -1; // Force l'affichage du mode du programmateur 2a
- }
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 21) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 20 => Prog 2b
- {
- if (xpos > 408 && xpos < 430 && ypos > 112 && ypos < 155) // ---------------------------------------------------- // Pression sur la Touche ">" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 10; // Modifie la Page courante
- if (PageCourante > 20) {PageCourante = 0;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 16 && ypos > 112 && ypos < 155) // -------------------------------------------------- // Pression sur la Touche "<" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 10; // Modifie la Page courante
- if (PageCourante < 0) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 21 -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 22 && ypos > 215 && ypos < 245) // -------------------------------------------------- // Pression sur la Touche "Haut" -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 1; // Modifie la Page courante
- if (PageCourante < 20) {PageCourante = 24;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 400 && xpos < 440 && ypos > 215 && ypos < 245) // ----------------------------------------------- // Pression sur la Touche "Bas" --------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 1; // Modifie la Page courante
- if (PageCourante > 24) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 230 && xpos < 380 && ypos > 56 && ypos < 124) // ------------------------------------------------ // Pression sur l'heure de départ ou d'arrêt -------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 211; // Définit la Page courante 211
- HrsDepartReglages = HrsDepartProg2b; // Transfère les heures de départ du programmateur 2b dans la variable temporaire de réglage
- MinsDepartReglages = MinsDepartProg2b; // Transfère les minutes de départ du programmateur 2b dans la variable temporaire de réglage
- HrsArretReglages = HrsArretProg2b; // Transfère les heures d'arrêt du programmateur 2b dans la variable temporaire de réglage
- MinsArretReglages = MinsArretProg2b; // Transfère les minutes d'arrêt du programmateur 2b dans la variable temporaire de réglage
- LastMins = -1; // Force l'affichage de l'heure sur la Page 211
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 13 && xpos < 50 && ypos > 147 && ypos < 185) // ------------------------------------------------- // Pression sur la Touche "D" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2b[0] = !IterationProg2b[0]; // Inverse l'itération 0 du programmateur 2b
- EEPROM.put(104, IterationProg2b[0]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 68 && xpos < 111 && ypos > 147 && ypos < 185) // ------------------------------------------------ // Pression sur la Touche "L" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2b[1] = !IterationProg2b[1]; // Inverse l'itération 1 du programmateur 2b
- EEPROM.put(106, IterationProg2b[1]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 129 && xpos < 168 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "M" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2b[2] = !IterationProg2b[2]; // Inverse l'itération 2 du programmateur 2b
- EEPROM.put(108, IterationProg2b[2]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 190 && xpos < 230 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "M" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2b[3] = !IterationProg2b[3]; // Inverse l'itération 3 du programmateur 2b
- EEPROM.put(110, IterationProg2b[3]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 250 && xpos < 290 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "J" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2b[4] = !IterationProg2b[4]; // Inverse l'itération 4 du programmateur 2b
- EEPROM.put(112, IterationProg2b[4]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 306 && xpos < 350 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "V" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2b[5] = !IterationProg2b[5]; // Inverse l'itération 5 du programmateur 2b
- EEPROM.put(114, IterationProg2b[5]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 367 && xpos < 405 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "S" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2b[6] = !IterationProg2b[6]; // Inverse l'itération 6 du programmateur 2b
- EEPROM.put(116, IterationProg2b[6]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2b = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 278 && xpos < 355 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "OFF" --------------------
- {
- if (ModeProg2b != 0) // ....................................................................................... // Si "ModeProg2b" est différent de 0
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie du programmateur 2
- ModeProg2b = 0; // Définit le mode du programmateur 2b
- EEPROM.put(118, ModeProg2b); // Mémorise le mode en EEPROM
- etatSortieProg2 = false; // Désactive l'état courant de la sortie du programmateur 2
- LastModeProg2b = -1; // Force l'affichage du mode du programmateur 2b
- }
- }
- else if (xpos > 153 && xpos < 250 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "AUTO" -------------------
- {
- if (ModeProg2b != 1) // ....................................................................................... // Si "ModeProg2b" est différent de 1
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- ModeProg2b = 1; // Définit le mode du programmateur 2b
- EEPROM.put(118, ModeProg2b); // Mémorise le mode en EEPROM
- LastModeProg2b = -1; // Force l'affichage du mode du programmateur 2b
- }
- }
- else if (xpos > 55 && xpos < 220 && ypos > 200 && ypos < 235) // ------------------------------------------------ // Pression sur la Touche "ON" ---------------------
- {
- if (ModeProg2b != 2) // ....................................................................................... // Si "ModeProg2b" est différent de 2
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg2LedVerte, HIGH); // Active la sortie du programmateur 2
- ModeProg2b = 2; // Définit le mode du programmateur 2b
- EEPROM.put(118, ModeProg2b); // Mémorise le mode en EEPROM
- etatSortieProg2 = true; // Active l'état courant de la sortie du programmateur 2
- LastModeProg2b = -1; // Force l'affichage du mode du programmateur 2b
- }
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 22) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 22 => Prog 2c
- {
- if (xpos > 408 && xpos < 430 && ypos > 112 && ypos < 155) // ---------------------------------------------------- // Pression sur la Touche ">" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 10; // Modifie la Page courante
- if (PageCourante > 20) {PageCourante = 0;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 16 && ypos > 112 && ypos < 155) // -------------------------------------------------- // Pression sur la Touche "<" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 10; // Modifie la Page courante
- if (PageCourante < 0) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 22 -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 22 && ypos > 215 && ypos < 245) // -------------------------------------------------- // Pression sur la Touche "Haut" -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 1; // Modifie la Page courante
- if (PageCourante < 20) {PageCourante = 24;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 400 && xpos < 440 && ypos > 215 && ypos < 245) // ----------------------------------------------- // Pression sur la Touche "Bas" --------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 1; // Modifie la Page courante
- if (PageCourante > 24) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 230 && xpos < 380 && ypos > 56 && ypos < 124) // ------------------------------------------------ // Pression sur l'heure de départ ou d'arrêt -------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 212; // Définit la Page courante 212
- HrsDepartReglages = HrsDepartProg2c; // Transfère les heures de départ du programmateur 2c dans la variable temporaire de réglage
- MinsDepartReglages = MinsDepartProg2c; // Transfère les minutes de départ du programmateur 2c dans la variable temporaire de réglage
- HrsArretReglages = HrsArretProg2c; // Transfère les heures d'arrêt du programmateur 2c dans la variable temporaire de réglage
- MinsArretReglages = MinsArretProg2c; // Transfère les minutes d'arrêt du programmateur 2c dans la variable temporaire de réglage
- LastMins = -1; // Force l'affichage de l'heure sur la Page 212
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 13 && xpos < 50 && ypos > 147 && ypos < 185) // ------------------------------------------------- // Pression sur la Touche "D" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2c[0] = !IterationProg2c[0]; // Inverse l'itération 0 du programmateur 2c
- EEPROM.put(128, IterationProg2c[0]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 68 && xpos < 111 && ypos > 147 && ypos < 185) // ------------------------------------------------ // Pression sur la Touche "L" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2c[1] = !IterationProg2c[1]; // Inverse l'itération 1 du programmateur 2c
- EEPROM.put(130, IterationProg2c[1]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 129 && xpos < 168 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "M" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2c[2] = !IterationProg2c[2]; // Inverse l'itération 2 du programmateur 2c
- EEPROM.put(132, IterationProg2c[2]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 190 && xpos < 230 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "M" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2c[3] = !IterationProg2c[3]; // Inverse l'itération 3 du programmateur 2c
- EEPROM.put(134, IterationProg2c[3]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 250 && xpos < 290 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "J" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2c[4] = !IterationProg2c[4]; // Inverse l'itération 4 du programmateur 2c
- EEPROM.put(136, IterationProg2c[4]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 306 && xpos < 350 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "V" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2c[5] = !IterationProg2c[5]; // Inverse l'itération 5 du programmateur 2c
- EEPROM.put(138, IterationProg2c[5]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 367 && xpos < 405 && ypos > 147 && ypos < 185) // ----------------------------------------------- // Pression sur la Touche "S" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- IterationProg2c[6] = !IterationProg2c[6]; // Inverse l'itération 6 du programmateur 2c
- EEPROM.put(140, IterationProg2c[6]); // Mémorise l'itération en EEPROM
- LastAffichageIterationProg2c = -1; // Force l'affichage de l'itération du programmateur 1a
- }
- else if (xpos > 278 && xpos < 355 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "OFF" --------------------
- {
- if (ModeProg2c != 0) // ....................................................................................... // Si "ModeProg2c" est différent de 0
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie du programmateur 2
- ModeProg2c = 0; // Définit le mode du programmateur 2c
- EEPROM.put(142, ModeProg2c); // Mémorise le mode en EEPROM
- etatSortieProg2 = false; // Désactive l'état courant de la sortie du programmateur 2
- LastModeProg2c = -1; // Force l'affichage du mode du programmateur 2c
- }
- }
- else if (xpos > 153 && xpos < 250 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "AUTO" -------------------
- {
- if (ModeProg2c != 1) // ....................................................................................... // Si "ModeProg2c" est différent de 1
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- ModeProg2c = 1; // Définit le mode du programmateur 2c
- EEPROM.put(142, ModeProg2c); // Mémorise le mode en EEPROM
- LastModeProg2c = -1; // Force l'affichage du mode du programmateur 2c
- }
- }
- else if (xpos > 55 && xpos < 220 && ypos > 200 && ypos < 235) // ------------------------------------------------ // Pression sur la Touche "ON" ---------------------
- {
- if (ModeProg2c != 2) // ....................................................................................... // Si "ModeProg2c" est différent de 2
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg2LedVerte, HIGH); // Active la sortie du programmateur 2
- ModeProg2c = 2; // Définit le mode du programmateur 2c
- EEPROM.put(142, ModeProg2c); // Mémorise le mode en EEPROM
- etatSortieProg2 = true; // Active l'état courant de la sortie du programmateur 2
- LastModeProg2c = -1; // Force l'affichage du mode du programmateur 2c
- }
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 23) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 23 => Minuterie Prog 2
- {
- if (xpos > 48 && xpos < 77 && ypos > 140 && ypos < 165) // ------------------------------------------------------ // Pression sur l'icone "+" Hrs Minuterie ----------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (ModeMinuterieProg2 == 1) // Si la minuterie 2 est activée
- {
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie 2
- ModeMinuterieProg2 = 0; // Définit le mode de la minuterie 2
- etatSortieProg2 = false; // Désactive l'état courant de la sortie 2
- LastModeMinuterieProg2 = -1; // Force l'affichage du mode de la minuterie 2
- t1DebutTempoMinuterie2 = 0; // Réinitialise la temporisation de la minuterie 2 en ms
- }
- HrsMinuterieReglageProg2++; if (HrsMinuterieReglageProg2 > 23) {HrsMinuterieReglageProg2 = 0;} // Modifie les heures de réglages de la minuterie 2
- }
- else if (xpos > 112 && xpos < 140 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "-" Hrs Minuterie ----------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (ModeMinuterieProg2 == 1) // Si la minuterie 2 est activée
- {
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie 2
- ModeMinuterieProg2 = 0; // Définit le mode de la minuterie 2
- etatSortieProg2 = false; // Désactive l'état courant de la sortie 2
- LastModeMinuterieProg2 = -1; // Force l'affichage du mode de la minuterie 2
- t1DebutTempoMinuterie2 = 0; // Réinitialise la temporisation de la minuterie 2 en ms
- }
- HrsMinuterieReglageProg2--; if (HrsMinuterieReglageProg2 < 0) {HrsMinuterieReglageProg2 = 23;} // Modifie les heures de réglages de la minuterie 2
- }
- else if (xpos > 270 && xpos < 300 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Minuterie ---------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (ModeMinuterieProg2 == 1) // Si la minuterie 2 est activée
- {
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie 2
- ModeMinuterieProg2 = 0; // Définit le mode de la minuterie 2
- etatSortieProg2 = false; // Désactive l'état courant de la sortie 2
- LastModeMinuterieProg2 = -1; // Force l'affichage du mode de la minuterie 2
- t1DebutTempoMinuterie2 = 0; // Réinitialise la temporisation de la minuterie 2 en ms
- }
- MinsMinuterieReglageProg2++; if (MinsMinuterieReglageProg2 > 59) {MinsMinuterieReglageProg2 = 0;} // Modifie les minutes de réglages de la minuterie 2
- }
- else if (xpos > 332 && xpos < 360 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "-" Mins Minuterie ---------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (ModeMinuterieProg2 == 1) // Si la minuterie 2 est activée
- {
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie 2
- ModeMinuterieProg2 = 0; // Définit le mode de la minuterie 2
- etatSortieProg2 = false; // Désactive l'état courant de la sortie 2
- LastModeMinuterieProg2 = -1; // Force l'affichage du mode de la minuterie 2
- t1DebutTempoMinuterie2 = 0; // Réinitialise la temporisation de la minuterie 2 en ms
- }
- MinsMinuterieReglageProg2--; if (MinsMinuterieReglageProg2 < 0) {MinsMinuterieReglageProg2 = 59;} // Modifie les Minutes de réglages de la minuterie 2
- }
- else if (xpos > 408 && xpos < 430 && ypos > 112 && ypos < 155) // ----------------------------------------------- // Pression sur la Touche ">" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 10; // Modifie la Page courante
- if (PageCourante > 20) {PageCourante = 0;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 16 && ypos > 112 && ypos < 155) // -------------------------------------------------- // Pression sur la Touche "<" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 10; // Modifie la Page courante
- if (PageCourante < 0) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 23 -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 22 && ypos > 215 && ypos < 245) // -------------------------------------------------- // Pression sur la Touche "Haut" -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 1; // Modifie la Page courante
- if (PageCourante < 10) {PageCourante = 24;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 400 && xpos < 440 && ypos > 215 && ypos < 245) // ----------------------------------------------- // Pression sur la Touche "Bas" --------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 1; // Modifie la Page courante
- if (PageCourante > 24) {PageCourante = 10;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 278 && xpos < 355 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "OFF" --------------------
- {
- if (ModeMinuterieProg2 != 0) // ............................................................................... // Si "ModeMinuterieProg2" est différent de 0
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg2LedVerte, LOW); // Désactive la sortie 2
- ModeMinuterieProg2 = 0; // Définit le mode de la minuterie 2
- etatSortieProg2 = false; // Désactive l'état courant de la sortie 2
- LastModeMinuterieProg2 = -1; // Force l'affichage du mode de la minuterie 2
- t1DebutTempoMinuterie2 = 0; // Réinitialise la temporisation de la minuterie 2 en ms
- }
- }
- else if (xpos > 55 && xpos < 220 && ypos > 200 && ypos < 235) // ------------------------------------------------ // Pression sur la Touche "ON" ---------------------
- {
- if (ModeMinuterieProg2 != 1) // ............................................................................... // Si "ModeMinuterieProg2" est différent de 1
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- digitalWrite(BrocheProg2LedVerte, HIGH); // Active la sortie 2
- ModeMinuterieProg2 = 1; // Définit le mode de la minuterie 2
- etatSortieProg2 = true; // Active l'état courant de la sortie 2
- LastModeMinuterieProg2 = -1; // Force l'affichage du mode de la minuterie 2
- HrsMinuterieProg2 = HrsMinuterieReglageProg2; // Transfère les heures de réglages de la minuterie 2
- MinsMinuterieProg2 = MinsMinuterieReglageProg2; // Transfère les minutes de réglages de la minuterie 2
- DureeMinuterie2_ms = HrsMinuterieProg2*60ul*60ul*1000ul; // Convertit la durée de la minuterie 2 en ms
- DureeMinuterie2_ms = DureeMinuterie2_ms + MinsMinuterieProg2*60ul*1000ul;
- //Serial.println(DureeMinuterie2_ms); // Débug
- t1DebutTempoMinuterie2 = millis(); // Démarre la temporisation de la minuterie 2 en ms
- }
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 24) // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 24 => Thermostat 2
- {
- if (xpos > 50 && xpos < 90 && ypos > 148 && ypos < 180) // ------------------------------------------------------ // Pression sur l'icone "+" Thermostat -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (ModeThermostat2 == 1) // Si le thermostat1 est activé
- {
- ModeThermostat2 = 0; // Définit le mode du thermostat 2
- LastModeThermostat2 = -1; // Force l'affichage du mode du thermostat 2
- }
- temperatureThermostat2 = temperatureThermostat2 + 0.5; // Modifie le thermostat 2
- if (temperatureThermostat2 > 28.0) {temperatureThermostat2 = 15.0;} // Borne le thermostat 2
- }
- else if (xpos > 308 && xpos < 344 && ypos > 148 && ypos < 180) // ----------------------------------------------- // Pression sur l'icone "-" Thermostat -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- if (ModeThermostat2 == 1) // Si le thermostat est activé
- {
- ModeThermostat2 = 0; // Définit le mode du thermostat 2
- LastModeThermostat2 = -1; // Force l'affichage du mode du thermostat 2
- }
- temperatureThermostat2 = temperatureThermostat2 - 0.5; // Modifie le thermostat 2
- if (temperatureThermostat2 < 15.0) {temperatureThermostat2 = 28.0;} // Borne le thermostat 2
- }
- else if (xpos > 408 && xpos < 430 && ypos > 112 && ypos < 155) // ----------------------------------------------- // Pression sur la Touche ">" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 10; // Modifie la Page courante
- if (PageCourante > 20) {PageCourante = 0;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 16 && ypos > 112 && ypos < 155) // -------------------------------------------------- // Pression sur la Touche "<" ----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 10; // Modifie la Page courante
- if (PageCourante < 0) {PageCourante = 20;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 24 -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 22 && ypos > 215 && ypos < 245) // -------------------------------------------------- // Pression sur la Touche "Haut" -------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante - 1; // Modifie la Page courante
- if (PageCourante < 10) {PageCourante = 24;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 400 && xpos < 440 && ypos > 215 && ypos < 245) // ----------------------------------------------- // Pression sur la Touche "Bas" --------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = PageCourante + 1; // Modifie la Page courante
- if (PageCourante > 24) {PageCourante = 10;} // Borne la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 278 && xpos < 355 && ypos > 200 && ypos < 235) // ----------------------------------------------- // Pression sur la Touche "OFF" --------------------
- {
- if (ModeThermostat2 != 0) // .................................................................................. // Si "ModeThermostat2" est différent de 0
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- ModeThermostat2 = 0; // Définit le mode du thermostat 2
- LastModeThermostat2 = -1; // Force l'affichage du mode du thermostat 2
- }
- }
- else if (xpos > 55 && xpos < 220 && ypos > 200 && ypos < 235) // ------------------------------------------------ // Pression sur la Touche "ON" ---------------------
- {
- if (ModeThermostat2 != 1) // .................................................................................. // Si "ModeThermostat2" est différent de 1
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- ModeThermostat2 = 1; // Définit le mode du thermostat 2
- LastModeThermostat2 = -1; // Force l'affichage du mode du thermostat 2
- }
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 110) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 110 => Réglages horaires Prog 1a
- {
- if (xpos > 48 && xpos < 77 && ypos > 140 && ypos < 165) // ------------------------------------------------------ // Pression sur l'icone "+" Hrs Départ -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsDepartReglages++; if (HrsDepartReglages > 23) {HrsDepartReglages = 0;} // Modifie les Heures de Départ de réglages
- }
- else if (xpos > 112 && xpos < 140 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Départ ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsDepartReglages++; if (MinsDepartReglages > 59) {MinsDepartReglages = 0;} // Modifie les Minutes de Départ de réglages
- }
- else if (xpos > 270 && xpos < 300 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Hrs Arrêt --------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsArretReglages++; if (HrsArretReglages > 23) {HrsArretReglages = 0;} // Modifie les Heures d'Arrêt de réglages
- }
- else if (xpos > 332 && xpos < 360 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Arrêt -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsArretReglages++; if (MinsArretReglages > 59) {MinsArretReglages = 0;} // Modifie les Minutes d'Arrêt de réglages
- }
- else if (xpos > 0 && xpos < 25 && ypos > 205 && ypos < 240) // -------------------------------------------------- // Pression sur l'icone "OK" -----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsDepartProg1a = HrsDepartReglages; // Transfère la variable temporaire de réglage dans les heures de départ du programmateur 1a
- MinsDepartProg1a = MinsDepartReglages; // Transfère la variable temporaire de réglage dans les minutes de départ du programmateur 1a
- HrsArretProg1a = HrsArretReglages; // Transfère la variable temporaire de réglage dans les heures d'arrêt du programmateur 1a
- MinsArretProg1a = MinsArretReglages; // Transfère la variable temporaire de réglage dans les minutes d'arrêt du programmateur 1a
- EEPROM.put(0, HrsDepartProg1a); // Mémorise les heures de départ du programmateur 1a
- EEPROM.put(2, MinsDepartProg1a); // Mémorise les minutes de départ du programmateur 1a
- EEPROM.put(4, HrsArretProg1a); // Mémorise les heures d'arrêt du programmateur 1a
- EEPROM.put(6, MinsArretProg1a); // Mémorise les minutes d'arrêt du programmateur 1a
- PageCourante = 10; // Définit la Page courante 10
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 392 && xpos < 435 && ypos > 205 && ypos < 240) // ----------------------------------------------- // Pression sur l'icone "X" ------------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 10; // Définit la Page courante 10
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 110 ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 111) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 111 => Réglages horaires Prog 1b
- {
- if (xpos > 48 && xpos < 77 && ypos > 140 && ypos < 165) // ------------------------------------------------------ // Pression sur l'icone "+" Hrs Départ -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsDepartReglages++; if (HrsDepartReglages > 23) {HrsDepartReglages = 0;} // Modifie les Heures de Départ de réglages
- }
- else if (xpos > 112 && xpos < 140 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Départ ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsDepartReglages++; if (MinsDepartReglages > 59) {MinsDepartReglages = 0;} // Modifie les Minutes de Départ de réglages
- }
- else if (xpos > 270 && xpos < 300 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Hrs Arrêt --------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsArretReglages++; if (HrsArretReglages > 23) {HrsArretReglages = 0;} // Modifie les Heures d'Arrêt de réglages
- }
- else if (xpos > 332 && xpos < 360 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Arrêt -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsArretReglages++; if (MinsArretReglages > 59) {MinsArretReglages = 0;} // Modifie les Minutes d'Arrêt de réglages
- }
- else if (xpos > 0 && xpos < 25 && ypos > 205 && ypos < 240) // -------------------------------------------------- // Pression sur l'icone "OK" -----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsDepartProg1b = HrsDepartReglages; // Transfère la variable temporaire de réglage dans les heures de départ du programmateur 1b
- MinsDepartProg1b = MinsDepartReglages; // Transfère la variable temporaire de réglage dans les minutes de départ du programmateur 1b
- HrsArretProg1b = HrsArretReglages; // Transfère la variable temporaire de réglage dans les heures d'arrêt du programmateur 1b
- MinsArretProg1b = MinsArretReglages; // Transfère la variable temporaire de réglage dans les minutes d'arrêt du programmateur 1b
- EEPROM.put(24, HrsDepartProg1b); // Mémorise les heures de départ du programmateur 1b
- EEPROM.put(26, MinsDepartProg1b); // Mémorise les minutes de départ du programmateur 1b
- EEPROM.put(28, HrsArretProg1b); // Mémorise les heures d'arrêt du programmateur 1b
- EEPROM.put(30, MinsArretProg1b); // Mémorise les minutes d'arrêt du programmateur 1b
- PageCourante = 11; // Définit la Page courante 11
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 392 && xpos < 435 && ypos > 205 && ypos < 240) // ----------------------------------------------- // Pression sur l'icone "X" ------------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 11; // Définit la Page courante 11
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 111 ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 112) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 112 => Réglages horaires Prog 1c
- {
- if (xpos > 48 && xpos < 77 && ypos > 140 && ypos < 165) // ------------------------------------------------------ // Pression sur l'icone "+" Hrs Départ -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsDepartReglages++; if (HrsDepartReglages > 23) {HrsDepartReglages = 0;} // Modifie les Heures de Départ de réglages
- }
- else if (xpos > 112 && xpos < 140 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Départ ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsDepartReglages++; if (MinsDepartReglages > 59) {MinsDepartReglages = 0;} // Modifie les Minutes de Départ de réglages
- }
- else if (xpos > 270 && xpos < 300 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Hrs Arrêt --------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsArretReglages++; if (HrsArretReglages > 23) {HrsArretReglages = 0;} // Modifie les Heures d'Arrêt de réglages
- }
- else if (xpos > 332 && xpos < 360 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Arrêt -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsArretReglages++; if (MinsArretReglages > 59) {MinsArretReglages = 0;} // Modifie les Minutes d'Arrêt de réglages
- }
- else if (xpos > 0 && xpos < 25 && ypos > 205 && ypos < 240) // -------------------------------------------------- // Pression sur l'icone "OK" -----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsDepartProg1c = HrsDepartReglages; // Transfère la variable temporaire de réglage dans les heures de départ du programmateur 1c
- MinsDepartProg1c = MinsDepartReglages; // Transfère la variable temporaire de réglage dans les minutes de départ du programmateur 1c
- HrsArretProg1c = HrsArretReglages; // Transfère la variable temporaire de réglage dans les heures d'arrêt du programmateur 1c
- MinsArretProg1c = MinsArretReglages; // Transfère la variable temporaire de réglage dans les minutes d'arrêt du programmateur 1c
- EEPROM.put(48, HrsDepartProg1c); // Mémorise les heures de départ du programmateur 1c
- EEPROM.put(50, MinsDepartProg1c); // Mémorise les minutes de départ du programmateur 1c
- EEPROM.put(52, HrsArretProg1c); // Mémorise les heures d'arrêt du programmateur 1c
- EEPROM.put(54, MinsArretProg1c); // Mémorise les minutes d'arrêt du programmateur 1c
- PageCourante = 12; // Définit la Page courante 12
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 392 && xpos < 435 && ypos > 205 && ypos < 240) // ----------------------------------------------- // Pression sur l'icone "X" ------------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 12; // Définit la Page courante 12
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 112 ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 210) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 110 => Réglages horaires Prog 2a
- {
- if (xpos > 48 && xpos < 77 && ypos > 140 && ypos < 165) // ------------------------------------------------------ // Pression sur l'icone "+" Hrs Départ -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsDepartReglages++; if (HrsDepartReglages > 23) {HrsDepartReglages = 0;} // Modifie les Heures de Départ de réglages
- }
- else if (xpos > 112 && xpos < 140 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Départ ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsDepartReglages++; if (MinsDepartReglages > 59) {MinsDepartReglages = 0;} // Modifie les Minutes de Départ de réglages
- }
- else if (xpos > 270 && xpos < 300 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Hrs Arrêt --------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsArretReglages++; if (HrsArretReglages > 23) {HrsArretReglages = 0;} // Modifie les Heures d'Arrêt de réglages
- }
- else if (xpos > 332 && xpos < 360 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Arrêt -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsArretReglages++; if (MinsArretReglages > 59) {MinsArretReglages = 0;} // Modifie les Minutes d'Arrêt de réglages
- }
- else if (xpos > 0 && xpos < 25 && ypos > 205 && ypos < 240) // -------------------------------------------------- // Pression sur l'icone "OK" -----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsDepartProg2a = HrsDepartReglages; // Transfère la variable temporaire de réglage dans les heures de départ du programmateur 2a
- MinsDepartProg2a = MinsDepartReglages; // Transfère la variable temporaire de réglage dans les minutes de départ du programmateur 2a
- HrsArretProg2a = HrsArretReglages; // Transfère la variable temporaire de réglage dans les heures d'arrêt du programmateur 2a
- MinsArretProg2a = MinsArretReglages; // Transfère la variable temporaire de réglage dans les minutes d'arrêt du programmateur 2a
- EEPROM.put(72, HrsDepartProg2a); // Mémorise les heures de départ du programmateur 2a
- EEPROM.put(74, MinsDepartProg2a); // Mémorise les minutes de départ du programmateur 2a
- EEPROM.put(76, HrsArretProg2a); // Mémorise les heures d'arrêt du programmateur 2a
- EEPROM.put(78, MinsArretProg2a); // Mémorise les minutes d'arrêt du programmateur 2a
- PageCourante = 20; // Définit la Page courante 20
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 392 && xpos < 435 && ypos > 205 && ypos < 240) // ----------------------------------------------- // Pression sur l'icone "X" ------------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 20; // Définit la Page courante 20
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 210 ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 211) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 211 => Réglages horaires Prog 2b
- {
- if (xpos > 48 && xpos < 77 && ypos > 140 && ypos < 165) // ------------------------------------------------------ // Pression sur l'icone "+" Hrs Départ -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsDepartReglages++; if (HrsDepartReglages > 23) {HrsDepartReglages = 0;} // Modifie les Heures de Départ de réglages
- }
- else if (xpos > 112 && xpos < 140 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Départ ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsDepartReglages++; if (MinsDepartReglages > 59) {MinsDepartReglages = 0;} // Modifie les Minutes de Départ de réglages
- }
- else if (xpos > 270 && xpos < 300 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Hrs Arrêt --------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsArretReglages++; if (HrsArretReglages > 23) {HrsArretReglages = 0;} // Modifie les Heures d'Arrêt de réglages
- }
- else if (xpos > 332 && xpos < 360 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Arrêt -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsArretReglages++; if (MinsArretReglages > 59) {MinsArretReglages = 0;} // Modifie les Minutes d'Arrêt de réglages
- }
- else if (xpos > 0 && xpos < 25 && ypos > 205 && ypos < 240) // -------------------------------------------------- // Pression sur l'icone "OK" -----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsDepartProg2b = HrsDepartReglages; // Transfère la variable temporaire de réglage dans les heures de départ du programmateur 2b
- MinsDepartProg2b = MinsDepartReglages; // Transfère la variable temporaire de réglage dans les minutes de départ du programmateur 2b
- HrsArretProg2b = HrsArretReglages; // Transfère la variable temporaire de réglage dans les heures d'arrêt du programmateur 2b
- MinsArretProg2b = MinsArretReglages; // Transfère la variable temporaire de réglage dans les minutes d'arrêt du programmateur 2b
- EEPROM.put(96, HrsDepartProg2b); // Mémorise les heures de départ du programmateur 2b
- EEPROM.put(98, MinsDepartProg2b); // Mémorise les minutes de départ du programmateur 2b
- EEPROM.put(100, HrsArretProg2b); // Mémorise les heures d'arrêt du programmateur 2b
- EEPROM.put(102, MinsArretProg2b); // Mémorise les minutes d'arrêt du programmateur 2b
- PageCourante = 21; // Définit la Page courante 21
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 392 && xpos < 435 && ypos > 205 && ypos < 240) // ----------------------------------------------- // Pression sur l'icone "X" ------------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 21; // Définit la Page courante 21
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 211 ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- }
- //**************************************************************************************************************************************************************************
- else if (PageCourante == 212) // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Page Courante 212 => Réglages horaires Prog 2c
- {
- if (xpos > 48 && xpos < 77 && ypos > 140 && ypos < 165) // ------------------------------------------------------ // Pression sur l'icone "+" Hrs Départ -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsDepartReglages++; if (HrsDepartReglages > 23) {HrsDepartReglages = 0;} // Modifie les Heures de Départ de réglages
- }
- else if (xpos > 112 && xpos < 140 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Départ ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsDepartReglages++; if (MinsDepartReglages > 59) {MinsDepartReglages = 0;} // Modifie les Minutes de Départ de réglages
- }
- else if (xpos > 270 && xpos < 300 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Hrs Arrêt --------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsArretReglages++; if (HrsArretReglages > 23) {HrsArretReglages = 0;} // Modifie les Heures d'Arrêt de réglages
- }
- else if (xpos > 332 && xpos < 360 && ypos > 140 && ypos < 165) // ----------------------------------------------- // Pression sur l'icone "+" Mins Arrêt -------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- MinsArretReglages++; if (MinsArretReglages > 59) {MinsArretReglages = 0;} // Modifie les Minutes d'Arrêt de réglages
- }
- else if (xpos > 0 && xpos < 25 && ypos > 205 && ypos < 240) // -------------------------------------------------- // Pression sur l'icone "OK" -----------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- HrsDepartProg2c = HrsDepartReglages; // Transfère la variable temporaire de réglage dans les heures de départ du programmateur 2c
- MinsDepartProg2c = MinsDepartReglages; // Transfère la variable temporaire de réglage dans les minutes de départ du programmateur 2c
- HrsArretProg2c = HrsArretReglages; // Transfère la variable temporaire de réglage dans les heures d'arrêt du programmateur 2c
- MinsArretProg2c = MinsArretReglages; // Transfère la variable temporaire de réglage dans les minutes d'arrêt du programmateur 2c
- EEPROM.put(120, HrsDepartProg2c); // Mémorise les heures de départ du programmateur 2c
- EEPROM.put(122, MinsDepartProg2c); // Mémorise les minutes de départ du programmateur 2c
- EEPROM.put(124, HrsArretProg2c); // Mémorise les heures d'arrêt du programmateur 2c
- EEPROM.put(126, MinsArretProg2c); // Mémorise les minutes d'arrêt du programmateur 2c
- PageCourante = 22; // Définit la Page courante 22
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 392 && xpos < 435 && ypos > 205 && ypos < 240) // ----------------------------------------------- // Pression sur l'icone "X" ------------------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 22; // Définit la Page courante 22
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- else if (xpos > 0 && xpos < 435 && ypos > 8 && ypos < 40) // ---------------------------------------------------- // Pression sur le titre de la Page 212 ------------
- {
- Buzzer(3, 0, 1); // Active le buzzer 3ms
- PageCourante = 0; // Définit la Page courante 0
- LastPageCourante = -1; // Force l'affichage des informations de la Page courante
- FonctionReinitVariablesPages(PageCourante); // Appelle la fonction pour forcer l'affichage des informations des Pages
- }
- }
- }
- }
- //**************************************************************************************************************************************************************************
- //*** Fonction de réinitialisation des variables pour forcer l'affichage des informations des pages ************************************************************************
- //**************************************************************************************************************************************************************************
- void FonctionReinitVariablesPages (int page)
- {
- if (page == 0) // *************************************************************************************************** // Si la Page courante est égale à 0
- {
- LasttemperatureCourante = -1;
- LastMaxTemp = -1;
- LastMinTemp = -1;
- }
- else if (page == 10) // ********************************************************************************************* // Si la Page courante est égale à 10
- {
- LastAffichageHeuresProg1a = -1;
- LastAffichageIterationProg1a = -1;
- LastModeProg1a = -1;
- }
- else if (page == 11) // ********************************************************************************************* // Si la Page courante est égale à 11
- {
- LastAffichageHeuresProg1b = -1;
- LastAffichageIterationProg1b = -1;
- LastModeProg1b = -1;
- }
- else if (page == 12) // ********************************************************************************************* // Si la Page courante est égale à 12
- {
- LastAffichageHeuresProg1c = -1;
- LastAffichageIterationProg1c = -1;
- LastModeProg1c = -1;
- }
- else if (page == 20) // ********************************************************************************************* // Si la Page courante est égale à 20
- {
- LastAffichageHeuresProg2a = -1;
- LastAffichageIterationProg2a = -1;
- LastModeProg2a = -1;
- }
- else if (page == 21) // ********************************************************************************************* // Si la Page courante est égale à 21
- {
- LastAffichageHeuresProg2b = -1;
- LastAffichageIterationProg2b = -1;
- LastModeProg2b = -1;
- }
- else if (page == 22) // ********************************************************************************************* // Si la Page courante est égale à 22
- {
- LastAffichageHeuresProg2c = -1;
- LastAffichageIterationProg2c = -1;
- LastModeProg2c = -1;
- }
- LastHrsDepartReglages = -1; // Force l'affichage des heures de départ de réglages
- LastMinsDepartReglages = -1; // Force l'affichage des minutes de départ de réglages
- LastHrsArretReglages = -1; // Force l'affichage des heures d'arrêt de réglages
- LastMinsArretReglages = -1; // Force l'affichage des minutes d'arrêt de réglages
- LastHrsReglages = -1; // Force l'affichage des heures courantes de réglages
- LastMinsReglages = -1; // Force l'affichage des Minutes courantes de réglages
- LastAffichageJourSemaine = -1; // Force l'affichage des jours de la semaine de réglages
- LastJourReglages = -1; // Force l'affichage des jours de réglages
- LastMoisReglages = -1; // Force l'affichage des mois de réglages
- LastAnneeReglages = -1; // Force l'affichage des années de réglages
- LastHrsReglagesMinuterie1 = -1; // Force l'affichage des heures de la minuterie 1 de réglages
- LastMinsReglagesMinuterie1 = -1; // Force l'affichage des minutes de la minuterie 1 de réglages
- LastModeMinuterieProg1 = -1; // Force l'affichage du mode de fonctionnement de la minuterie 1
- LastHrsReglagesMinuterie2 = -1; // Force l'affichage des heures de la minuterie 2 de réglages
- LastMinsReglagesMinuterie2 = -1; // Force l'affichage des minutes de la minuterie 2 de réglages
- LastModeMinuterieProg2 = -1; // Force l'affichage du mode de fonctionnement de la minuterie 2
- LasttemperatureThermostat1 = -1; // Force l'affichage du thermostat 1
- LasttemperatureThermostat2 = -1; // Force l'affichage du thermostat 2
- LastModeThermostat1 = -1; // Force l'affichage du mode de fonctionnement du thermostat 1
- LastModeThermostat2 = -1; // Force l'affichage du mode de fonctionnement du thermostat 2
- LastAffichageTemperatureModeThermostat1 = -1; // Force l'affichage de la température courante sur la page de réglages du thermostat 1
- LastAffichageTemperatureModeThermostat2 = -1; // Force l'affichage de la température courante sur la page de réglages du thermostat 2
- }
Add Comment
Please, Sign In to add comment