Ignorer la navigation

TP Carte Arduino - Programmation d'un Thermostat

Réglage et affichage de

la température de consigne

 

 

 Dans cette partie, vous allez vous concentrer sur le réglage de la température de consigne et son affichage pendant la procédure de réglage.

Rappel du cahier des charges

Le réglage de la température de consigne va s'effectuer par l'intermédiaire de 2 boutons poussoir :    BP-    et     BP+

. si appui sur BP- : la température de consigne s'affiche pendant 2 secondes, diminue de 1°C puis la température de la pièce s'affiche à nouveau

. si appui sur BP+ : la température de consigne s'affiche pendant 2 secondes, augmente de 1°C puis la température de la pièce s'affiche à nouveau

 Pour réaliser la programmation de cette fonction, on va utiliser les interruptions externes liées à 2 fonctions qui vont être crées pour l'occasion:

. reliée à la broche D2 : permet de diminuer la température de consigne par cran de 1°C

. reliée à la broche D3 :   permet de diminuer la température de consigne par cran de 1°C

 

Qu'est-ce qu'un ligne d'interruption?

Une interruption est un déclenchement qui arrête l’exécution d’un programme ou d’un bout de code pour exécuter une autre fonction.

C’est typiquement le cas lorsque l’on programme un chronomètre. Le temps s’écoule jusqu’au moment où on décide de stopper le chronomètre afin de lire la valeur inscrite sur l’écran.

Une interruption permet ainsi de stopper le programme en cours et d’executer une fonction, puis reprendre l’exécution du programme principal à partir de l’instant où il a été stoppé.
L'ATMEGA328P possède 2 interruptions externes qui utilisent les PIN D2 et D3 .
Pour déclencher une interruption, il existe plusieurs solutions :
  • LOW : Passage à état bas du pin
  • FALLING : Detection d’un front descendant (passage de l’état haut à l’état bas)
  • RISING : Detection d’un front montant (passage de l’état bas à l’état haut)
  • CHANGE : Changement d’état du pin

 

Création d’une interruption en C++

L'instruction à utiliser est la suivante :
attachInterrupt(interrupt, function, mode)
  • interrupt : numéro du pin (0 pour le PIN D2 et 1 pour le PIN D3)
  • function : fonction à appeler
  • mode : type de déclenchement (LOW // FALLING // RISING // CHANGE)

Exemple         Programme qui permet d'allumer ou d'éteindre la LED 13 si changement d'état sur le PIN D2

 

Création d’une interruption en scratch sur Vittascience

Le bloc à utiliser pour créer une ligne d'interruption sur la broche D2 reliée à une fonction. La fonction doit être construite à l'intérieur de ce bloc:

 

 

Ce bloc permet de déclencher l'interruption à partir de 3 évènements au choix sur la broche D2:

- détection d'un front montant (passage de l'état bas à l'état haut)

- détection d'un front descendant (passage de l'état haut à l'état bas)

- changement d'état (soit détection d'un front montant soit détection d'un front descendant)

 

 

Programmation

Réaliser le programme qui permettra le changement de consigne via les boutons poussoirs   BP-   (broche D2) et   BP+  (broche D3) en utilisant le bloc précédemment cité. Au démarrage du thermostat la consigne de température est de 20°C.

 

13- Définir les variables supplémentaires nécessaires

14- Faire l'algorigramme de chacune des 2 fonctions à écrire (broche D2 et broche D3)

15- Compléter l'algorigramme commencé aux 2 parties précédentes (et le réécrire pour cette question). Chaque fonction liée à une interruption apparaîtra dans une branche séparée (broche D2 et broche D3).

16- Réaliser le programme en SCRATCH dans l'activité CAPYTALE

17- Tester

 

Appelez le professeur pour valider votre travail

 

 

 

 

 

Créé avec eXeLearning (Nouvelle fenêtre)