Introduction

 

     Microcontrôleur

    

     Microcontrôleur

    

     Commandes

    

     Déroulement

    

     Conclusion

    

     pH

 

    Actionneurs

 

     Conclusion

 

 

Carte Microcontrôleur
 
   

 

 

 

Le microcontrôleur

Le microcontrôleur n' a pas été étudié lors de ce projet.                                    Ca référence technique est : 8035                                                                                              Documentation constructeur (pdf)

 

L'afficheur LCD

 

Schéma structurel de la carte Microcontrôleur                                        Documentation constructeur (pdf)


La fonction principale FP 6 permet d’afficher les paramètres, les valeurs de consignes saisies par l’utilisateur et les valeurs mesurées par le système.        Celle-ci est divisée en 2 fonctions secondaires :
           -FS61 : régler le contraste de l’afficheur à l’aide du potentiomètre P1.
           -FS62 : afficher les paramètres sur 8 bits.
L’afficheur à cristaux liquides comporte 2 lignes de 16 caractères chacune. L’afficheur comprend un électronique intégré permettant d’être piloté par un microcontrôleur par exemple.

L’afficheur comporte des signaux de contrôle :
            -RS : choix du registre : - 0→ registre de contrôle
                                                 - 1 → registre de donnée
D’après le câblage du microcontrôleur : le DDRA→C8
                                                             le DDRC→FF (tout en sortie)
           -R\W : écriture \ lecture (toujours validé en écriture)
L’envoi des signaux de données ou de contrôle se fait par le bus de D0 à D7 les données sont codées en ASCII.
Pour configurer les ports il faut mettre : - en sortie 1
                                                           - en entrée 0

 

Pour envoyer un code de contrôle il faut mettre

    { RS = 0 ; // choix du registre de contrôle
    PORT C= c ; // envoi du code de contrôle
    delay_ms (1) ; // appel tempo de 1 ms
    E = 1; // créer un front descendant
    E = 0; // sur l’entrée de validation E
    }

Pour envoyer un code de donnée il faut mettre

    { RS = 1 ; // choix du registre de contrôle
    PORT C= c ; // envoi du code de contrôle
    delay_ms (1) ; // appel tempo de 1 ms
    E = 1; // créer un front descendant
    E = 0; // sur l’entrée de validation E
    }

 

Tableau de valeurs :

Instruction         

Action ou état

désiré

Octet de contrôle

hexa

D7

D6

D5

D4

D3

D2

D1

D0

 

Mode

(Func.Set)

8 bits

2 lignes

carac : 5x8

0

0

1

1

1

 

0

0

0

38

ALL /EXT

(Display On/off control)

Aff  allumé

Curseur invisi.

Sans clignot.

0

0

0

0

1

1

0

0

0C

Effacem.

d’écran

(clear display)

Efface l’écran

0

0

0

0

0

0

0

1

01

Init curseur

(curseur home)

Positionner

Le curseur à l’origine : L1 et C1

0

0

0

0

0

0

1

0

02

 

Configuration de l’afficheur :           

    {RS = 0; // choix du registre de contrôle
    lcd_write_instr( 0x 38 ); // envoi du code (L1 de votre tableau)
    lcd_write_instr( 0x 0C ); // envoi du code (L2 de votre tableau)
    lcd_write_instr( 0x 02 ); // envoi du code (L4 de votre tableau)
    lcd_write_instr( 0x 01 ); // envoi du code (L3 de votre tableau)
    delay_ms ( 10 ) ; // appel tempo de 10 ms
    }

Maintenant l’afficheur est configuré et il peut transmettre des messages à l'utilisateur.
Pour pouvoir afficher une variable il faut la déclarer au début du programme par : « int i » pour une variable i.
Pour afficher un texte il faut aussi l’indiquer par :
« unsigned char*titre0="BAC STI 2005" » pour afficher BAC STI 2005. Il Faut l’appeler dans le programme principal mais avant il faut le positionner sur l’afficheur et l’indiquer lors de la programmation :
« lcd_pos(ligne,colonne) »
Pour donner le numéro de la ligne il ne faut pas oublier que la première aura le numéro 0 et non pas 1. C’est le même principe pour les colonnes.
Ensuite on marque « lcd_chaine(titre0); »
 

 

Décodeur et clavier


La fonction principale FP4 permet la saisie et la modification des paramètres et des valeurs de consigne. Elle est divisée en deux fonctions secondaires :

-FS41 : sélectionner successivement les 4 colonnes du clavier alphanumérique 16 touches à partir des deux sorties PD et PD1 du port D.
-FS42 : Saisir et modifier les valeurs des paramètres de fonctionnement et des consignes à l’aide du clavier alphanumérique.

Fonctionnement du décodeur (74HC139) :
Il possède 2 entrées de sélection, 1 entrée de validation sur niveau bas et 4 sorties actives sur niveau bas. Pour une combinaison n en entrée c’est la sortie n qui sera sélectionnée.

Pour sélectionner une colonne il faut que le décodeur envoie un code binaire (0111, 1011, 1101, 1110). La colonne est activée au niveau bas. Si aucune touche n’est actionnée le décodeur enverra le code 1111.

 

L’identification de la touche est réalisée par le microcontrôleur en comparant le code ASCII de la touche émise vers le clavier et le code ligne reçu..

Code ASCII :

-131                                    -A41

-232                                    -B42

-333                                    -C43

-434                                    -D44

-535                                    -E45

-636                                    -F46

-737                                   

-838

-939

Les résistances R3 à R6 sont des résistances de tirage elles maintiennent un niveau logique haut à la sortie des colonnes aux points test T7 à T10 si aucune touche n’est sélectionnée. Si une touche est sélectionnée il y aura un niveau logique 0 au même point test que précédemment.

Le temps de réponse du clavier peut être modifié en jouant sur la tempo dans le programme, plus elle est grande plus le clavier sera long pour envoyer des informations sur l’afficheur. De même pour le temps de réaction du clavier entre 2 touches actionnées, plus il est faible plus on peut écrire de caractères dans un même temps t. 

                                                                                                         

Système d'aquariophilie
Brun Olivier