lundi 21 février 2022

ARDUINO : La Détection Secteur





ARDUINO : La Détection Secteur


Cet article décrit les différentes méthodes de détection de la présence du secteur 230V.

1. Présentation

Dans certaines circonstances, il peut être indispensable ou souhaitable de pouvoir détecter si la tension secteur est présente ou absente :

  • à l'entrée d'une alimentation
  • aux bornes d'un moteur, d'une pompe
  • etc.

La solution choisie va dépendre du montage, et aussi du temps de réaction désiré.

On peut par exemple vouloir signaler la mise sous tension d'un moteur, d'une pompe. Dans ce cas, le temps n'est pas critique.

On peut aussi vouloir détecter la disparition du secteur pour différentes raisons :

  • sauvegarder les données volatiles d'un microcontrôleur. Dans ce cas, il faudra agir rapidement, avant que l'alimentation du microcontrôleur ne s'écroule.
  • interrompre un processus en toute sécurité
  • remettre un servomoteur dans une position donnée
  • envoyer une notification par radio, SMS ou WIFI
  • couper les sorties haut-parleur d'un amplificateur (anti-ploc)
  • etc.

Dans certains cas, il faut bien sûr que l'alimentation stocke suffisamment d'énergie (condensateur de forte capacité) après la coupure secteur, pour que l'on aie le temps de réaliser l'opération voulue.

2. Les différentes techniques

2.1. Le relais

On voit de temps à autre des montages de ce type, utilisé généralement pour détecter la présence du secteur aux bornes d'un moteur :

Un relais à bobine 230V ou un contacteur est utilisé. Lorsque la tension secteur est présente, on retrouve un niveau ZERO sur la broche 2 de la sortie DETECT, et un niveau 5V en cas de disparition du 230V.

La résistance de 100KΩ sert à ramener un niveau 5V lorsque le contact du relais est ouvert. On peut la remplacer par une pullup interne du microcontrôleur.

Bien évidemment, si le microcontrôleur est un modèle 3.3V on appliquera une tension de 3.3V sur la broche 1.

La solution à relais a un temps de réaction plutôt faible, de l'ordre de 10ms à 20ms, dépendant du relais utilisé.

Cette solution peut être assez coûteuse, et encombrante.

On peut utiliser un relais 230V prévu pour être implanté sur un PCB, dans ce cas, le coût peut être de 5€, mais un PCB doit être fabriqué.

On peut également utiliser un relais à cosses, prévu pour être enfiché sur un support :

On peut enfin utiliser un contacteur :

2.2. Le transformateur

Ici il ne s'agit pas d'ajouter un transformateur afin d'abaisser la tension secteur, pour ensuite la redresser. Il s'agit plutôt de profiter de la présence d'un transformateur d'alimentation dans un montage existant :

Sur ce schéma, la partie haute est une alimentation classique simplifiée à transformateur, et on va utiliser la tension du secondaire du transformateur. On suppose que le condensateur C4 a une capacité suffisamment importante pour maintenir la tension suffisamment longtemps pour réaliser l'opération désirée, par exemple, dans un amplificateur, couper les haut-parleurs à l'aide d'un relais.

La partie basse reprend la tension du secondaire du transformateur, la redresse et la filtre. Une zener limite la tension sur la sortie DETECT.

Lorsque la tension secteur est présente, on retrouve un niveau de 5V sur la broche 1 de la sortie DETECT, et un niveau ZÉRO en cas de disparition du 230V.

La résistance de 10KΩ limite le courant dans la zener. Quelques mA suffisent amplement. Ici, avec une tension d'entrée de 18V et une zener de 4.7V il est de :

I = (Ue - Uz) / 10000 = (18 - 4.7) / 10000 = 1.3mA

La résistance de 100KΩ sert à décharger le condensateur lorsque le secteur disparaît. Bien évidemment, si le microcontrôleur est un modèle 3.3V on remplacera la zener par un modèle 2.7V ou 3V.

Cette solution a un temps de réaction totalement dépendant du condensateur utilisé, et de la résistance de décharge. Avec les valeurs du schéma il est de l'ordre de 100ms :

T = R * C = 100000 * 0.000001 = 0.1

La solution est extrêmement bon marché, mais elle requiert la fabrication d'un PCB. On peut utiliser un morceau de plaquette à pastilles :

2.3. Montage électronique

Dans ce chapitre nous allons étudier une solution classique à optocoupleur :

Contrairement à pas mal de schémas, la tension secteur n'est pas abaissée à l'aide d'une simple résistance, mais à l'aide d'un condensateur (chute de tension capacitive). Ce condensateur est obligatoirement du type X2. Cette méthode permet de ne pas dissiper trop de calories dans une résistance.

L'impédance du condensateur C1 vaut : 

Z = 1 / (2 * Pi * F * C)

F : 50Hz

C : capacité en Farad

Si nous voulons obtenir un courant I de 3mA dans l'optocoupleur, sous 230V en 50Hz on peut calculer la capacité du condensateur nécessaire :

C = I / (2 * Pi * F * (230 - U)) = 0,003 ÷ (2 * 3,14 * 50 * (230-1)) = 42nF

U est la tension de sortie désirée, ici environ 1V, la tension directe de la diode de l'optocoupleur.

Après l'optocoupleur, une simple résistance et un condensateur filtrent la tension obtenue.

Lorsque la tension secteur est présente, on retrouve un niveau ZÉRO sur la broche 2 de la sortie DETECT, et un niveau de 5V en cas de disparition du 230V.

