II- Programmation  du DS1621

II - Programmation sous « Flowcode » du DS1621

Objectif : réaliser un programme affichant la température issue du DS1621, sur un afficheur LCD

On lance Flowcode, et on place un composant « I2C_Master » avec comme « Propriétés » le signal SCL sur la ligne 5 du Port C et SDA sur la ligne 4 du Port C du Microcontrôleur (pour cette étude un ATMEGA 328P).



Afficheur LCD deux lignes de 16 caractères 


Attention au câblage, connexions de l'afficheur LCD


  Data 0 ⇒ PD4 (PORT D bit 4)

  Data 1 ⇒ PD5 (PORT D bit 5)

  Data 2 ⇒ PD6 (PORT D bit 6)

  Data 3 ⇒ PD7 (PORT D bit 7)

  RS ⇒ PD2 (PORT D bit 2)

  E   ⇒ PD3 (PORT D bit 3)


II-1 - Procédure de configuration du DS1621

Création de la procédure permettant de configurer le DS1621, cette «Macro» sera nommée «Init_DS1621».

    • Initialisation de la liaison I2C

    • Start de la liaison I2C

    • Envoi de l'adresse en écriture du DS1621  ( 0x90) 

    • Valeur de retour dans la variable locale .Ack

                .Ack =0 si le composant est présent

    • Envoi de 0xAC afin d'accéder au registre de configuration

    • Envoi de 0x00 , dans le registre de configuration, la conversion est donc en mode continu, le flag «ONE SHOT» étant à 0


      

    • ReStart I2C, équivalent à un Stop suivi d'un Start

    • Envoi de l'adresse en écriture du DS1621  (0x90) 

    • Valeur de retour dans la variable .Ack

                .Ack =0 si le composant est présent

    • Envoi de la commande (0xEE) lancement de la conversion

    • Stop I2C

    • .Return = .Ack (Retour = 0 si le composant est présent)

    • FIN de la procédure


II-2 - Procédure «lecture de la température»

Cette procédure réalise la lecture de la température, et range le résultat dans deux variables, MSB pour le poids fort  et lsb pour le poids faible. Cette «Macro» sera nommée «Lect_Temp»



    • Start de la liaison I2C

    • Envoi de l'adresse en écriture du DS1621  ( 0x90) 

    • Valeur de retour dans la variable ack

    •                  ack =0 si le composant est présent

    • Envoi de 0xAA afin le lire la température

    • ReStart I2C, équivalent à un Stop suivi d'un Start

    • Envoi de l'adresse en lecture du DS1621  ( 0x91)

    • Lecture du MSB

    • Lecture du lsb

    • Stop I2C

    • FIN de la procédure


II-3 - Programme principal

Le programme principal (main)

La routine (macro) Thermostat qui permet de fixer la température thermostatique


Créé avec HelpNDoc Personal Edition: Outil de création d'aide complet