lundi 13 septembre 2021

REW : Faire des Mesures en Audio

 


REW : Faire des Mesures en Audio

 

Lorsque l'on travaille sur des projets audio, il arrive souvent que l'on ait à faire des mesures de courbes de réponse, spécialement dans les cas suivants :

  • enceintes acoustiques
  • salles d'écoute
  • filtres passifs
  • filtres actifs

Il y a longtemps, ces mesures étaient effectuées à l'aide d'appareils dédiés, très chers, ou bien à l'aide d'un générateur basse fréquence et d'un oscilloscope, procédé très fastidieux.

Mais actuellement, un ordinateur équipé d'une carte son peut être une très bonne solution.

Dans et article nous allons parler de REW. Ce logiciel est très connu des amateur de conception d'enceintes DIY, mais peu d'électroniciens le connaissent.

Le but de cet article n'est pas de refaire ce que beaucoup de personnes ont déjà fait et écrit sur le sujet, mais d'orienter vers les tutoriels courants, et donner quelques conseils utiles.

1. Principe

La mesure d'une courbe de réponse s'effectue à l'aide d'un générateur d'onde sinusoïdale, qui applique un signal de fréquence variable à l'entrée du circuit à tester, 20Hz à 20000Hz par exemple. Ce balayage s'appelle SWEEP en anglais.

Sur un PC, on peut parfaitement générer un sweep et l'envoyer sur la sortie ligne.

Pour chaque changement de fréquence on mesure le signal en sortie. Une entrée de la carte son permettra de faire cette mesure.

1.1. Mesures d'enceintes acoustiques

C'est l'utilisation la plus courante. Ces mesures nécessitent l'utilisation d'un microphone. Il en existe deux types :

  • microphone USB
  • microphone XLR

Le MiniDSP UMIK-1 est un microphone USB. Il se raccorde directement au PC.

Le Superlux ECM999 et le Behringer ECM8000 sont des microphones XLR. Comme tous les microphones de ce type ils ont besoin d'une alimentation fantôme, fournie par la majeure partie des cartes son professionnelle.Une Focusrite Scarlett 2i2 peut parfaitement faire l'affaire :

Focusrite Scarlett 2i2

Si le niveau sonore réel fait partie des mesures à effectuer, un sonomètre sera nécessaire. On trouve des modèles bon marché sur AliExpress :

UNI-T UT353

Ce modèle fonctionne très bien pour des niveaux supérieurs à 38dB, mais il n'est cependant pas apte à mesurer des niveaux sonores plus faibles.

Si je calibre mon micro avec ce sonomètre, ma chaîne d'acquisition ECM999 + Focusrite Scarlett 2i2 est capable de mesurer des bruits inférieurs à 30dB, alors que le sonomètre n'en est pas capable. Je pense que son électronique doit être sérieusement bruitée.

Avec le Digital Sound 8922 il sera possible de mesurer des bruits ambiants en dessous de 30dB. Il est beaucoup plus cher, mais il est livré avec un certificat de calibration.

Sur pas mal de sites, on trouve des échelles de niveau sonore pour différents bruits courants :

Exemple : https://www.loos.fr/sites/default/files/2017-10/Echelle%20du%20bruit%20au%20quotidien_0.pdf

Avec le UNI-T UT353 je mesure 38dB au minimum dans mon habitation, avec le Digital Sound 8922 plutôt 28dB, ce qui est beaucoup plus proche de la réalité. Tout dépend donc des ses besoins.

ATTENTION : lors de la mesure d'enceintes acoustiques, celles-ci vont émettre des sons d'une puissance plus ou moins élevée en fonction du réglage de volume de l'amplificateur. Il est utile de procéder par étape, en commençant par un volume faible, et augmenter le volume petit à petit. Le niveau sonore doit être suffisant pour ne pas être noyé dans le bruit ambiant, mais suffisamment modéré pour ne pas devenir sourd.

Si l'on désire faire des mesures avec un niveau acoustique élevé, un bon casque anti-bruit est recommandé.

1.2. Mesures de circuits électroniques

La mesure de circuit électroniques ne requiert aucun matériel particulier, si ce n'est quelques câbles.

Le type de carte son à utiliser dépend du type de circuit à mesurer :

  • asymétrique (entrées / sorties RCA ou JACK stéréo)
  • symétrique (entrées / sorties XLR ou JACK symétrique)

Dans un câble asymétrique le signal est transporté par un seul fil, le retour étant assuré par le blindage (masse).

Dans un câble symétrique le signal est transporté par deux fils : point chaud et point froid. Le blindage a pour seul rôle de protéger les fils des perturbations électromagnétiques extérieures. Si un parasite traverse le blindage, il va affecter les deux fils de la même manière. On obtient donc deux parasites, un sur le point chaud, un sur le point froid. Comme au bout du câble il y a un appareil symétrique avec un circuit différentiel en entrée, les deux parasites s'annulent.

1.2.1. Utilisation en Hi-FI

Dans la majeure partie des cas, en HI-FI, le matériel est asymétrique. On utilisera les entrées / sorties audio du PC :

  • entrées sorties audio de la carte mère
  • entrées sorties d'une carte son interne

Si le matériel à mesurer est équipé de prises RCA, et la carte son de JACK 3.5mm, deux câbles adaptateurs RCA / JACK 3.5mm mâle suffiront.

Remarque : les sorties lignes peuvent très bien être les sorties RCA d'un DAC relié au PC par USB, si on est équipé de ce genre de matériel.

1.2.1. Utilisation en sonorisation

En sonorisation le matériel est symétrique, des câbles XLR ou JACK TRS (symétriques) seront nécessaires, ainsi qu'une carte son professionnelle adaptée, comme pour la mesure d'enceintes.

Il sera impossible de faire des mesures avec les entrées / sorties JACK d'un PC, à moins de dé-symétriser les signaux, à l'aide de circuits dé-symétriseurs ou de transformateurs.

2. REW

REW (RoomEqWizard) est un logiciel de mesure audio utilisable sous Windows, Mac et Linux. Il est gratuit. On peut le télécharger ici :

https://www.roomeqwizard.com/

On trouve des traductions de son manuel utilisateur :

http://koopstribe.free.fr/REW_V5_Manuel_FR_V2_0.pdf 

Beaucoup de tutoriels existent, y compris sous forme vidéo :

https://www.youtube.com/watch?v=2v-sz7z1-jU