Cette solution a un temps de réaction totalement dépendant du condensateur C3 utilisé, et de la résistance de décharge R4. Avec les valeurs du schéma il est de l'ordre de 100ms :

T = R * C = 100000 * 0.000001 = 0.1

La résistance R4 de 100KΩ peut être remplacée par une pullup interne du microcontrôleur (environ 50KΩ).

Comme la solution précédente, celle-ci est très bon marché, mais elle requiert la fabrication d'un PCB. On ne pourra pas  utiliser un morceau de plaquette à pastilles, car l'espacement entre pastilles est insuffisant pour supporter une tension de 230V.

2.4. L'optocoupleur DIY

Il est possible de fabriquer un optocoupleur très simple à partir d'un voyant néon (luciole), d'une résistance LDR, le tout enveloppé à l'abri de la lumière dans un bout de gaine thermorétractable :

On peut facilement trouver des voyants 110V ou 230V, mais ici, comme je ne connais pas la tension de service du voyant (c'est de la récupération), j'ai placé une résistance 220KΩ en série. Il s'allume. La LDR a une résistance de 700KΩ lorsque le voyant est éteint, et 30KΩ lorsque celui-ci est allumé.

Si le voyant ne s'allume pas, c'est probablement qu'il supporte une tension supérieure. Il faut abaisser la valeur de la résistance jusqu'à obtenir l'allumage du voyant.

Le montage devient extrêmement simple et très bon marché :

Avec le montage proposé, lorsque le secteur est présent, la tension en sortie vaut :

U = 5V * R2 / (R2+R3) = 5V * 30000 / (220000+30000) = 0.6V

Lorsque le secteur est absent, la tension en sortie vaut :

U = 5V * R2 / (R2+R3) = 5V * 700000 / (220000+700000) = 3.8V

Ces niveaux seront interprétés comme un ZERO et un UN par le microcontrôleur.

La résistance R3 de 220KΩ peut être remplacée par une pullup interne du microcontrôleur (environ 50KΩ). Dans ce cas, la tension en sortie sera de 1.9V (secteur présent) et 4.7V (secteur absent).

2.5. Produits du commerce

Heureusement, pour ceux qui n'ont pas envie de fabriquer un PCB, on trouve dans le commerce des produits tout faits (ICI) :


D'un côté on relie le module au 230V, de l'autre un connecteur 3 broches permet de le relier au microcontrôleur : (VCC, GND, sortie détection).

Ici, pas de chute de tension capacitive. Celle-ci est réalisée à l'aide d'une résistance de puissance (le gros composant gris que l'on voit à gauche). Elle devrait dissiper environ 0.3W à 0.5W.

3. Sécurité

Il faut être prudent lorsque l'on manipule un montage alimenté par le secteur, et toute intervention doit être faite cordon secteur débranché. La sérigraphie du module ci-dessus est suffisamment explicite : "HIGH-VOLTAGE". Ne pas y mettre les doigts lorsqu'il est relié au secteur.

Cette réalisation est une idée d'un membre du forum ARDUINO. Le détecteur est utilisé afin de connaître l'état de marche d'une pompe de filtration :

Afin d'éliminer tout risque, le détecteur est glissé dans un morceau de goulotte plastique.

4. Liens utiles

On en parle aussi ici :

https://www.electroschematics.com/detector-module/

https://microclub.ch/2020/03/01/lecture-230vac-par-arduino-ou-autre-cpu/

5. Conclusion

J'espère que ce petit article aura été utile à ceux qui se posaient ce genre de question.


Cordialement

Henri


10 commentaires:

  1. Article très sympa mais du coup s'il s'alimente via un transfo 5V/3V sur cette même arrivée, si pas de tension, pas de détection ;-) du coup il faudrait que ces circuits soient reliés à une petite batterie Li-Io maintenue chargée via un petit TP4056 par exemple.

    RépondreSupprimer
    Réponses
    1. La solution à transformateur suppose que l'alimentation principale a une capacité à maintenir la tension durant un temps assez long, ce qui est généralement le cas.

      Supprimer
  2. Attention au tout premier schema !!! Les diodes des optos n'acceptent pas la tension d'une alternance secteur en inverse, Il faut impérativement une diode en antiparallèle sur la diode de l'opto

    RépondreSupprimer
    Réponses
    1. Il y a bien une 1N4148 (D1) en inverse.

      Supprimer
    2. Ah OK, j'ai compris. Vous parlez du schéma de principe en tête de document. Oui, bien sûr, ce schéma n'est pas à prendre tel quel.

      Supprimer
    3. J'ai remplacé par une photo. Merci pour la remarque.

      Supprimer
  3. Bonjour,
    Une autre technique qui assurerait une bonne isolation coté secondaire serait d'utiliser un mini voyant 220V (type néon 9mA; Ø:6mm + sa résistance par exemple) et une LDR. Qui seraient assemblés bout à bout dans une gaine thermo opaque. Qu'en pensez-vous ?

    RépondreSupprimer
    Réponses
    1. Oui, absolument, certaines personnes utilisent cette technique. Certains modèles consomment 1mA ou moins.
      Je possède quelques lucioles et des LDR, je peux faire un essai.

      Supprimer
    2. C'est fait :
      2.4. L'optocoupleur DIY

      Supprimer
    3. Merci pour cette version de l'Artouste-opto ;>

      Supprimer