Mesure du niveau d'eau à l'aide d'un microcontrôleur et d'une mesure de constante de temps

Introduction

L'objectif est de tracer une courbe d'étalonnage représentant tau en fonction du niveau d'eau dans lequel est immergé un ensemble de deux tubes d'acier.

La capacité des tubes varie en fonction du niveau d'eau entraînant une variation de la constante de temps du circuit.

Principe de la détection

La sonde est constituée de deux tubes métalliques coaxiaux qui constituent les armatures d'un condensateur. En l’absence de liquide l'air joue le rôle de l'isolant.

Lorsque le sonde est plongée dans le liquide à une profondeur h, celui-ci n'ayant pas les propriétés isolantes que l'air, la capacité augmente.

La mesure de la constante de temps du condensateur de capacité variable en fonction de hen série avec une résistance, permet de tracer une courbe d'étalonnage du type tau = f(h)

Réalisation pratique

Méthode

Le principe de la mesure de la constante de temps d'un circuit RC à l'aide d'un micro : bit est décrit sur cette page :

https://physique-chimie.discip.ac-caen.fr/spip.php?article986

Matériel

Resistance de 47 kOhm

Platine

fils de connexion

Microbit

Ensemble de deux tubes

Montage complet
Connectique au niveau des tubes
Vue des tubes

Ici les tubes sont deux portions de shaft de golf.

Un shaft étant conique, on peut à partir d'un shaft "fabriquer" cet ensemble. On utilise du scotch et de la colle chaude pour les fixer et isoler.

Script

MéthodePrincipe de fonctionnement

Première étape : On charge pendant 5 secondes le dipôle RC et on relève la valeur de la tension aux bornes du système capacitif.

Deuxième étape : suite à une décharge du condensateur, on mesure le temps nécessaire pour effectuer 63% de la charge.

Script à téléverser à l'aide de Mu dans le microcontroleur.

1
from microbit import *
2
# image attente charge condo
3
D=Image("00000:"
4
        "00900:"
5
        "09990:"
6
        "00900:")
7
#fleche vers bouton A
8
A = Image("00900:"
9
              "09000:"
10
              "99999:"
11
              "09000:"
12
              "00900")
13
14
15
'''On charge le condensateur pour
16
avoir tension max à ses bornes et
17
on recupère la tension'''
18
19
pin0.write_analog(1023)
20
display.show(D)    # affichage image attente
21
sleep(5000)
22
tension_max=pin2.read_analog()   # tension max
23
24
25
display.show(A)
26
27
while True:
28
    if button_a.was_pressed():
29
        print("Decharge du condensateur")
30
        display.show(D)
31
        pin0.write_analog(0)
32
        while pin2.read_analog()>5:
33
            sleep(50)
34
35
36
        t0=running_time()
37
        pin0.write_analog(1023)
38
        while pin2.read_analog()<0.63*tension_max:
39
            pass
40
        t1=running_time()
41
        tau = str((t1 - t0))+" ms"
42
        print("tau = ",tau)
43
44
        display.scroll(tau,delay=500)
45
        sleep(1000)
46
        display.show(A)

Résultats expérimentaux

hauteur d'eau (cm)

5

10,1

15

20

25

Tau (ms)

57

129

281

555

918

53

142

264

544

904

46

143

277

535

903

40

143

270

541

867

52

143

290

550

908

44

138

275

549

951

45

142

275

546

914

59

146

288

571

916

61

148

299

583

888

49

141

299

581

924

Moyenne

51

142

282

556

951