L'auteur en a publié plusieurs.

2.1. Calibration

L'étape de calibration permet d'adapter REW au matériel (microphone et carte son). 

2.2.1. Calibration de la carte son

Cette calibration s'effectue en reliant entre elles une entrée et une sortie de la carte son. On parle de LoopBack.

Si l'on utilise les entrées / sorties son de la carte mère d'un PC, qui sont en règle général des JACK 3.5mm, un simple câble mâle / mâle stéréo suffit.

Attention de bien relier la sortie ligne (verte) sur entrée ligne (bleue), et non pas sur l'entrée microphone (rose).

S'il s'agit d'une carte son professionnelle, un câble adapté est nécessaire. Il faut savoir que les entrées de la majeure partie des cartes son professionnelles sont mixtes (combo XLR / JACK).

Il faut bien lire le manuel de la carte son pour savoir comment brancher un microphone, un instrument, ou un équipement délivrant un niveau ligne.

Un bon tutoriel de calibration se trouve ici :

ProjetHomeStudio

La calibration va également permettre de vérifier que l'on a bien choisi les bonnes entrées / sorties dans les préférences de REW. Si le logiciel estime que le signal mesuré est beaucoup trop faible, il le fera remarquer, et il faudra corriger l'erreur. Il peut aussi estimer qu'il est trop fort (saturation), et il sera préférable de réduire le volume en sortie.

Il faut bien veiller à régler les niveaux d'entrée et de sortie du PC à des valeurs correctes. Envoyer sur une sortie un signal trop fort sur une entrée trop sensible créera de la saturation. Envoyer sur une sortie un signal trop faible sur une entrée trop peu sensible donnera des mesures imprécises, noyées dans le bruit.

2.2.2. Calibration du microphone

Certains microphones haut de gamme sont livrés avec un fichier de calibration personnalisé. Dans la majorité des cas, si le microphone est de bonne qualité, cette calibration est inutile.

Superlux ECM999

Comme on le voit sur ce graphique, la courbe de réponse d'un ECM999 comporte quelques irrégularités après 3000Hz. La courbe de réponse tient dans une fourchette de -0.5dB (en dessous de 25Hz) et +2dB (quelques bosses entre 3000 et 20000Hz).

https://www.hometheatershack.com/threads/superlux-ecm-999-calibration-file.173210/

Sur ce fil de discussion, un intervenant fournit un fichier de calibration, tout en affirmant que la différence avec ou sans calibration est inaudible. Effectivement il faut au moins 3dB à une oreille exercée pour qu'une différence soit décelable, 5dB pour qu'elle soit vraiment significative.

2.2. Mesure

Le même tutoriel que précédemment indique comment effectuer une mesure.

2.2.1. Mesures sur des enceintes acoustiques

Lorsqu'on lance une première mesure, REW annonce "SPL not calibrated". Si l'on possède un sonomètre, il est possible de calibrer le niveau sonore en cliquant sur "Calibrate SPL". Lorsque l'on fera ensuite des mesures avec un microphone les graphiques indiqueront un niveau réel en décibels :

Sur ce graphique, la mesure indique une soixantaine de décibels de niveau acoustique réel, ce qui est très raisonnable. Si le niveau est nettement supérieur, on se fatigue vite, surtout lorsque le sweep arrive dans l'extrême aigu.

Avec REW il est possible de mesurer la courbe de réponse d'une enceinte, mais pas seulement. On peut mesurer sa courbe d'impédance.

Il suffit d'insérer une résistance entre l'amplificateur et l'enceinte :

Et on envoie deux signaux sur deux entrées de la carte son :

  • le signal de sortie de l'amplificateur
  • le signal en aval de la résistance

Cet article de Dominique Pétoin indique comment faire :

https://www.petoindominique.fr/php/mesurematos.php

2.2.2. Mesures sur des circuits électroniques

Bien entendu, ici le niveau acoustique réel n'est pas utile, puisqu'il est inexistant. Le réglage du niveau est également moins critique que pour la mesure d'enceintes, en tous cas la mesure ne casse pas les oreilles, et pour cause. On pourra en toute tranquillité faire des mesures à niveau maximal.

Voici la courbe de réponse d'un filtre Linkwitz&Riley passe-haut calé sur 90Hz.


Il peut arriver que la mesure semble ne correspondre à rien de concret, ou qu'elle ne soit pas répétitive. Dans ce cas, il ne faut pas incriminer forcément le circuit que l'on est en train de tester. Le bug se situe souvent entre l'écran et la chaise, l'être humain :

  • mauvais choix des entrées / sorties dans la configuration de l'ordinateur
  • mauvaise calibration
  • etc.

3. Autres logiciels

Il existe d'autres logiciels, pas forcément gratuits : ARTA par exemple, installable seulement sous WINDOWS

4. Conclusion

REW est un logiciel assez complexe au premier abord. Il faut expérimenter pour l'avoir bien en main. Ensuite il rend de grands services.

Imaginez que vous deviez relever la courbe de réponse d'un filtre à l'aide d'un générateur de fréquences et d'un oscilloscope. Il vous faudra noter chaque valeur dans un tableur et afficher un graphe. Cela prendra un certain temps.

Et s'il faut refaire la mesure après une correction du circuit électronique, cela prendra le même temps.

Avec REW, l'apprentissage et les réglages prennent aussi du temps, mais ensuite chaque mesure dure 5 secondes.

Ceux qui lisent mes articles consacrés à l'audio auront probablement deviné mes intentions : tester un certain nombre de filtres actifs, et à terme, tester le résultat final sur des enceintes multi-amplifiées.


Cordialement

Henri


jeudi 2 septembre 2021

Un Power-Bank DIY

 


Un Power-Bank DIY

 

Dans le but d'alimenter un piège photographique, j'avais le choix entre plusieurs options :

  • 8 piles 1.5V AA
  • alimentation secteur
  • batterie 12V

L'alimentation à l'aide de 8 piles AA est une solution que je n'apprécie pas d'un point de vue écologique, et les remplacer par 8 batteries NI-MH est coûteux. En outre l'appareil ne dispose pas de chargeur intégré. Il faut démonter les batteries pour les recharger, ce qui est plutôt fastidieux.

Utiliser une alimentation secteur est une solution intéressante, mais le déplacement de l'appareil implique de débrancher l'alimentation. L'appareil perd l'heure et la date à chaque fois.

