II.3. Programmation du microcontrôleur

Lors de la reprise de projet, des erreurs ont pu être remarquées lors de leur exploitation.

Correction du programme de mesure de résistance

Avant d'expliquer les corrections faites pour cette partie, il est nécessaire d'expliquer la méthode utilisée.
La mesure de résistance est basée sur l'utilisation d'un pont diviseur de tension. Le schéma de principe est le suivant :

Nous avons la fiole représentée par la fiole R1 et qui est alimentée par une tension de 5V. La fiole est suivie d’une résistance de référence R2 dont la valeur est choisie arbitrairement en veillant tout de même à rester proche des valeurs de résistance des liquides employés par les utilisateurs. Pour trouver la résistance de la fiole, nous prélevons la tension V2 à l’aide d’une entrée du microcontrôleur comportant un convertisseur analogique-numérique et nous utilisons donc la relation suivante :

L'erreur du programme était le suivant :

La formule mise dans le programme ne correspond pas à celle du pont diviseur. Elle a donc été modifiée et nous obtenons le résultat suivant :

Correction du programme de mesure de tension

Pour la mesure de la tension d'un condensateur, les précédents développeurs ont implantés des formules non pertinentes :

Elles ont été reprises et aboutissent aux fonctions suivantes :

N.B. : En raison des oscillations dans le signal, un moyennage pourrai permettre d'avoir un résultat plus précis étant donné que le filtrage est déjà optimal (appliquer un condensateur plus capacitif ralentirai l'acquisition ce qui provoquerai des erreurs de mesures) .

Structure du code

Les codes fournis par les précédents développeurs n'ayant pas été structurés, nous avons dû établir une architecture qui est la suivante (.* correspond aux fichiers .h et .c) :

- les fichiers contenant les fonctions contrôlant les relais (commande_relais.*)
- les fichiers paramétrant les broches de conversion analogique-numérique (conv_an_num.*)
- les fichiers permettant d'utiliser l'écran LCD (lcd.*)
- les fichiers permettant d'acquérir la résistance de la fiole (mesure_resistance.*)
- les fichiers permettant d'acquérir la tension d'un condensateur (mesure_tension.*)
- les fichiers gérant le réglage de la tension de décharge (reglage_tension.*)

Ces codes ont été commentés de façon à ce qu'ils soient le plus compréhensibles possible.

schema_principe_res.jpg

formule_res.PNG

erreur_res.png

lcd_res.jpg

multi_res.jpg

erreur_tension.JPG

correction_tension.JPG