Apprendre et créer
AccueilProduire, stocker et utiliser son électricitéMesures de tension et intensité avec Arduino

Mesures de tension et intensité avec Arduino

Le 26-03-2020...

Afin de pouvoir avancer dans le projet de piloter une installation électrique avec une carte Arduino, le premier élément à éclaircir c'est la manière dont cette carte va nous permettre de mesurer des tensions et des courants circulants

En fait, sans cette capacité à mesurer, le projet ne pourra pas aller plus loin.

Mais heureusement, cela va être possible ! Et même assez simplement finalement, grâce aux broches analogiques !

Règles d'utilisation des broches analogiques

Je vous rapporte ici des informations très intéressantes venant de la page suivante : https://www.carnetdumaker.net/articles/la-conversion-analogique-numerique-avec-arduino-genuino/ que je vous recommande d'ailleurs de lire !

Ceci concernant l'Arduino UNO pour l'utilisation des broches analogiques :

  • Injecter une tension supérieure à 5 volts ou inférieure à 0 volt sur une broche analogique endommagera immédiatement et définitivement votre carte Arduino.
  • La précision de la mesure (10 bits) n'est pas modifiable
  • La mesure prend environ 100µs, cela fait un maximum de 10 000 mesures par seconde
  • Laisser une broche non connectée revient à avoir une antenne et donc retournera une mesure de tension
  • Le résultat est sur 10 bits, soit entre 0 et 1023 (inclus)

Mesure de tension avec Arduino

Comme je le disais plus haut, nous allons pouvoir mesurer des tensions avec Arduino en utilisant les broches analogiques.

Et maintenant que nous avons vu les limitations de ces broches, nous allons passer au concret de ce qu'il est possible de faire.

Tout d'abord, le code qui permet de d'obtenir la valeur de retour de la broche analogique :

void setup() {
}
void loop() {
  int resultBinary = analogRead(A0); // Résultat de la mesure en binaire de la broche A0 (sur 10 bits de 0 (0 Volts) à 1023 (5 volts) )
}

Pour obtenir le résultat en volts, il suffit de faire la conversion en considérant que la relation est linéaire.

void setup() {
}
void loop() {
  int resultBinary = analogRead(A0);
  float resultVolts = resultBinary / 1023.0 * 5.0 // Résultat de la mesure en Volts
}

Ce code nous permet déjà de mesurer la tension du pile AA (autour de 1,5V) pour vérifier son état par exemple ! Voir ici : Mesure d'une tension inférieur à 5V (une pile 1,5V)

Par contre si l'on veut mesurer une tension supérieure à 5V, il est impossible de procéder ainsi, sinon la broche sera détruite comme nous l'avons vu plus haut. Il faudra donc trouver le moyen d'abaisser la tension à mesurer, ce qui peut-être fait par un pont diviseur de tension.

Pont diviseur de tension

Le pont diviseur de tension est un montage électronique simple que l'on construit à l'aide de deux résistances placées en série.

Par la connaissance de la valeur des résistances utilisées, ce montage permet en mesurant la tension aux bornes d'une seule résistance, de connaitre la tension globale.

En appelant ces résistances R1 et R2 et U la tension globale et U2 la tension aux bornes de de R2, on obtient la relation : U2 = U x R2 / (R1+R2), d'où U que l'on recherche : U = U2 / R2 x (R1+R2).

Par exemple, en prenant deux résistances identiques, on va avoir U2 = U x 1/2 = U / 2. On divisera la tension par deux.

Ainsi, on peut mesurer la tension aux bornes d'une pile de 9V sans risquer d'endommager l'Arduino. Voir ici les explications : Mesure d'une tension supérieure à 5V (pile de 9V)

Mesurer une intensité avec Arduino

Quand on sait mesurer une tension, on se trouve à un pas de mesurer l'intensité...

Et oui, puisque U = R x I, si on connait U et R, alors on peut calculer I !

Pour connaitre l'intensité qui circule à un endroit donné du circuit, l'astuce va être de mesurer la tension aux bornes d'une résistance qui se trouve au bon endroit ou alors d'en placer une s'il n'y en a pas, c'est ce que l'on appelle une résistance de shunt.