j'ai donc décidé de fabriquer un POWER-BANK 12V, rechargeable par USB.

Ce POWER-BANK a les caractéristiques suivantes :

  • batterie LIPO 10000 mAH récupérée dans une tablette en panne
  • chargeur USB TP4056 1A
  • convertisseur STEP-UP FP6293 : 2.6A maxi
  • sortie JACK 5.5x2.1

Pourquoi fabriquer un POWER-BANK ? Quel avantage par rapport à un POWER-BANK du commerce ?

Le premier avantage est que l'on peut choisir la tension de sortie : 12V par exemple.

Il existe des cartes qui regroupent les fonctions recharge et élévation de tension :

https://riton-duino.blogspot.com/2020/01/cartes-dalimentation-batterie.html

Le comportement n'est pas toujours celui que l'on attend, et aucune ne fournit une tension de 12V.

Si l'on cherche à construire un POWER-BANK 5V deux cartes me paraissent intéressantes :

Mais ces deux cartes ont l'inconvénient de couper automatiquement leur sortie lorsque le courant de sortie est en dessous de 200mA pour la première, 50mA pour la seconde.

Ce ne sera pas le cas du POWER-BANK que je compte construire. C'est indispensable, car un piège photographique consomme très peu lorsqu'il est en veille.

Autre avantage : le convertisseur STEP-UP FP6293 dispose d'une sortie très peu bruitée, ce qui peut être intéressant pour certains appareils.

1. Schéma

Le schéma est très simple :

La batterie LIPO est rechargée par un chargeur USB TP4056. La tension d'une batterie LIPO varie entre 3V (batterie presque vide) et 4.2V (pleine charge). Elle est élevée à 12V par un convertisseur STEP-UP à découpage FP6293 :

FP6293 12V

Ce module existe en différentes versions (5V, 6V, 9V et 12V). On peut donc fabriquer un POWER-BANK adapté à ses propres besoins.

On le trouve facilement sur AliExpress.

Il est même possible de fabriquer un POWER-BANK délivrant plusieurs tensions. Il suffit d'utiliser plusieurs convertisseurs.

On peut choisir un autre convertisseur STEP-UP en fonction de ses besoins. Le choix est vaste. Si les tensions classiques 5V, 6V, 9V ou 12V ne conviennent pas, il existe des modèles réglables :

Convertisseurs STEPUP & STEPDOWN

3. Montage

Le montage est facile.

La batterie est fixée à l'aide de ruban adhésif double face. Les composants sont soudés sur une plaquette à pastilles, elle même fixée à l'aide de colonnettes plastique collées au fond du boîtier à la colle cyanoacrylate.

Le câblage est réalisé sous la plaquette à l'aide de fil rigide 0.5mm².

Le connecteur de la batterie est un JST XH 2 points. On peut utiliser n'importe quel autre connecteur capable de supporter quelques ampères.

Le câble de sortie est soudé directement sur les broches du FP6293, mais on pourrait tout aussi bien ajouter un connecteur en façade (USB-A, JACK, etc.).

Le FP6293 est précis : je mesure 12.02V en sortie.

Le temps de charge dépendra bien évidemment de la capacité de la batterie : avec une LIPO de 10000mAH, la recharge prendra 10H.

3. Photo

Voici une image de la réalisation :

La batterie est en cours de recharge. La LED rouge du TP4056 est allumée. La LED bleue s'allumera en fin de charge.

Le boîtier est un KRADEX Z-78. Il faudra percer un petit trou en face des LEDs du TP4056 pour qu'elles soient visibles lorsque le boîtier est fermé.

4. Conclusion

Voici un petit montage simple qui va me rendre de grands services. On pourrait également alimenter toute sorte de montages mobiles (ARDUINO, ESP8266, ESP32) à l'aide de cet appareil, à condition d'en fabriquer un modèle 5V.

 

Cordialement

Henri


jeudi 12 août 2021

Ubuntu 18.04 : KICAD

 


Ubuntu 18.04 : KICAD

 

Suite à une mise à niveau UBUNTU de 16.04 vers 18.04, KICAD 4.0.7, le logiciel de conception électronique, m'a posé certains problèmes :

Comme on le voit sur cette image le déplacement du curseur laisse des traces fantômes dans l'éditeur schématique. De plus PcbNew est absolument inutilisable.

Je ne me vois absolument pas revenir en arrière et réinstaller une 16.04, celle-ci étant maintenue jusqu'en avril 2021. Or nous sommes en août 2021.

Après quelques recherches je suis tombé là-dessus :

https://bugs.launchpad.net/ubuntu/+source/kicad/+bug/1767652

Ce bug est effectivement signalé.

La correction passe par une ré-installation à partir d'un PPA (Personal Package Archives) :

https://launchpad.net/~js-reynaud/+archive/ubuntu/kicad-4

Pour installer ce nouveau dépôt, ouvrir un terminal et entrer les commandes suivantes :

sudo add-apt-repository ppa:js-reynaud/kicad-4
sudo apt-get update

Ensuite il sera possible de réinstaller KICAD :

sudo apt-get install kicad

Et cette nouvelle installation fonctionne.

Il y a un petit bémol : certaines librairies d'empreintes ont changé de nom :

  • Buttons_Switches_ThroughHole.pretty devient Buttons_Switches_THT.pretty
  • Capacitors_ThroughHole.pretty devient Capacitors_THT.pretty
  • Connect.pretty devient Connectors.pretty
  • Diodes_ThroughHole.pretty devient Diodes_THT.pretty
  • Relays_ThroughHole.pretty devient Relays_THT.pretty
  • Resistors_ThroughHole.pretty devient Resistors_THT.pretty
  • etc.

Mais il y a aussi une dizaine de nouvelles librairies.

Modifier la configuration à l'aide de l'application (menu préférences / Footprint Libraries) risque d'être fastidieux.

La nouvelle liste se trouve ici : /usr/share/kicad/template/fp-lib-table 

  • sauvegarder le fichier .config/kicad/fp-lib-table
    • cp .config/kicad/fp-lib-table .config/kicad/fp-lib-table.old
  • remplacer .config/kicad/fp-lib-table par /usr/share/kicad/template/fp-lib-table
    • cp /usr/share/kicad/template/fp-lib-table .config/kicad/fp-lib-table
  • ouvrir l'ancien et le nouveau fichier
    • gedit .config/kicad/fp-lib-table.old .config/kicad/fp-lib-table
  • copier / coller vos librairies personnelles (les lignes se trouvant après Wire_Pads) de l'ancien fichier vers le nouveau
  • ouvrir CvPcb. La nouvelle liste doit apparaître, sans message d'erreur
  • détruire la sauvegarde
    • rm .config/kicad/fp-lib-table.old

 

