Voici un projet qui n’a jamais dépassé le stade de prototype 100% fonctionnel suite à un moteur cassé Et à la vente du véhicule concerné.
Le Principe
Ce projet devais servir à refroidir un moteur de Jeep cherokee qui était connu pour des problèmes de mauvais refroidissement du dernier cylindre.
Il se compose d’une sonde de température reliée au bloc moteur sur le dernier cylindre.
Lorsque l’on démarre le véhicule le calculateur se reveille et commence son initialisation,
Il affiche la température à tout moment sur un écran oled dans la planche de bord dans les espaces non remplis des indicateur à cotes du compteur.
Dépassé une certaine température il met le ventilateur électrique en route jusqu’a une température de consigne.
Si le moteur est trop chaud et que l’on arrête la voiture le ventilateur reste allumé jusque la température consigne. Il se coupe et le calculateur se met en veille prolongé en éteignant tout jusqu’au prochain démarrage.
Composants:
- Arduino mini ou atmega328pu(avec son quartz ,condensateurs et resistance)
- Photocoupleur
- LM7805
- Perfboard
- écran I2C
- 1 Tip31
- 2 petits transistors pnp
- 1 sonde DS18B20
- 1 relais 12V 25A
Le Montage
Comme dis plus haut le moteur a rendu l’âme avant que je puisse monter le tout dans la voiture donc pas de photo du projet finalisé mais il était 100% fonctionnel.
Code
/* *********************** * LIBRAIRIES * *********************** */ #include OneWire.h //Librairie du bus OneWire #include DallasTemperature.h //Librairie du capteur DS18B20 #include avr/sleep.h //Librairie de l'avr pour la mise en veille #include avr/interrupt.h //Librairie de l'avr pour les interrupts #include avr/power.h //Librairie de l'avr pour l'arret #include SPI.h //Librairie pour communiquer en SPI avec l'ecran SSD1306 #include Wire.h //Librairie pour complementaire pour l'ecran SSD1306 #include Adafruit_SSD1306.h //Librairie pour l'ecran SSD1306 #define OLED_RESET 4 //Je ne sais pas ce que c'est mais sans ca l'ecran ne marche pas Adafruit_SSD1306 display(OLED_RESET); //Definition de l'ecran OneWire oneWire(10); //Bus One Wire sur la pin 10 de l'arduino DallasTemperature sensors(&oneWire); //Utilistion du bus Onewire pour les capteurs DeviceAddress sensorDeviceAddress; //Vérifie la compatibilité du capteur avec la librairie /* ******************* * IMAGES * ******************* */ static const unsigned char PROGMEM ventil[] = { //Image ventilateur lors de l'arret du vehicule B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000001, B11100000, B00000011, B10000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B01110000, B00011100, B00000111, B11111000, B00001111, B11100000, B00011100, B00000111, B00000000, B00000000, B00000000, B00000000, B00000111, B11111111, B11111111, B10000000, B11111000, B00111110, B00000111, B11111000, B00011111, B11110000, B00111110, B00001111, B10000000, B11111111, B11111111, B11110000, B00001111, B11111111, B11111111, B11000001, B11111100, B01111111, B00001111, B11111000, B00111111, B11111000, B01111111, B00011111, B11000001, B11111111, B11111111, B11111000, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00001111, B11111000, B01111111, B11111000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11111000, B11111111, B11111000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11111000, B11111111, B11111000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00001111, B11111101, B11111111, B11111000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00001111, B11111101, B11111111, B11111000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00001111, B11111111, B11111111, B11110000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00000111, B11111111, B11111000, B00000000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00000011, B11111111, B11110000, B00000000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00000000, B11111111, B11111100, B00000000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00000000, B01111111, B11111111, B00000000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00000000, B00011111, B11111111, B11000000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00000000, B00001111, B11111111, B11100000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00001111, B11111111, B11111111, B11000001, B11111100, B01111111, B00000001, B11111111, B11111111, B11110000, B01111111, B00011111, B11000001, B11111111, B11111111, B11111000, B00000111, B11111111, B11111111, B10000001, B11111100, B01111111, B00001111, B11111111, B11111111, B11110000, B01111111, B00011111, B11000000, B11111111, B11111111, B11110000, B00000000, B00000000, B00000000, B00000001, B11111100, B01111111, B00001111, B11111111, B11011111, B11111000, B01111111, B00011111, B11000000, B00000000, B00000000, B00000000, B00000111, B11111111, B11111111, B10000001, B11111100, B01111111, B00011111, B11111111, B10011111, B11111000, B01111111, B00011111, B11000000, B11111111, B11111111, B11110000, B00001111, B11111111, B11111111, B11000001, B11111100, B01111111, B00011111, B11111111, B10011111, B11111000, B01111111, B00011111, B11000001, B11111111, B11111111, B11111000, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11111111, B00011111, B11111000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00001111, B11111111, B00011111, B11111000, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00001111, B11111111, B11111111, B11000001, B11111100, B01111111, B00001111, B11111110, B00001111, B11110000, B01111111, B00011111, B11000001, B11111111, B11111111, B11111000, B00000111, B11111111, B11111111, B10000000, B11111000, B00111110, B00000111, B11111100, B00001111, B11110000, B00111110, B00001111, B10000000, B11111111, B11111111, B11110000, B00000000, B00000000, B00000000, B00000000, B01110000, B00011100, B00000011, B11110000, B00000111, B11000000, B00011100, B00000111, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000001, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000 }; static const unsigned char PROGMEM jeep[] = { //image jeep lors du demarrage du vehicule B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B01110000, B00011100, B00000111, B00000001, B11000000, B01110000, B00011100, B00000111, B00000000, B00000000, B00000000, B00000000, B00000111, B11111111, B11111111, B10000000, B11111000, B00111110, B00001111, B10000011, B11100000, B11111000, B00111110, B00001111, B10000000, B11111111, B11111111, B11110000, B00001111, B11111111, B11111111, B11000001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000001, B11111111, B11111111, B11111000, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00001111, B11111111, B11111111, B11000001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000001, B11111111, B11111111, B11111000, B00000111, B11111111, B11111111, B10000001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000000, B11111111, B11111111, B11110000, B00000000, B00000000, B00000000, B00000001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000000, B00000000, B00000000, B00000000, B00000111, B11111111, B11111111, B10000001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000000, B11111111, B11111111, B11110000, B00001111, B11111111, B11111111, B11000001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000001, B11111111, B11111111, B11111000, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00011111, B11111111, B11111111, B11100001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000011, B11111111, B11111111, B11111100, B00001111, B11111111, B11111111, B11000001, B11111100, B01111111, B00011111, B11000111, B11110001, B11111100, B01111111, B00011111, B11000001, B11111111, B11111111, B11111000, B00000111, B11111111, B11111111, B10000000, B11111000, B00111110, B00001111, B10000011, B11100000, B11111000, B00111110, B00001111, B10000000, B11111111, B11111111, B11110000, B00000000, B00000000, B00000000, B00000000, B01110000, B00011100, B00000111, B00000001, B11000000, B01110000, B00011100, B00000111, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000 }; static const unsigned char PROGMEM picture[] = { // image du ventilateur B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000001, B11100000, B00000011, B10000000, B00000111, B11111000, B00001111, B11100000, B00000111, B11111000, B00011111, B11110000, B00001111, B11111000, B00111111, B11111000, B00001111, B11111000, B01111111, B11111000, B00011111, B11111000, B11111111, B11111000, B00011111, B11111000, B11111111, B11111000, B00001111, B11111101, B11111111, B11111000, B00001111, B11111101, B11111111, B11111000, B00001111, B11111111, B11111111, B11110000, B00000111, B11111111, B11111000, B00000000, B00000011, B11111111, B11110000, B00000000, B00000000, B11111111, B11111100, B00000000, B00000000, B01111111, B11111111, B00000000, B00000000, B00011111, B11111111, B11000000, B00000000, B00001111, B11111111, B11100000, B00000001, B11111111, B11111111, B11110000, B00001111, B11111111, B11111111, B11110000, B00001111, B11111111, B11011111, B11111000, B00011111, B11111111, B10011111, B11111000, B00011111, B11111111, B10011111, B11111000, B00011111, B11111111, B00011111, B11111000, B00001111, B11111111, B00011111, B11111000, B00001111, B11111110, B00001111, B11110000, B00000111, B11111100, B00001111, B11110000, B00000011, B11110000, B00000111, B11000000, B00000000, B00000000, B00000001, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000 }; static const unsigned char PROGMEM picture2[] = { //image degres celcius B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00011110, B00000001, B11111111, B11100000, B00011110, B00000001, B11111111, B11100000, B01100001, B10000001, B11111111, B11100000, B01100001, B10000001, B11111111, B11100000, B01100001, B10011110, B00000000, B00011110, B01100001, B10011110, B00000000, B00011110, B00011110, B00011110, B00000000, B00011110, B00011110, B00011110, B00000000, B00011110, B00000000, B00011110, B00000000, B00000000, B00000000, B00011110, B00000000, B00000000, B00000000, B00011110, B00000000, B00000000, B00000000, B00011110, B00000000, B00000000, B00000000, B00011110, B00000000, B00000000, B00000000, B00011110, B00000000, B00000000, B00000000, B00011110, B00000000, B00000000, B00000000, B00011110, B00000000, B00000000, B00000000, B00011110, B00000000, B00000000, B00000000, B00011110, B00000000, B00000000, B00000000, B00011110, B00000000, B00000000, B00000000, B00011110, B00000000, B00000000, B00000000, B00011110, B00000000, B00011110, B00000000, B00011110, B00000000, B00011110, B00000000, B00011110, B00000000, B00011110, B00000000, B00011110, B00000000, B00011110, B00000000, B00000001, B11111111, B11100000, B00000000, B00000001, B11111111, B11100000, B00000000, B00000001, B11111111, B11100000, B00000000, B00000001, B11111111, B11100000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000 }; /* *********************************************** * DEFINITION DES BROCHES ET VARIABLES * *********************************************** */ // I/O pins: const int Relais_pin= 9; //broche du transistor pour le relais actif haut const int Interrupt_pin= 2; // broche pour la detection de l'allumage const int ecran = 3; //broche pour demmarage ecran const int sonde = 11; //broche pour demmarage de la sonde // Constantes de Fonctionement: const int Temp_max= 100; //temperature max autorisee const int Temp_min= 80; //temperature minimale autorisee const int Delay_arret= (1*6000); //temps avant arret du vehicule en minutes * 6000 // Variables: int Temp_inst ; //tenperature lors de la lecture de la sonde int ventstate; //etat du ventilateur int sleepstate; //etat du sleep mode /* ****************************************** * DEFINITION DU TYPE DES BROCHES * ****************************************** */ void setup() { sleepstate = 1; //definir imediatement l'etat comme en veille pour l'activation de la sequence de demmarage pinMode(Relais_pin,OUTPUT); //definir relais comme sortie pinMode(ecran,OUTPUT); //definir ecran comme sortie pinMode(sonde,OUTPUT); //definir sonde comme sortie } /* ****************************** * PROGRAME PRINCIPAL * ****************************** */ void loop() { /* ********************************* * SEQUENCE DE DEMMARAGE * ********************************* */ if (sleepstate == 1){ digitalWrite(ecran,HIGH); //allumage de l'ecran digitalWrite(sonde,HIGH); //allumage de la sonde de temperature delay(250); //delais de mise en route display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //initialisation de l'ecran sensors.begin(); //Activation de la sonde de temperature display.clearDisplay(); //effacement de l'ecran display.setTextSize(4); //definition de la taille de police display.setTextColor(WHITE); //couleur du texte display.setCursor(15,2); // placement du curseur display.println("Jeep"); //affichage du splash screen JEEP display.display(); //Affiche sensors.getAddress(sensorDeviceAddress, 0); //Demande l'adresse du capteur à l'index 0 du bus sensors.setResolution(sensorDeviceAddress, 9); //Résolutions possibles: 9,10,11,12 bits delay(2500); //delais de mise en route de la sonde display.clearDisplay(); //effacement de l'ecran display.drawBitmap(0, 0, jeep, 128, 32, 1); //dessine la calandre display.display(); //afficher delay(2500); //delais d'affichage de la calandre sleepstate = 0; //deffinir l'etat comme allumé } /* ************************************* * LECTURE DE LA TEMPERATURE * ************************************* */ for (int i=0; i <= 30; i++){ //lecture et affichage 60x de suite de la temperature pour pouvoir la faire changer en live sensors.requestTemperatures(); //Demande la température au capteur Temp_inst = sensors.getTempCByIndex(0); //Récupération de la température en celsius du capteur display.clearDisplay(); //effacement de l'ecran display.drawBitmap(86, 0, picture2, 32, 32, 1); //dessin du °C display.setTextSize(4); //definition de la taille de police display.setTextColor(WHITE); //couleur du texte display.setCursor(10,2); // placement du curseur display.println(Temp_inst); //affichage temperature display.display(); //afficher sur l'ecran /* ******************************************** * INTERPRETATION DE LA TEMPERATURE * ******************************************** */ if (Temp_inst < -50){ //detection de l'erreur sonde digitalWrite(Relais_pin,HIGH); //activer le ventilo ventstate = 1; //definir l'etait du ventilo comme activé display.clearDisplay(); //effacement de l'ecran display.setTextSize(3); //definition de la taille de police display.setTextColor(WHITE); //couleur du texte display.setCursor(15,7); // placement du curseur display.println("ERREUR"); //affichage erreur display.display(); //afficher sur l'ecran delay(1000); display.clearDisplay(); //effacement de l'ecran display.setTextSize(3); //definition de la taille de police display.setTextColor(WHITE); //couleur du texte display.setCursor(15,7); // placement du curseur display.println("SONDE"); //affichage sonde display.display(); //afficher sur l'ecran delay(1000); Dispstate(); //appele la fonction d'affichage de l'etat du ventilo delay(1000); } else if (Temp_inst<Temp_min){ //si temperature est inferieur a temperature de consigne basse digitalWrite(Relais_pin,LOW); //desactiver le ventilo ventstate = 0;} //definir etat du ventilo comme arreté else if (Temp_inst>Temp_max){ //si temperature superieure a temperature de consigne digitalWrite(Relais_pin,HIGH); //activer le ventilo ventstate = 1;} //definir l'etait du ventilo comme activé } Dispstate(); //appele la fonction d'affichage de l'etat du ventilo delay(2000); // delais d'affichage de l'etat du ventilo /* **************************************************** * DETECTION DE L'ARRET ET SEQUENCE D'ARRET * **************************************************** */ if (digitalRead(Interrupt_pin) == LOW){ // si plus d'apres contact if (Temp_inst>Temp_max){ //et si temperture superieure a temperature de consigne maximale digitalWrite(Relais_pin,HIGH); //activation du ventilo display.clearDisplay(); //effacement de l'ecran display.drawBitmap(0, 0, ventil, 128, 32, 1); //affichage de la face avant avec le ventilo display.display(); //afficher delay(Delay_arret); //application du delais de refroidissement moteur apres arret } digitalWrite(Relais_pin,LOW); //arret du ventilateur sleepNow(); //appelle la fonction mettre en veille } } //FIN DU PROGRAMME PRINCIPAL /* ********************************************** * PROGRAMME APRES REVEIL(obligatoire) * ********************************************** */ void wakeUpNow(){sleepstate = 1;} //fonction appelee au redemarage du cherokee qui indique que le chero vient de redemmarer /* ***************************** * PROGRAMME D'ARRET * ***************************** */ void sleepNow(){ //fonction d'arret de l'avr display.clearDisplay(); //effacement de l'ecran display.setTextSize(4); //definition de la taille de police display.setTextColor(WHITE); //couleur de texte display.setCursor(30,2); //placement du curseur display.println("BYE"); //mot d'arret display.display(); //afficher delay(2000); //delais pendant lequel ca reste affiché set_sleep_mode(SLEEP_MODE_PWR_DOWN); //deffiniton du type de mise en veille de l'avr sleep_enable(); //active les bit permetant la mise en veile de l'avr en langage machine digitalWrite(ecran , LOW); //arret de l'ecran digitalWrite(sonde , LOW); //arret de la sonde attachInterrupt(0, wakeUpNow, RISING); //instruction interrupt de utilisation de la pin 2 lors d'un redemarage passe a High avec un rising edge sleep_mode(); //mise en veille de l'avr ne peut etre reveillé que par l'interrupt ou un reset sleep_disable(); //apres etre reveillé desactiver la mise en veille detachInterrupt(0); //detacher t'interrupt pour eviter le redemarage continu de l'avr } //fin fonction d'arret de l'avr /* ******************************************** * PROGRAMME AFFICHAGE ETAT VENTILO * ******************************************** */ void Dispstate(){ //fonction de l'affichage de l'etat du ventilo display.clearDisplay(); //effacement de l'ecran display.drawBitmap(10, 0, picture, 32, 32, 1); //dessiner le ventilo au debut display.setTextSize(4); //taille du texte display.setTextColor(WHITE); //couleur du texte if (ventstate == 1 ){ //si l'etat du ventilo est 1 display.setCursor(65,2); //alors on affiche ON display.println("ON"); //affichage de ON display.display();} //afficher else if (ventstate == 0 ){ //sinon si etat = 0 display.setCursor(55,2); //alors on affiche OFF display.println("OFF"); //affichage de OFF display.display();} //afficher } //fin fonction de l'affichage de l'etat du ventilo