dimanche 26 janvier 2014

Mesurer la capacité d'un condensateur avec un Arduino Uno...et rien d'autre

Jonathan Nethercott a publié sur son blog "PIC Tutorials" un sketch permettant de mesurer la capacité d'un condensateur en le branchant à un Arduino.

Utiliser un microcontrôleur pour mesurer une capacité n'a peut-être rien de révolutionnaire, mais une particularité de la présente méthode, c'est qu'aucun composant supplémentaire n'est requis: vous branchez le condensateur dans les entrées A0 et A2, et sa capacité s'affiche dans le moniteur série.

Dans sa version la plus récente (25 janvier 2014),. le sketch de Jonathan Nethercott utilise deux méthodes différentes pour mesurer la capacité, ce qui lui permet de couvrir une gamme allant de  1 pF à plus de 1000 uF!

La première méthode consiste à mesurer la tension du condensateur alors qu'il est branché en série avec la capacité parasite de l'Arduino, ce qui donne des résultats satisfaisants à la condition que la capacité ne soit pas trop grande.  Puisque la capacité interne n'est pas identique d'un Arduino à l'autre, vous devez faire des tests au moyen d'un condensateur de valeur connue afin calibrer le dispositif (il s'agit de modifier la valeur de la constante IN_STRAY_CAP_TO_GND).

Si le résultat est supérieur à 1 nF (auquel cas la capacité du condensateur à tester est trop grande par rapport à l'étalon), l'Arduino prend une deuxième mesure en chargeant le condensateur à travers la résistance de tirage (pull-up) interne du microcontrôleur, de façon à déterminer la constante de temps du circuit RC. Encore une fois, il est nécessaire d'effectuer une calibration à partir d'un condensateur dont la capacité est connue, puisque la valeur exacte de la résistance pull-up interne peut être différente d'un Arduino à l'autre (il faut modifier la valeur de la constante R_PULLUP).

Je l'ai essayé, et ça fonctionne remarquablement bien:  simple et efficace!

Yves Pelletier (Twitter:  @ElectroAmateur)

1 commentaire:

  1. Bonjour
    Pensez vous que je peux utiliser ce programme avec un esp32
    étant donné que les broches analogique sont des dac ?

    RépondreSupprimer