Cordialement

Henri


mardi 10 août 2021

Modules à relais DIY

 


Modules à relais DIY

 

Les modules relais sont très nombreux dans le commerce, mais ils n'offrent en général que des possibilités limitées. Nous allons voir dans cet article comment les réaliser et surtout pour quelles raisons nous aurions à les fabriquer nous-même.

Dans cet article nous allons aborder différents sujets :

  • relais classiques ou bistables
  • pilotage de relais avec des transistors
  • pilotage de relais avec un ULN2803
  • élévateurs de tension
  • modules relais pilotés par I2C

1. Présentation

Prenons un exemple :

Cette carte comporte un relais, un transistor de commande, 2 LEDs, trois résistances de 1KΩ et un connecteur 3 broches (GND, 5V, IN).
La description de la carte précise que ce relais doit être commandé par un niveau bas.

Cela me convient-il ? pas forcément. J'ai plutôt l'habitude de commander mes relais avec un niveau haut et les LEDs sont inutiles. De plus la résistance de base de 1KΩ est faible et impose un courant de commande de 5mA.

Elle a un autre défaut : elle ne possède pas de trous de fixation.  

Attention, certains modules sont équipés d'optocoupleurs bas de gamme avec des résistance d'entrée de 200Ω et réclament 20mA.

D'autres cartes proposent un cavalier afin de pouvoir choisir le niveau de la broche de commande :

Ces modules sont équipés en général de relais chinois du type SONGLE SRD-05VDC-SRD, ce qui n'est pas vraiment un gage de qualité.

1.1. Modules à optocoupleur

Les modules sont en général équipés d'un optocoupleur. Quel intérêt ? Le relais offre déjà lui-même une isolation galvanique tout à fait suffisante, 1000V pour les plus courants.

Sur ce module, on voit 2 connecteurs :

  • connecteur d'alimentation
    • JD-VCC
    • VCC
    • GND
  • connecteur de commande :
    • VCC
    • IN1, IN2
    • GND

Pourquoi 2 broches VCC et deux broches GND ?

Il faut examiner un schéma pour avoir l'explication :

On peut remarquer que les relais seront activés si l'on applique un niveau bas 0V sur IN1 ou IN2, et seront désactivés si l'on applique un niveau haut 5V sur IN1 ou IN2.

Les deux proches VCC sont reliées entre elles, ainsi que les deux broches GND. Le cavalier J5 permet de relier VCC à JD-VCC (ou RY-VCC).

Il y a deux façons de brancher ces modules.

1.1.1. La manière simple en 5V

Il suffit de laisser le cavalier en place entre VCC et JD-VCC, et de relier le module comme ceci :

Cela fonctionne mais seulement si les relais sont des modèles à bobine 5V.

Si l'on alimente par la broche VCC du connecteur de commande sous 12V, il sera impossible de désactiver les relais. En effet, si VCC vaut 12V et que la tension de commande sur D2 ou D3 est de 5V, il reste 7V aux bornes des composants R4+opto+LED, et le relais est donc activé.

1.1.2. La manière moins simple en 12V

Si les modules relais sont des modèles à bobine 12V, il faut retirer le cavalier entre VCC et JD-VCC, et relier le module comme ceci :

On peut aussi utiliser ce câblage avec des relais à bobine 5V ou 24V.

Comme on le voit sur ce schéma, la broche GND du connecteur de commande n'est pas utile. En effet, lors de l'activation d'un relais, le courant de commande va circuler du +5V, à travers l'optocoupleur, vers la sortie de l'ARDUINO.

Ici, le 12V présent sur la broche JD-VCC du connecteur d'alimentation peut être obtenu de plusieurs manières :

On peut utiliser une alimentation 12V pour le module relais, et alimenter également l'ARDUINO en 12V par sa broche VIN. Attention, certains ESP8266 ou ESP32 n'acceptent pas plus de 6.5V sur leur entrée 5V ou VCC. Il faudra ajouter un convertisseur STEP-DOWN.

On peut également utiliser un convertisseur STEP-UP 5V / 12V branché sur une alimentation 5V.

On peut utiliser 2 alimentations séparées, une alimentation 5V pour l'ARDUINO et une alimentation 12V pour le module relais. Les masses n'auront pas besoin d'être reliées.

Que se passe t-il si on raccorde la broche GND du module à la broche GND de l'ARDUINO ? Rien de spécial. Le GND de l'alimentation 12V sera relié au GND de l'ARDUINO.

1.1.3. Isolation galvanique

On lit beaucoup d'âneries à ce sujet. Les modules à relais avec optocoupleur apporteraient soit-disant une isolation galvanique (absence de liaison électrique), et cette isolation serait un plus.

Rien n'est plus faux. Je ne vois pas par quel miracle ou tour de magie il pourrait exister une isolation galvanique entre un ARDUINO et un module relais se partageant la même alimentation, en tout cas la même masse.

La seule manière d'obtenir une isolation galvanique totale entre l'ARDUINO et la partie commande de la bobine du relais est d'utiliser deux alimentations totalement distinctes, et de ne pas relier la broche GND de l'ARDUINO à celle du module relais.

Deuxièmement, on se demande ce que peut bien apporter une isolation galvanique entre l'ARDUINO et la partie commande de la bobine du relais. Il n'y a aucune que cela apporte quoi que ce soit. Par contre l'isolation galvanique est indispensable entre la partie commande de la bobine du relais et les contacts de celui-ci. Mais un relais offre déjà une isolation galvanique élevée : environ 1000V.

S'il s'agissait d'un module relais à bobine 230V, commandé par un opto-triac, je comprendrais l'utilité d'une l'isolation galvanique. Personne n'a envie de se prendre une châtaigne 230V en touchant un ARDUINO relié à la phase.

1.2. Domaine d'utilisation

En général, lorsqu'on utilise un relais, c'est que l'on a une charge 230V à alimenter. Si la charge fonctionne sous tension continue 12V ou 24V, il est préférable d'utiliser un MOSFET, ce qui apportera des avantages indéniables :

  • courant de commande minime
  • fiabilité
  • absence de bruit

