Mini Projet Thermometre 3leds-2
Mini Projet Thermometre 3leds-2
Mini Projet Thermometre 3leds-2
: /thermomètre à LEDs
Vous utiliserez la carte NUCLEO mise à votre disposition. Les documentations utiles seront recherchées sur
Internet.
Expander de BUS,
PCF8574A
Bus I2C
Capteur de
temperature TMP102
1. Analyse documentaire
Indiquer la plage de mesure de températures du TMP102
Indiquer la précision du TMP102 ainsi que sa résolution
Donner la valeur de son alimentation
Vérifier que l’interface du TMP102 est bien I2C
Donner l’adresse I2C du TMP102 si la broche A0 du TMP102 est connectée à VSS (ground)
Donner l’adresse I2C du PCF8574A si les broches A0,A1,A2 du PCF8574A sont connectée à VSS (ground)
L’alimentation sera PCF8574A sera la même que celle du TMP102. Le courant dans les LEDs sera de
10mA. On admettra que les tensions VF pour ce courant sont de 2v pour la diode rouge et de 2,5v pour les
autres, calculer alors R1,R2,R3
VDD
VSS
J1
1
SCK
2
SDA 3
4 R1 R2 R3
5
6
D3 D4 D2
LED-GREEN LED-YELLOW LED-RED
U3
14 4
SCL P0
15 5
SDA P1
6
P2
13 7
INT P3
9
P4
1 10
A0 P5
2 11
A1 P6
3 12
A2 P7
PCF8574A
Tester le programme « Hello World ! » proposé sur cette page, en adaptant les noms des broches I2C ainsi
que l’adresse I2C.
(Attention le programme de demo fonctionne avec un PCF8274, vous disposez d’un PCF8274A)
6. Thermomètre
Réaliser maintenant le programme complet du thermomètre comme décrit précédemment et suivant
l’algorigramme ci dessous.
t est une variable globale contenant la dernière température mesurée en °C.
#include "mbed.h"
I2C pcfLed(x,x );
I2C tmp102(x,x);
...
double t;
void mesure_t(void)
{
...
t= ....
}
void controle_leds(void)
{
...
}
int main()
{
// initialisations ....
while(1)
{
mesure_t();
controle_leds();
// affiche t sur UART over USB vers terminal sur PC
wait(x);
}
}
7.2. Cette technique permet ensuite d’ajouter dans la boucle sans fin une mise en veille profonde du
microcontrôleur afin de réduire sa consommation.
Vous adapterez ensuite la mise en veille profonde dont un exemple est proposé ici :
https://os.mbed.com/docs/v5.6/reference/sleep-manager.html