Apprendre et créer
AccueilProduire, stocker et utiliser son électricitéEtapes et tests pour comprendre le power management avec ArduinoMesure d'intensité avec Arduino (circuit simple pile-LED-résistance)

Mesure d'intensité avec Arduino (circuit simple pile-LED-résistance)

Le 31-03-2020...

Nous allons voir ici comment Arduino permet de mesurer une intensité de courant dans un circuit.

Si vous n'avez pas lu les articles précédents, je vous recommande de le faire avant de tenter un montage !

Principes de mesure

Arduino ne permet pas de mesurer directement une intensité électrique. Par contre, comme nous l'avons vu, les broches analogiques permettent de mesurer des tensions.

Si l'on mesure la tension aux borne d'une résistance de valeur connue, nous pourrons donc en déduire l'intensité selon la formule : U = R x I.

Le principe est donc simple, soit une résistance se trouve déjà dans le circuit à l'endroit souhaité et il suffit de mesurer la tension à ses bornes, soit il n'y en a pas et dans ce cas il faut en insérer une (résistance de shunt).

Attention, la mise en place d'une résistance pourrait affecter le montage, il faut donc que sa valeur soit basse, surtout si le courant est fort.

En fait, il faudra calculer la valeur de résistance à placer en fonction du courant que l'on s'attend à avoir dans le circuit.

Exemple 1 de montage pour mesure d'intensité avec Arduino

Pour le premier montage, je vais utiliser deux piles 1,5V, une LED et une résistance.

Nous savons qu'une LED provoque une chute de tension de 2,2V et qu'elle fonctionne sous 20mA.

Donc avec deux piles en série nous avons 3V. Moins les 2,2V de la LED, il reste 0,8V pour la résistance, à 20mA cela fait R = 0,8 / 0,02 = 40 Ohms. On garde un peu de sécurité et on va donc prendre une résistance à 50 Omhs.

Nous allons mesurer la tension aux bornes de cette résistance puis convertir le résultat en intensité grâce à la valeur connue de la résistance.

Voici le circuit :

Et voici le code qui permet de calculer l'intensité du circuit :

void setup() {
  Serial.begin(9600);
}
void loop() {
  int resultBinary = analogRead(A0);
  float resultVolts = resultBinary / 1023.0 * 5.0;
  float R = 50.0;
  float intensity = resultVolts / R * 1000; // x 1000 pour avoir le résultat en mA (milliampères)!
  Serial.println(intensity); // En milliampères
  delay(250);
}

Exemple 1 de montage pour mesure d'intensité avec Arduino

Avec cet exemple, on va voir comment faire si la tension aux bornes de la résistance devait dépasser les 5V autorisés par la broche analogique.

Pour ça je vais reprendre le même circuit que précédemment mais alimenté par une pile 9V.

Même principe pour déterminer la résistance à choisir : 9V - 2,2V (de la LED) = 6,8V et 6,8V / 0,020A = 340 Ohms. Par sécurité on va prendre 400 Ohms.

Mais si vous avez été attentif au calcul précédent, on voit bien que la tension aux bornes de la résistance sera de 6,8V, donc impossible de faire une mesure tel quel.

La solution va donc être de placer deux résistances de 200 Ohms en série au lieu d'une seule de 400 Ohms. Cela va agir comme un pont diviseur de tension et on mesurera une tension divisée par deux.

Voici le montage :

Et le code, presque inchangé ! Seule la valeur de la résistance doit être ajustée pour correspondre au montage :

void setup() {
  Serial.begin(9600);
}
void loop() {
  int resultBinary = analogRead(A0);
  float resultVolts = resultBinary / 1023.0 * 5.0;
  float R = 200.0;
  float intensity = resultVolts / R * 1000;
  Serial.println(intensity);
  delay(250);
}