J'en ai déjà parlé ici :

MOSFETS de puissance 

Un Module à 8 ou 16 Mosfets

Piloter des Relais ou des MOSFEts à l'aide d'un Module MCP23008 ou MCP23017 

1.3. Dissipation

Ces relais dissipent environ 350mW lorsque leur bobine est alimentée.

Si le courant traversant les contacts est important, le résistance de contact (en général 100mΩ) dissipera également de la puissance, par exemple 1W pour 10A, et provoquera une augmentation supplémentaire de température.

Cela paraît peu, mais cela peut poser des problèmes dans un boîtier de très faibles dimensions et non ventilé. La bobine peut s'échauffer, se dilater, et se coincer en position contacts fermés. Cela m'est déjà arrivé sur une prise connectée du commerce.

1.4. Module relais 3V

Il existe peu de modules relais fonctionnant sous 3V. ce point est très dérangeant lorsque l'on désire commander un relais à partir d'un microcontrôleur 3.3V.

D'autre part un module relais 3V ne peut être alimenté directement à l'aide d'une batterie (LITHIUM-ION ou LIPO), car il ne supportera pas la tension de 4.2V de ces batteries à pleine charge.

1.5. Module relais bistable

 Avec un grand nombre de relais l'utilisation de modèles bistables permet de limiter la consommation de l'ensemble.

Avec 8 relais 5V par exemple, s'il sont tous fermés, la consommation sera de 150mA par relais, donc 1.2A au total.

Si l'on utilise des relais bistables, le module consommera 150mA à chaque commutation pendant quelques dizaines de millisecondes, ensuite cette consommation retombera à ZÉRO.

L'alimentation sera donc beaucoup moins puissante qu'avec des relais traditionnels.

J'ai déjà utilisé ce type de relais ici :

Une prise connectée MYSENSORS

Un télérupteur MYSENSORS pour rail DIN 

Le relais bistable possède soit une bobine que l'on alimente dans un sens ou dans l'autre pour fermer ou ouvrir les contacts, soit deux bobines avec un point milieu. La durée d'alimentation des bobines est très courte (10ms à 20ms).

J'en ai déjà parlé ici :

Piloter un relais. Transistor unipolaire ou bipolaire ?

Ce type de relais permet d'une part d'économiser l'énergie, et d'autre part d'éviter une surchauffe de la bobine si celle-ci est sous tension pendant une durée importante, surtout si le montage est intégré dans un boîtier non ventilé.

Les relais bistables ne sont pas forcément plus cher. Par exemple un OMRON G5RL-K1A-E 5V (bistable) coûte même 10% moins cher qu'un FINDER 40.61.9.005.0000 (simple).

Le seul inconvénient est que le relais bistable mobilise deux sorties du microcontrôleur.

Les modules à relais bistables sont pratiquement inexistants sur le marché. On peut noter celui-ci (12V), disponible sur AliExpress :

Attention aux modules dits bistables, qui ne sont en réalité que des relais classiques commandés par une électronique gérant deux états :

D'autre part ce module possède une seule broche de commande, et fonctionne comme un télérupteur. Le microcontrôleur n'a donc aucun moyen de savoir dans quel état le relais va basculer.

2. Les besoins

J'avais déjà décrit une carte à 4 relais ici :

ARDUINO : prototypage amélioré sur breadboard

Je vais présenter ici plusieurs modules étudiés récemment pour couvrir mes besoins pour plusieurs projets :

  • 1 module à relais simple 16A
  • 3 modules à relais bistable 16A
  • 2 module I2C à relais classiques 10A ou 16A
  • 4 modules I2C à relais bistable 16A

Ces modules ont des caractéristiques communes :

  • des relais de qualité
  • pas d'optocoupleur
  • pas de LEDs
  • commande basse tension (3V à 5V)
  • commande par un niveau haut
  • des trous de fixations

3. Les schémas

Les schémas suivants ont un point commun. Les contacts des relais sont en parallèle, ce qui permet de doubler le courant admissible.

Certains relais FINDER SPDT (série 40.61 par exemple) peuvent être remplacés par des DPDT (série 40.52 par exemple). Le brochage est identique.

La plupart des modules disposent d'un connecteur J1 d'alimentation séparée pour les bobines de relais. L'utilisation est la suivante :

  • alimentation en 5V : mettre en place un cavalier sur les broches 2 et 3
  • alimentation séparée de la partie puissance : alimenter par les broches 1 (GND) et 3 (5V, 12V ou 24V), en fonction des relais utilisés.
  • pour obtenir un module relais 12 ou 24V, il suffit de remplacer les relais 5V par des modèles 12V ou 24V.

3.1. Transistors de commande

Pour commander un relais, on peut utiliser soit des transistors (2N2222 par exemple) ou un ULN2803A.

3.1.1. Transistor

Rappelons le schéma classique d'une commande de relais :


Calculons la résistance de base du transistor. Le 2N2222 a été choisi pour son gain important, mais également pour sa tension de saturation faible (45mV sur un relais du type SONGLE SRD-05VDC-SRD).

Ce transistor sera capable de piloter des relais 24V. Au delà, on peut s'orienter vers un 2N4238, par exemple, supportant 60V.

Le courant de bobine d'un relais OMRON G5RL-K1A-E 5V est de 120mA, et 130mA pour le FINDER 40.61.9.005.

Le gain du 2N2222 est de 50 pour un courant de collecteur de 130mA. Le courant minimal pour assurer la saturation sera de 130mA / 50 = 2.6mA. Nous allons doubler cette valeur par sécurité : 5mA.

Le courant de base maximal du 2N2222 est de 50mA, il supportera donc sans problème 5mA.

Il faut considérer deux cas :

  • commande en 5V (premier montage)
  • commande entre 3V à 3.3V correspondant à un microcontrôleur alimenté par batterie LITHIUM-ION sur son entrée VIN, ou à l'aide d'un régulateur externe 3.3V.

Pour le deuxième cas, quand la tension de la batterie descendra en dessous de 3.2V, le microcontrôleur sera alimenté sous 3V (régulateur LDO avec 200mV de chute de tension drop-out).

Pour une commande en 5V la résistance de base sera au maximum de (5V - 0.6V) / 5mA = 880Ω.

Pour une commande en 3V la résistance de base sera au maximum de (3V - 0.6V) / 5mA = 480Ω.

