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
