Dernière mise à jour :
10/11/2024
Présentation
Cette interface permet de transformer une variation
de pression en une variation de tension électrique.
Elle possède 1 entrée pour capteur de pression (
pressure sensor) et
une
sortie en tension couvrant la plage 0-5V. Basée sur un microcontrôleur
PIC 18F26K22, elle dispose de plusieurs réglages permettant de s'adapter à
différents types de capteurs.
Préambule
Quelle peut donc bien être la particularité de cette interface, vu que
le capteur de pression utilisé possède
déjà une sortie en
tension ? La réponse est simple : le capteur délivre une
tension positive "médiane" correspondant à la pression atmosphérique en
cours, et cette tension médiane (de repos) augmente lors d'une
surpression ou chute lors d'une dépression. Le but de l'interface est
de disposer en sortie d'une tension qui évolue toujours vers
le haut, aussi bien
pour une pression que pour une dépression. Des sorties logiques
permettent de connaître le sens de variation de pression à l'entrée du
capteur.
Schéma
Le microcontrôleur PIC18F26K22 (U1) porte la quasi totalité de
la
charge de travail.
-
Fonctionnement général
La tension issue du capteur de pression U2 est directement
injectée sur la ligne RA0/AN0 du PIC pour être convertie en
numérique par
le module ADC interne au PIC, avec une résolution de 10 bits. Le
logiciel du PIC détermine si les variations de la tension appliquée
sur RA0/AN0 correspondent à une pression ou à une dépression, et par le
biais d'une liaison I2C et d'un convertisseur numérique/analogique
externe (U3) une nouvelle tension est mise à disposition, avec
indication "pression ou dépression". Un DAC 8 bit a été adopté ici, car
pour la demande cette résolution était suffisante, mais un modèle de
résolution 10 bits pourrait également être
utilisé.
Signalisations
Les
voyants LED1 à LED3 permettent de voir en un coup d'oeil si le capteur
de pression est au repos ou s'il est soumis à une pression ou à une
dépression d'air :
- LED1 : s'allume
quand le capteur de pression est soumis à une pression d'air (tension
de sortie supérieure à la tension de repos)
- LED3 : s'allume quand le capteur de pression est soumis à
une dépression
d'air (tension de sortie inférieure à la tension de repos)
- LED2 : s'allume quand le capteur de pression est au repos
Le
voyant LED4 s'allume pour signaler une action en cours, par exemple
sauvegarde d'un paramètre modifié par l'utilisateur ou reset général
des paramètres ajustables par l'utilisateur.
La
sortie Tx (UART 57600 bauds) délivre des messages liés à la
configuration du système. Au démarrage, les divers paramètres
éventuellement ajustés par l'utilisateur sont listés au format texte
(ASCII) :
Remarque : sortie Tx/UART non activée dans le logiciel de base (fonction non spécifiée dans le cahier des charges).
Réglages
Plusieurs paramètres peuvent être ajustés pour répondre à une grande
quantité de besoins.
- JP1/LinLog
- Transposition In/Out avec courbe Lin ou Log
JP1 en position [A] 0V (GND) : courbe linéaire
JP1 en position [B] +V (VDD) : courbe logarithmique - JP2/IOO
- Sélection offset AdcIn / DacOut
JP2 en position [A] 0V (GND) : réglage offset d'entrée (AdcIn) avec SW5/SW6
JP2 en position [B] +V (VDD) : réglage offset de sortie (DacOut) avec SW5/SW6 - RV1/VrefN - Réglage tension de référence basse (Vref-) du convertisseur d'entrée (ADC)
- RV2/VrefP - Réglage tension de référence haute (Vref+) du convertisseur d'entrée (ADC)
- SW1-SW2/PC
- Coefficient sur partie "positive" (PC = Pressure Coefficient,
tension capteur au-dessus de la tension de repos)
SW1 : décrément par pas de 0,01
SW2 : incrément par pas de 0,01
Plage de valeurs acceptées : 0,10..10,0 ; valeur par défaut : 1,00
- SW3-SW4/DC
- Coefficient sur partie "négative" (DC = Depressure Coefficient,
tension capteur en dessous de la tension de repos)
SW3 : décrément par pas de 0,01
SW4 : incrément par pas de 0,01
Plage de valeurs acceptées : 0,10..10,0 ; valeur par défaut : 1,00
- SW5-SW6/IOO
- Décalage général de la tension d'entrée AdcIn ou de sortie DacOut (IOO = Input/Output Offset)
SW5 : décrément par pas de 10 mV
SW6 : incrément par pas de 10 mV
Plage de valeurs acceptées
: 0..5000 mV ; valeur par défaut : 0 mV
Remarque
: les coefficients PC sur parties positives (pression) et les
coefficient DC sur parties "négatives" (dépression) sont indépendantes
pour les courbes Lin et Log. Il y a donc en totalité huit paramètres
logiciels ajustables par l'utilisateur, en plus des trois réglages matériels. Les huit paramètres ajustés par les
boutons-poussoirs SW1 à SW6 sont sauvegardés dans la mémoire interne du
PIC et sont rappelés à chaque redémarrage.
Suppression des modifications apportées par l'utilisateur (retour aux paramètres initiaux)
Les
paramètres
modifiés par l'utilisateur peuvent à tout moment retrouver les valeurs
d'origine. Pour cela, il suffit d'allumer l'interface en maintenant
pressés les boutons-poussoirs SW1 et SW2 pendant au moins 3 secondes.
Durant la phase de reset des paramètres, la LED Status clignote
rapidement. Une fois le reset effectué, la LED Status clignote
plus lentement, jusqu'à relâchement des boutons-poussoirs SW1
et
SW2. A partir de cet instant, l'interface démarre avec les
paramètres d'origine.
La
plupart du temps, le réglage de RV1/VrefN se fera au minimum (0V) et le
réglage de RV2/VrefP se fera au maximum (+5V). Un ajustage de ces
potentiomètre ne sera requis que dans le cas où le capteur de pression
est utilisé sur une petite partie de sa plage de fonctionnement
nominale.
Exemple de configuration
Le
graphe qui suit montre une configuration pour une tension de repos de
2,0 V en sortie du capteur de pression. Le graphe de gauche correspond
à la configuration courbe Lin, alors que le graphe de droite
correspond à la configuration courbe Log. Quand la tension augmente en
sortie du capteur (surpression visualisée
par la courbe verte PS_An), la tension en sortie du DAC (courbe rouge
Vout)
augmente. Quand la tension chute en sortie du capteur (dépression), la
tension en sortie du DAC
augmente
là encore. Dans tous les cas, la tension de sortie minimale correspond
à la tension de repos (sauf si une tension de décalage est désirée,
voir plus loin).
Dans
le cas de figure où la tension de repos en sortie du capteur est très
différente de la moitié de sa plage de tension de sortie, il est
possible d'affectuer un coefficient d'amplification (ou d'atténuation)
différente pour les deux sens de variation. Sur le graphe suivant à
gauche, un coefficient plus faible a été appliqué dans le sens de la
pression, alors que pour le graphe de dorite, un coefficient plus
faible a été appliqué dans le sens de la dépression.
L'idée
ici n'est pas de linéariser l'éventuelle non-linéarité en sortie du
capteur, mais de profiter davantage d'une excursion fortement
asymétrique (tension de repos en sortie capteur fortement éloignée de
la moitié de la tension d'alimentation).
Il
est également possible de décaler l'ensemble des courbes vers le haut
ou vers le bas par pas de +/-10 mV, grâce aux boutons-poussoirs
SW5-SW6/OO. Les deux graphes ci-après montrent un décalage vers le bas
de -450 mV (à gauche) et de +600 mV (à droite).
Il
est bien entendu impossible de dépasser les limites en tension du DAC,
aussi décaler beaucoup le tout vers le haut ou vers le bas peut vite
conduire à une "saturation" - qu'il serait plus judicieux ici d'appeler
une "limitation".
Alimentation
Le
circuit est alimenté sous une tension continue stabilisée de +5V. Un
condensateur de découplage de 100 nF doit être placé au plus près des
broches d'alimentation du PIC (entre broches 8/19 et 20).
Choix du capteur de pression
Le capteur de pression doit travailler sous une tension
d'alimentation de +3,3V ou de +5V. Si sa tension d'alimentation
nominale du capteur de pression est de +3,3V, alors il faut :
- ajouter un régulateur de tension LDO (Low Drop Out) délivrant une tension nominale de sortie +3V3 (juste pour le capteur)
- régler le potentiomètre ajustable RV2 pour que la tension VrefP soit égale à +3V3.
Le
capteur doit pouvoir traiter une
surpression ou une dépression (par ex. de -1000 Pa à +1000 Pa). Le
choix du capteur dépend bien sûr de la plage de variation de pression à
laquelle il sera soumis. Certains capteurs permettent de travailler sur
une plage restreinte (par ex -500 Pa à +500 Pa), d'autre sur une plage
bien plus étendue (par ex. -100 kPa à +100 kPa).
Il existe des capteurs dont la valeur de sortie est délivrée
sous
forme numérique (par un bus I2C, par ex), d'autres dont la valeur de
sortie est liée à une tension analogique (par exemple entre 0V et +5V).
Dans la présente application, il faut sélectionner un capteur de pression avec sortie en
tension analogique (plage de sortie 0V à +5V ou plage de sortie 0V à +3V3).
Remarque
: certains capteurs de pression sont donnés pour
travailler dans une zone "positive" uniquement (par ex. de 0 Pa à
+5000 Pa), mais acceptent toutefois de travailler dans une
zone "négative"
limitée. Ces capteurs se reconnaissent par le fait que la tension de
sortie au repos est supérieure à +1V.
Si
le capteur choisi est utilisé sur une petite portion de sa plage
totale de fonctionnement, il est recommandé d'ajuster RV1 ou RV2, de sorte que la tension VrefN corresponde à
la tension la plus faible observée en sortie du capteur (en
condition d'utilisation normale) et que la tension VrefP corresponde à
la tension la plus élevée observée en sortie du capteur (là encore en
condition d'utilisation normale).
Prototype
Réalisé sur plaque sans soudure (DAC MAX517 non implanté sur les photos qui suivent).
Fonctionnement conforme à celui attendu.
Logiciel du PIC
Pro - Logiciel non
disponible en libre service.
Circuit imprimé (PCB)
Réalisé en double face.
Historique
10/11/2024
- Ajout photos prototype.
- Ajout infos de démarrage sur sortie UART dans la version logicielle allégée (LE).
20/10/2024
- Ajout dessin du PCB.
19/05/2024
- Première mise à disposition.