Introduction
Dans cet exemple, nous allons nous pencher sur un exemple légèrement plus complexe en créant un thermomètre numérique basé sur deux de nos produits : la carte de contrôle compacte mySmartControl M168 et le module d'extension I2C/TWI myTWI Capteur de température, basé sur le composant LM75.
Comme vous le devinez donc, l'exemple utilise nos librairies LCD et I2C maître.
Vous remarquerez peut-être que notre exemple n'implémente pas la totalité des fonctionnalités offertes par le composant LM75. En effet, nous n'effectuons que des acquisitions de température par lecture dans les registres du composant. Nous n'avons implémenté, ni la configuration du module, les valeurs par défaut nous convenant, ni la gestion de détection d'une température seuil avec alarme (broche spécifique).
N'hésitez pas à nous poser des questions sur la mise en oeuvre de programme sur le forum.
L'exemple est compilable avec gcc (fournit avec Winavr).
Quelques explications sur le code
Le principe du programme est assez simple et suit la chronologie suivante :
- 1. Initialisation de l'écran LCD et écriture de la première ligne
- 2. Configuration de l'I2C
- 3. Lancement de la boucle infinie du programme principal
- 4. A chaque tour de la boucle, lancement d'une acquisition de température via l'I2C. La température étant sur deux octets, l'acquisition se fait en deux cycles (le premier étant validé par un ACK mais pas le deuxième car suivit d'une séquence stop)
- 5. Affichage de la valeur acquise sur l'écran LCD
- 6. Attente d'un délai fixe (5s)
Téléchargez le fichier
Source (.c)
* Clic droit -> Enregistrer la cible du lien sous
Configuration
Aucune configuration particulière n'est nécessaire, il vous suffit simplement de connecter les modules mySmartControl, myAVR LCD et myTWI Capteur de température ensembles.
Le programme a été testé à 20 MHz mais devrait tout à fait fonctionner à des fréquences différentes moyennant la modification des paramètres d'initialisation I2C. Les valeurs ont été choisies afin d'obtenir une fréquence sur le bus de 100 kHz pour la fréquence CPU de 20 MHz.
Photo