Avec cette résistance, pour une commande en 3.3V le courant de base sera 10% supérieur.

Si l'on adopte un relais 12V le courant de bobine sera moins important : 50mA. Il est facile de refaire les calculs.

3.1.2. ULN2803

L'ULN2803 est constitué de 8 transistors darlington. Il possède tous les composants nécessaires :

  • 8 transistors pouvant accepter 500mA
  • résistances de base
  • diodes de roue libre

L'ULN2803 remplace donc avantageusement les 8 transistors d'un montage classique, avec leurs composants annexes. La largeur de la carte en sera fortement réduite. 

De plus il supporte 50V, et pourra donc piloter des relais 48V.

La résistance de base d'un ULN2803 a une valeur de 2.7KΩ. La tension VBE est de 1.3V :

  • le courant de base sous 5V sera de : (5V - 1.3V) / 2700 = 1.3mA
  • le courant de base sous 3.3V sera de : (3.3V - 1.3V) / 2700 = 0.74mA

Un microcontrôleur ou un expander est capable de fournir 20mA en sortie. Comme l'ULN2803 a un gain très important (1000) il n'aura aucun mal à piloter le relais.

L'ULN2003A a toutefois un inconvénient : c'est un darlington, et il occasionne une chute de tension (VCEsat) de 1V sur la commande de bobine du relais.

Avec un montage à transistors 2N2222, cette chute de tension est de seulement 45mV.

Avec un relais 5V il restera 4V aux bornes de la bobine. Les relais, heureusement, sont tolérants :

  • un SONGLE SRD-05VDC-SRD réclame 75% de la tension nominale
  • un OMRON G5RL-K1A-E réclame 70% de la tension nominale
  • un FINDER 40.61.9.005 réclame 80% de la tension nominale

Avec certains relais (le FINDER par exemple), 4V de tension de commande risquent d'être insuffisants. 

Par contre avec un relais 12V il restera 11V aux bornes de la bobine, ce qui plus acceptable. Pour ma part je réserverais ce genre de montage à des relais 12V ou 24V.

3.2. Les modules relais bistable

Les modules suivants répondent à un besoin assez général : proposer une solution alternative aux modules du commerce, en utilisant des relais bistables.

3.2.1. Module relais bistable double bobine

Ce module est équipé comme suit :

  • 1 relais OMRON G5RL-K1A-E 5V 16A
  • 2 transistors 2N2222
  • 2 résistances 680Ω
  • 2 diodes de roue libre 1N4148
  • 1 connecteur DUPONT mâle 4 broches
  • 1 borniers 16A

Un relais bistable à double bobine est utilisé :

Le relais dispose de 3 broches pour les bobines :

  • un point commun à relier au + de l'alimentation
  • deux broches SET et RESET à relier aux collecteurs de 2 transistors de commande

Une impulsion 5V sur la broche 2 du connecteur d'entrée suffit à fermer les contacts du relais.

Une impulsion 5V sur la broche 3 du connecteur d'entrée suffit à ouvrir les contacts du relais.

Pour obtenir un module relais 12 ou 24V, il suffit de remplacer le relais 5V par un modèle 12V ou 24V. Cela n'aura pas d'impact sur les niveaux de tension de commande (5V).

J'utilise ce module sur un montage à base d'ARDUINO PRO MINI 5V 16MHz alimenté sur secteur.  L'électronique est confinée dans un petit boîtier étanche, le relais bistable permet d'éviter l'échauffement.

3.2.2. Module double relais bistable simple bobine


Ce module est équipé comme suit :
  • 2 relais OMRON G5RL-U1A-E 5V 16A
  • 1 L293D
  • 1 connecteur DUPONT mâle 7 broches
  • 1 connecteur DUPONT mâle 3 broches
  • 2 borniers 16A

Par rapport au schéma précédent, un relais bistable à simple bobine est utilisé :

Le relais dispose de 2 broches pour la bobine. Pour le piloter on alimente la bobine, pendant un bref instant, dans un sens ou dans l'autre pour fermer ou ouvrir les contacts. Il nous faut donc un pont en H.

Un L293D, que l'on utilise en général pour alimenter des moteurs à courant continu, convient parfaitement ici. Il permet même de se passer de diodes de roue libre.

Attention : le L293D est équipé de diodes, ce n'est pas le cas du L293.

La broche 7 permet d'alimenter la partie logique 5V du L293D. Cette tension de 5V est une obligation (4.5V à 7V), ce circuit ne saurait être alimenté sous 3.3V.

Les tensions sur les entrées de commande, par contre, peuvent accepter une tension de 3.3V sans problème (au minimum 2.3V).

La broche 6 ENABLE permet d'activer le L293D ou non. Cette broche, lorsqu'elle est à ZERO volts, permet d'économiser de l'énergie (10mA au lieu de 27mA à 35mA).

Les broches 2 à 5 permettent de désactiver et d'activer les relais 1 et 2.

A noter : si 10mA au repos est une consommation trop importante on peut remplacer le L293D par un TB6612FNG. La consommation tombera à 1µA.

Un sketch de commande est disponible :

https://bitbucket.org/henri_bachetti/arduino-relay-modules/src/master/arduino/dual-bistable-relay/dual-bistable-relay.ino

3.3. Les modules relais 3V

Les modules suivants répondent à un besoin précis : pouvoir être commandés par une carte ARDUINO PRO MINI 3.3V ou un ESP8266 ou ESP32, sans pour autant devoir ajouter une alimentation 5V, 12V ou 24V pour le relais.

Ils peuvent être alimentés sous 3.3V, ou 3.7V dans le cas d'une alimentation par batterie LITHIUM-ION ou LIPO (3V à 4.2V).

3.3.1. Module relais classique

Ce module est équipé comme suit :

  • 1 relais FINDER 40.61.9.005.0000
  • 1 module convertisseur STEP-UP XR2981
  • 1 transistor 2N2222
  • 1 résistance 390Ω
  • 1 diode de roue libre 1N4148
  • 1 connecteur DUPONT mâle 4 broches
  • 1 bornier 16A

C'est un relais classique, comme en sont équipés les modules du commerce, sauf que celui-ci est un relais 16A de marque FINDER, gage de qualité.

La particularité de ce module relais est d'utiliser un convertisseur STEP-UP XR2981 pour alimenter la bobine du relais en 5V.

Module XR2981 5V

Le module XR2981 consomme 120µA au repos.

