Mention légal| Contact

Thermostat créé avec un LCD et Arduino.

 Le thermostat.

thermostat


Le but de ce projet est de réaliser un thermostat et de donner quelques notions de gestion de ce type de projet.

LE THERMOSTAT.

Un thermostat est principalement utilisé pour surveiller un environnement thermique ambiant et pour piloter un système de chauffe.

Il se compose principalement d'une sonde de température, d'une sortie de pilotage,d'un clavier de boutons et d'un afficheur.

LE MATÉRIEL.

Un potentiomètre qui simulera la variation de température.
Une LED de couleur verte branchée en sortie qui simulera l'activation de notre système.
Une autre LED de couleur rouge branchée en sortie qui simulera l'activation d'un défaut système.

Ci-dessous la liste du matériel utilisé:

  • Une carte Arduino.
  • Un afficheur LCD . 16X2.
  • Deux (2) LED Rouge et Vert.
  • Trois (3) résistances de charge de 220 ohm.
  • Trois (3) boutons poussoirs.
  • Deux (2) potentiomètres de 10k ohm.

LE SCHÉMA.

NOTRE CAHIER DES CHARGES.

Avoir un menu capable de :

  1. Afficher la température actuelle.
  2. Indiquer la tendance de la température sur un temps défini.
  3. Enregistrer les températures minimum et maximum.
  4. Signaler les alarmes de dépassement seuil MINI et MAXI et les remettre à zéro.
  5. Modifier les valeurs de paramètres de seuils.
  6. Piloter des sorties en fonction du traitement signal.
  7. Retourner l'état du système.

ÉTUDE DU PROJET THERMOSTAT.

1 -La température.

Dans un premier temps pour connaître la température ambiante d'un milieu, il nous faut faire l’acquisition d'un signal analogique de la sonde de température.

2 - La tendance.

L'indication de tendance d’évènements fonctionne suivant le principe d'enregistrement cadencé sur un temps défini. Une comparaison dans le temps de la valeur N-1 est faite avec la valeur actuelle. En fonction de l'écart négatif, positif ou nul, on affichera un symbole à  l'écran LCD à l’occurrence une flèche allant vers le bas , le haut ou double pour une valeur stable.

Symboles des tendances. + - =

L'affichage de la tendance de la température ambiante permet une surveillance active de notre application. C'est un petit plus à notre thermostat.

3 - Le MINI/MAXI enregistré.

Nous souhaitons également avoir une surveillance des évènements du système. Pour cela, nous intégrons l'enregistrement des mesures de températures maximum et minimum.
L'initialisation des ces valeurs doit également être possible par une commande à l'afficheur LCD.

4 - Les alarmes et leurs signalements.

Les alarmes seront activées lors du franchissement des seuils MINI et MAXI définis en fonction de l'application par l'utilisateur.

Un thermostat dédié à la surveillance d'une application a pour but de signaler et ou de piloter un système pour réaliser une action palliative lors de dysfonctionnements.
Dans notre cas, les alarmes seront signalées par l'allumage de la LED rouge mais également par l'activation d'un pointeur à la fenêtre des mesures MINI et MAXI des températures.

De toute évidence, une alarme qui signale un dysfonctionnement doit par conséquent être maintenue.
L'alarme sera donc acquittée seulement par l'action de l'utilisateur.

5 - La modification des seuils de températures.

Comme cités ci-dessus, nous avons déjà deux seuils connus: le MAXI et le MINI.

En plus des seuils MINI et MAXI, notre système doit être activé et désactivé à des températures définies en fonction de l'application et par l'utilisateur.
D’ailleurs, la température définie pour la mise à l’arrêt d'un système de chauffage est ce que l'on appelle la consigne.

Tout d'abord,  le point de consigne:
C'est un seuil auquel un système doit maintenir une application à un état ou une grandeur physique de fonctionnement. Dans notre cas, c'est une température mais cela peut être un débit, une pression, une position ou une vitesse.

Pour notre projet, nous l’appellerons seuil d' "ARRÊT".

En suite, le seuil de "MARCHE":
A l'inverse du point de consigne, nous avons le seuil MARCHE qui va définir la mise en service du système.

Ils doivent être ajustés et adaptés à volonté suivant la configuration et la demande d'exploitation des projets.
Par conséquent, il va nous falloir la possibilité de modifier ces seuils via l'afficheur L.C.D.

Attention! Les seuils de températures ne doivent pas être croisés.

C'est-à-dire que le seuil d ’ARRÊT doit toujours être supérieur au seuil de MARCHE.

Ce qui implique également que le seuil MAXI doit toujours être supérieur au point de consigne. Mais aussi que le seuil MINI doit toujours être inférieur au seuil de MARCHE et inversement.

Donc, il va nous falloir contrôler les valeurs lors de la saisie pour que ces conditions soient respectées.

6 - Les sorties.

L' activation des sorties est le résultat  du traitement du signal en fonction des seuils définis par le projet.
Dans notre cas, nous avons deux sorties. L'une pour le pilotage du système matérialisé par une LED verte et l'autre pour le signalement d'alarmes par une LED rouge.

Conformément à notre projet, le pilotage de la sortie se fera en mode tout ou rien.

7 - Le retour d'état.

Étant donné que  l'activation des sorties définit l'état de fonctionnement du système, nous en profitons donc pour retourner cet état MARCHE ou ARRÊT par l'affichage d'un message STOP ou RUN à l'afficheur L.C.D. Sont également affichés les états d'alarmes.

