Montage
Le montage est basé sur une carte Feather STM32F405 Express d’Adafruit (idem Pyboard) et d’un module pour capteur capacitif compatible Grove.
Afin d’utiliser un uniquement câble Grove, la broche A0 est définie en sortie digitale !
Programme MicroPython
Le programme suivant utilise le timer du microcontrôleur pour réaliser une série de plusieurs mesures à la suite pour une fréquence d’échantillonnage donnée. Les mesures sont exportées au format CSV.
from pyb import Pin, ADC, Timer, delay
from array import array
f = 3000 # fréquence d’echantillonnage - max = 750 kHz [84Mhz/4/(12+15) = 778 kHz]
n = 200 # nombre de points de mesure
pinE = Pin('A0', Pin.OUT) # A0 en sortie digitale
adc = ADC(Pin('A1')) # A1 en entrée analogique
buffer = array("h", n*[0x7FFF]) # Tableau de n éléments pour enregistrer les mesures - "h" = signed short (int 2 octets)
tim = Timer(6, freq=f) # Declaration du timer 6 à la fréquence la plus proche de f
pinE.on() # Charge du condensateur
delay(1000) # Attendre 1 s
pinE.off() # Début de la décharge
adc.read_timed(buffer, tim) # Lancement de l'acquisition
####### Affichage au format CSV #########
f = tim.freq() # Fréquence réelle utilisée par le timer
print("t;u") # Entête grandeurs
print("ms;_") # Entête unité
for i in range(n): # Mesures
print(i/f*1E3, ";", buffer[i])
- Ligne 14 : déclaration d’un tableau
bufferdenéléments pour stocker les mesures (12 bits par mesure) ; - Ligne 15 : la fréquence d’échantillonnage est envoyée au timer 6 (réservé au CAN). La constructeur Timer détermine la fréquence disponible la plus proche de cette fournie en argument.
- Ligne 20 : l’acquisition des
npoints est lancée avec la fréquence d’échantillonnage du timer ; - Ligne 23 : la fréquence réelle du timer est donnée par la méthode
tim.freq().
Résultats
Décharge à travers une résistance de
pour plusieurs valeurs de capacité :
Influence de la résistance série
Les courbes ci-dessous donnent la décharge pour plusieurs capacités à travers trois résistances différentes (
,
et
).
Ces mesures confirment les problèmes d’adaptation d’impédance avec les faibles capacités pour une résistance supérieure à
.
La première courbe met en évidence l’influence de la durée d’exécution des instructions MicroPython. En effet, il n’est pas possible d’obtenir le début de la décharge ! Malgré tout, il sera quand même possible de mesurer la variation de faible capacité (de l’ordre du nF) en ajoutant en parallèle une autre capacité fixe d’une dizaine de nF.