La faible résistance R1 à la base du 2N2222 permet d'accepter une tension de commande plutôt basse (broche 2), de 3V.

La broche 4 du connecteur d'entrée est une sortie 5V que l'on pourra utiliser pour alimenter un module ou plusieurs modules 5V.

On peut parfaitement utiliser un relais 12V ou 24V, en remplaçant le XR2981 par un module SX1308 (mêmes dimensions, même brochage), que l'on réglera sur 12V ou 24V, mais attention la tension sur la broche 4 du connecteur sera également de 12V ou 24V.

Module SX1308 réglable

Le module SX1308 consomme 1mA au repos.

Comme tout module relais du commerce, celui-ci ne devra pas être enfermé dans un boîtier de dimensions très réduites non ventilé, sauf si la durée de fonctionnement du relais est courte.

3.3.2. Module relais bistable

Ce module est équipé comme suit :
  • 1 relais OMRON G5RL-K1A-E 5V 16A
  • 1 module convertisseur STEP-UP XR2981
  • 2 transistors 2N2222
  • 2 résistances 390Ω
  • 2 diodes de roue libre 1N4148
  • 1 connecteur DUPONT mâle 5 broches
  • 1 bornier 16A

Ce module reprend la conception du précédent, en adoptant un relais bistable à deux bobines.

Ici c'est la broche 5 du connecteur d'entrée qui est une sortie 5V. 

3.4. Augmenter le nombre de relais

Il est possible bien entendu de réaliser des modules à 4, 8 ou 16 relais, en suivant les mêmes principes que précédemment, mais que penser d'un module à 8 ou 16 relais bâti de cette manière ?

Il monopolise 8 ou 16 sorties de l'ARDUINO. On constate qu'avec 16 relais, les limites d'un ATMEGA328P sont atteintes. On peut certainement mieux faire.

Les modules relais ont évolué, grâce je pense à des optocoupleurs plus sensibles. Le dernier que j'ai acheté (4 relais) demande un courant de commande de seulement 1.4mA. Un module 16 relais aura donc besoin de 22mA au total, ce qu'une carte ARDUINO est parfaitement capable de fournir.

Les modèles un peu plus anciens demandaient un courant de commande de 5mA. Si tous les relais sont activés, un module 8 relais consommera 40mA sur les sorties du microcontrôleur, et cette consommation montera à 80mA pour un module à 16 relais.

Attention : avec certains module relais anciens et bas de gamme du commerce ce courant de commande peut doubler, et on approche dangereusement de la limite des 200mA du microcontrôleur.

3.4.1. Expander

Un expander d'entrées / sortie I2C 8 bits ou 16bits peut également être utilisé afin de limiter le nombre de broches de commande :

  • un MCP23008 + 8 transistors + 8 relais classiques
  • un MCP23008 + 8 transistors + 4 relais bistables
  • un MCP23017 + 16 transistors + 16 relais classiques
  • un MCP23017 + 16 transistors + 8 relais bistable

Un module relais équipé d'un expander MCP23017 I2C 16 canaux permettra de piloter 16 relais (ou 8 relais bistables). Comme le MCP23017 possède 3 broches de sélection d'adresse I2C, on peut connecter jusqu'à 8 modules. Cela permettra de piloter en tout 128 relais (ou 64 relais bistables).

Le nombre de broches de commandes est réduit à seulement 2 (SDA et SCL) :

  • ARDUINO : A4 & A5
  • ESP8266 : GPIO4 & GPIO5
  • ESP32 : GPIO21 & GPIO22

Le câblage sera donc réduit par l'utilisation du bus I2C.

3.4.2. Cartes commerciales

Des solutions commerciales équipées d'un expander existent :

Cette carte à 8 relais utilise un expander I2C PCF8574, un 74HC240 et un ULN2803A :

https://www.ereshop.com/shop/index.php?main_page=product_info&cPath=143_178&products_id=788

Son prix est assez élevé : 42$

3.4.3. Réalisation à l'aide de modules du commerce

Il est possible d'utiliser un module à relais et un module expander du commerce :

Module à 8 relais


Module MCP23017

On devra donc relier les sorties du module expander aux entrées du module à relais. J'ai déjà écrit un article à ce sujet :

Piloter des Relais ou des MOSFEts à l'aide d'un Module MCP23008 ou MCP23017

3.4.4. Réalisations personnelles

Si l'on désire une solution tenant sur une seule carte, ou une solution à relais bistables, il faudra la réaliser soi-même.

Les exemples suivants sont construits autour d'un expander MCP23008 ou PCF8574. Ils utilisent des transistors 2N2222 ou un driver ULN2803.

Comme pour les exemples précédents, pour obtenir un module relais 12 ou 24V, il suffit de remplacer les relais 5V par des modèles 12V ou 24V (et même 48V pour le ULN2803).

Certains modules utilisent des relais OMRON-G5RL-K1A-E (SPST), d'autres des OMRON-G5RL-K1-E (SPDT). Ils sont compatibles broche à broche.

Un cavalier (JP1 sur les schémas) permet de relier les broches 4 et 5 du connecteur dans le cas où l'on désire alimenter uniquement en 5V avec la même source d'alimentation.

Trois ponts de soudure (JP2) permettent de changer l'adresse I2C du module (0x20 à 0x27) :
 

Les deux composants MCP23008 et PCF8574 occupent la même plage d'adresses I2C.

A0, A1 et A2 correspondent aux broches suivantes :

    MCP23008 : 5, 4, et 3
    MCP23017 : 15, 16 et 17
    PCF8574 : 1, 2 et 3

L'adresse I2C est sélectionnée à l'aide de points de soudure. Exemple pour un MCP23017 :

Pour obtenir l'adresse 0x20 il faudra réunir les pastilles 1-2, 4-5, 7-8
Pour obtenir l'adresse 0x21 il faudra réunir les pastilles 2-3, 4-5, 7-8
Pour obtenir l'adresse 0x22 il faudra réunir les pastilles 1-2, 5-6, 7-8
Pour obtenir l'adresse 0x23 il faudra réunir les pastilles 1-2, 4-5, 8-9
etc.

3.4.4.1. Exemple avec un MCP23008 et 8 relais classiques