Nous avons à présent réuni  toutes les particularités de notre projet pour passer à l'étape de programmation du menu.

Le menu du thermostat.

Plus concrètement, nous allons maintenant étudier le menu qui nous permettra de visualiser la température ambiante ainsi que sa tendance et qui nous permettra de saisir les valeurs de seuils.

Suivant le cahier des charges, notre menu est composé d'une fenêtre de LECTURE pour la visualisation de la température , l'état du système et sa tendance.

Fenêtre de lecture.

Somme toute, le projet est simple. Mais la complexité réside dans la conception du MENU.

Premièrement, il faut penser la structure de notre menu. (Sur une feuille de papier !!)
Voyez ci-dessous la structure qui va nous servir à la construction du programme MENU.

Ci-dessous la structure du menu.

PARAMÉTRAGE ET VISUALISATION DE DONNÉES.

Un appui sur ENTRÉE affiche les fenêtres de SÉLECTIONS de PARAMÈTRES à faire défiler par un appui sur le bouton PLUS(+).
Un second appui sur ENTRÉE permet la SAISIE d'une valeur au paramètre sélectionné.
Ensuite, à la fin du processus de saisie,  un appui sur ENTRÉE valide la saisie et retourne le menu à la fenêtre de LECTURE.

De plus, s'ajoutent deux fenêtres supplémentaires aux paramètres .
Une fenêtre pour la visualisation des températures MINI et MAXI mesurées et la suivante de de remise à zéro des alarmes et des mesures MINI / MAXI.

En outre, un appui sur le bouton MOINS (-) permet un retour à la fenêtre de LECTURE depuis les positions de SÉLECTION.

D'autre part, un retour systématique à la fenêtre de lecture sera effectué si aucune action au clavier n'est détectée pendant un certain temps.

SIGNALISATIONS LCD.

Lors d'une alarme, celle-ci sera signalée par l'allumage de la LED rouge mais également via l'affichage LCD.
Un pointeur d'alarme sous forme d'une flèche sera visible à la fenêtre des enregistrements de températures mini et maxi.

La fenêtre RAZ est prévue pour l’acquittement des alarmes mais aussi pour initialiser les valeurs mini/maxi enregistrées. Ce qui notamment effacera aussi le pointeur d'alarme.

LE PROGRAMME.

Dans le cas d'un MENU L.C.D., chaque action sur un bouton sélectionne un CAS particulier d'affichage.
Notre programme se basera donc essentiellement sur l'application de switch().

LE CLAVIER.

Tout d'abord, le clavier sera géré par une fonction nommée "boutons()" qui retournera les états d'activation de chaque bouton.

L'AFFICHAGE DES FENÊTRES.

Pour commencer, il est  à noter qu'un affichage à répétition de boucle sur un afficheur LCD n'est pas conseillé, surtout si l'on effectue un rafraîchissement d'écran. ("clear()")
Par conséquent, nous avons fait en sorte que l'affichage ne s'active qu'une seule fois.
Pour cela, nous "verrouillons" les fenêtres en effectuant un conditionnement d’exécution des cas par les appuis de boutons.
Une variable nommée "fenêtre" servira de "verrou" mais également de repère pour la sélection de chaque CAS de FENÊTRES.


Aussi, nous faisons le choix d'utiliser une table de données, de type "String", contenant les noms de paramètres afin d'activer un affichage  standard via une fonction. Ce qui permet d'éviter la répétition des lignes de codes similaires.

LA SAISIE DE VALEUR AUX PARAMÈTRES.

Comme nous l'avons évoqué dans l'étude de projet, nous effectuons la mise en butée de la saisie (+/-1) en fonction des valeurs voisines respectives à chaque paramètre.

En revanche, lors d'une saisie, contrairement à l'affichage standard qui n'est activé qu'une seule fois;  une actualisation constante de la valeur est nécessaire.

LES DONNÉES PROGRAMMES.

Afin de manipuler plus facilement les données et leurs affichages respectifs,  nous utilisons deux tableaux.
Ces tableaux contiennent  les valeurs de paramètres de chaque seuil et leurs noms respectifs. Ces données sont organisées en fonction de leur position d'affichage.
C'est-à-dire que la donnée du tableau des valeurs de seuils correspond à la donnée du tableau du nom du seuil.

Par exemple l'index 2 du tableau "nom_parametres[2]" qui contient "MARCHE" correspond à la valeur d'index 2 au tableau "parametres[2]" qui contient 25.(par défaut ).

L'index 0 du tableau "parametres[0]" est utilisé pour le chargement de la valeur signal.

PRÉSENTATION DU MENU THERMOSTAT.
Représentation de l'affichage du menu.

En définitif,  vous avez là un outil d’exploitation compatible avec des projets exploitant un signal analogique avec un écran LCD.
Vous pouvez à présent créer votre propre menu et opérer une saisie de données à transmettre à votre système. Explorez et amusez-vous à l’adapter à vos projets.

En téléchargeant le sketch « MENU_THERMOSTAT_LCD » vous découvrirez sans difficultés sa construction ainsi que ses différentes fonctions. Ces fonctions ne contiennent aucune particularité que nous n’ayons pas abordé jusque là, voici donc pourquoi nous ne les détaillerons pas.

MERCI.

Plaisir Arduino.fr

 


Recevez gratuitement les codes sources de PlaisirArduino

Amusez-vous tout de suite avec les entrées/sorties de votre carte Arduino Uno

Vous y retrouverez : des scketchs, des schémas et des PDF