Ce module est équipé comme suit :
  • 8 relais FINDER 36.11.9.005 10A (compatibles avec les SONGLE SRD-05VDC-SRD)
  • 8 transistors 2N2222
  • 8 résistances 680Ω
  • 8 diodes de roue libre 1N4148
  • 1 connecteur DUPONT mâle 4 broches
  • 1 connecteur DUPONT mâle 3 broches
  • 8 bornier 10A

La broche 4 permet d'alimenter le MCP23008. Il est possible de l'alimenter sous 3.3V ou 5V (1.8V à 5.5V). Le MCP23008 consomme 2µA.

Comme tout module à relais du commerce, celui-ci ne devra pas être enfermé dans un boîtier de dimensions très réduites non ventilé, sauf si la durée de fonctionnement des relais est courte.

Avec 8 relais 5V par exemple, s'il sont tous activés, la consommation sera de 70mA par relais, donc 560mA au total sur la broche VCC.

3.4.4.2. Autre exemple avec un MCP23008 et 8 relais classiques

Ce module est équipé comme suit :
  • 8 relais FINDER 40.61.9.005.0000 16A
  • 1 ULN2803
  • 1 connecteur DUPONT mâle 4 broches
  • 1 connecteur DUPONT mâle 3 broches
  • 8 bornier 10A

Comme dit plus haut (3.1.2. ULN2803), je réserverais ce genre de montage à des relais 12V ou 24V.

3.4.4.3. Exemple avec un MCP23008 et 4 relais bistables

Ce schéma reprend le principe de l'exemple N°1, avec des relais bistables.

3.4.4.4. Exemple avec un PCF8574 et 4 relais bistables

Ce schéma reprend le principe du précédent, avec un PCF8574.

3.4.4.5. Autre exemple avec un MCP23008 et 4 relais bistables

Ce schéma reprend le principe de l'exemple N°2, avec des relais bistables.

Comme dit plus haut (3.1.2. ULN2803), je réserverais ce genre de montage à des relais 12V ou 24V.

3.4.4.6. Autre exemple avec un PCF8574 et 4 relais bistables

On peut réaliser le même module que précédemment avec un expander I2C PCF8574 :

Comme précédemment, les remarques concernant la chute de tension de 1V sur la commande de bobine du relais s'appliquent.

Ce montage souffre d'un autre problème. Le PCF8574 est capable de fournir seulement 100µA en sortie (niveau haut). Comme l'ULN2803 a un gain très important (1000) il pourra néanmoins piloter le relais si celui-ci réclame un courant inférieur à 100mA. Pour certains relais 5V ce courant risque d'être insuffisant.

Si l'on désire piloter absolument des relais 5V ayant un courant de bobine important, il faudra intercaler driver de ligne (un 74HC240 par exemple) entre le PCF8574 et l'ULN2803 :

74HC240

L'encombrement des deux circuits (74HC240 + ULN2803) sera sensiblement le même que celui de 8 transistors avec leurs résistances et diodes, ce qui diminue l'intérêt d'avoir recours à un ULN2803.

Pour ma part, comme précédemment, je réserverais donc ce genre de montage à des relais 12V ou 24V.

3.4.3.7. Pilotage avec un ESP32

Passons à la pratique. Avec les montages précédent (PCF8574 ou MCP23008), sur un ESP32, les connexions seront les suivantes :

  • 21 : SDA
  • 22 : SCL
  • GND
  • VDD : 3.3V
  • VCC : en fonction de la tension des relais (5V, 12V ou 24V)

Voici deux petits exemples de serveur ESP32 utilisant les librairies suivantes :

https://github.com/RobTillaart/PCF8574

https://github.com/adafruit/Adafruit-MCP23008-library

Les exemples sont situés dans la repository bitbucket (voir 7. Téléchargement). Voici les liens directs :

https://bitbucket.org/henri_bachetti/arduino-relay-modules/src/master/arduino/esp32-pcf8574/esp32-pcf8574.ino

https://bitbucket.org/henri_bachetti/arduino-relay-modules/src/master/arduino/esp32-mcp23008/esp32-mcp23008.ino

Une petite page HTML pourvue d'un bouton permet d'activer et désactiver le relais N°1 :

3.4.5. Autres exemples

Bien entendu, on pourrait imaginer différents montages sur le même principe :

  • expander PCF8574 + ULN2803 + 8 relais classiques
  • expander PCF8575 ou MCP23017 + 2 ULN2803 + 8 relais bistables
  • expander PCF8575 ou MCP23017 + 2 ULN2803 + 16 relais classiques
  • etc.

Un registre à décalage 74HC595 serait également utilisable mais il monopolisera 3 broches de l'ARDUINO, au lieu de 2 pour un expander I2C.

4. Sécurité

Lorsque l'on manipule du 230V on doit prendre des précautions, en particulier ne pas toucher les parties haute tension (contacts, bornier de sortie), ni le dessous du module.

Il est totalement déconseillé de fabriquer des cartes devant supporter du 230V à l'aide de plaquettes à pastilles. L'écartement entre pastilles est nettement insuffisant pour assurer une isolation correcte sous 230V. En conséquence un PCB s'impose.

5. Réalisation

Si les contacts du relais doivent être soumis à des courants importants, il est conseillé de surcharger les pistes de puissance à l'aide de soudure, ou de souder sur ces pistes un fil rigide de section appropriée, par exemple 1.5mm² pour 16A.

6. Photos

Voici des images des premiers modules réalisés :

Module relais bistable

Module 2 relais bistables + L293D

Le module 2 relais bistables + L293D en action :


Les autres modules devraient suivre au rythme de la création des projets qui les utiliseront.

7. Téléchargement

Pour télécharger les projets :

https://bitbucket.org/henri_bachetti/arduino-relay-modules

Cette page vous donne toutes les informations nécessaires :

https://riton-duino.blogspot.com/p/migration-sous-bitbucket.html

8. Conclusion

On pourrait penser que les modules du commerce conviennent à la plupart de nos montages, mais ce n'est pas forcément le cas, surtout si l'on prend en compte la problématique de l'alimentation par batterie et celle de l'échauffement de la bobine.

9. Liens utiles

D'autres articles à propos de relais :

Piloter un relais. Transistor unipolaire ou bipolaire ?

Piloter des Relais ou des MOSFEts à l'aide d'un Module MCP23008 ou MCP23017

Relais Retardé sans Microcontrôleur

Télécommande de Relais par Infra-Rouge


Cordialement

Henri

10. Mises à jour

12/08/2021 : ajout connecteurs de puissance + cavaliers