Pb commande relais 5v

Bonjour, j'ai acheté ce relai sur amazon. Je l'ai câblé selon le schéma joint sans déplacer le cavalier (photo jointe) et si je connecte une des commandes sur 5V, ça ne fonctionne pas. Le relai est activé si je connecte la commande In1 ou In2 sur Gnd et non pas Vcc. Je ne comprends pas pourquoi

relai amazon

Arduino UNO et Relais 5V _ Guide Complet pour un Montage Réussi - Atelier de la Robotique.pdf (2,9 Mo)

Merci de votre aide

Bonjour,

Ces modules relais sont actifs à l'état bas, c'est à dire qu'ils se ferment avec 0V sur la commande et s'ouvrent avec 5V sur la commande.

Voir le schéma:

Si le schéma est bien le bon et que les contacts sont bien des inverseurs,
Soit on inverse la commande
Soit, si on veut conserver le choix HIGH pour quand le relais est actif,il suffit d’inverser les nom travail (NO = normaly open) et repos (NC = normaly closed ).

Attention quand même à ce qu’il se passe à l’établissement de la tension.
Tout dépend de ce qui est connecté sur les contacts du relais.

Pour la sécurité il faut que dans la situation où le relais est alimenté et où la carte micro n’est pas encore alimentée ou que le micro est encore en phase demarage, on ne se trouve pas dans une situation où on peut detruire le matériel ou même dangeureuse.

Il n'y a pas de problème à la mise sous tension car les pins sont en entrée donc avec une impédance de plusieurs MΩ et ne peuvent donc pas sourcer suffisamment de courant pour allumer la led de l'optocoupleur.
Donc le relais reste ouvert.

C’est gentil tout ça mais ce n’était pas noté sur le descriptif. Et puis pour le piloter les sortie Arduino sont 0 ou 5v. Vous pensez que sur une sortie digitale pilotée low le relai sera activé ?

Oui, bien sur. C'est fait pour.

ok super, du coup je garde ce module et ça fonctionne. Merci à tous pour votre aide

Ce n'est qu'une partie du sujet, c'est le coté microcontroleur.

Ce que je dis c'est qu'il faut vérifier ce qu'il se passe quand :

  • l'électronique de commande n'est pas alimentée
  • le module relais est alimenté

ou :

  • l'électronique de commande est alimentée avec tous les modules raccordés
  • le relais n'est pas alimenté

Que se passe-t-il ?

Tu sais que, naturellement, assez nombreux sont ceux qui souhaitent que le lancement une action se fasse avec un état Haut sur le gpio.
C'est le plus logique pour le cerveau.

Avec un relais, dont l'électronique de commande inverse, et des inverseurs, il est possible de faire ce que l'on veut.

Selon comment est réalisé le câblage du relais et ce qui est connecté sur son contact, il peut y avoir une période transitoire dont il ne faut pas ignorer l'existence.

Pour éviter le transitoire entre la commande pinMode et la commande digitalWrite, on peut prépositionner l'état logique d'un gpio, faire un digitalWrite avant le pinMode.

Cela marche bien avec des micro avr où les blocs d'électroniques du choix du mode de sortie et ceux du choix du niveau haut ou bas sont indépendants.

Je n'ai jamais pu le faire avec un ESP32, justement parce qu'une bonne partie du fonctionnement de l'ESP32 n'est pas basé sur des blocs d'électronique, mais sur de la programmation.

L'ESP32 est un microcontrôleur fabriqué par Cadence et qui est "à terminer" par le client (Espressif).
Il ne semble pas qu'Espressif a les compétences pour faire de l'électronique pure, soit il achète (très cher) des blocs complémentaires à Cadence, soit pour obtenir de prix de vente très bas, il fait le maximum en programmation.
En programmation, on ne fait pas ce que l'on peut faire, plus difficilement, mais plus efficacement, en électronique.

Pour @vincent5157
Explication du fonctionnement :

Note la diode référencée IN1 est juste un indicateur lumineux qui indique que la bobine du relais est alimentée.


Si la broche IN1 est à l'état HAUT, c'est-à-dire Vcc = 5 V, la diode électroluminescente de l'optocoupleur U1, (Del en français, led en anglais) voit ses deux extrémités portées au même potentiel.

  • Elle est court-circuitée et aucun courant ne la traverse, elle n'êmet aucun photon.
  • Le phototransistor de U1 ne reçoit aucun photon sur sa base, il est bloqué
  • La base de Q1 est à 0 V, Q1 est bloqué et la bobine du relais n'est pas alimentée.

Si IN1 est porté à l'état bas (0 V):

  • Un courant peut traverser la del de U1 qui va émettre des photons.
  • La base du phototransistor de U1 reçoit des photons qui donnent naissance à des électrons, il conduit.
  • La base de Q1 est portée au potentiel 5 V au travers la résistance de 510 ohms → le transistor Q1 conduit, la bobine du relais est alimentée, le relais colle.

Merci pour ce cours. Les derniers c’était il y a 50 ans ! Plus sérieusement je ne vois nulle part dans le descriptif que le relai est activé niveau bas. S’il faut analyser le schéma quand on achète un module il y aura d’autres erreurs

C'est la contrepartie du prix très bas de tous ces modules fabriqués en Chine, il n'y a pas souvent de documentation.
Heureusement il y a internet pour avoir des informations sur leur utilisation.

Le descriptif reste discret sur la chose mais tu t'es aperçu par toi-même que la commande était active à l'état bas sans aucune analyse de schéma.

Bonjour,

C'est d'autant plus trompeur que le tuto expliquant le fonctionnement de CE relais dit

Etat HAUT = activation du moteur

Avec le moteur câblé sur le contact Normalement Ouvert

La realité ne colle pas avec le code sensé être juste, tel que c'est câblé, il faut envoyer un niveau BAS pour activer le moteur (et non HAUT)

Ensuite, les remarques de @68tjs sont essentielles, qu'est ce qui se passe à la mise en route?

Est-ce que le moteur ne va pas s'activer ne serait ce que quelques ms?

Au niveau "securité", c'est toujours mauvais de n'avoir rien à faire (envoyer 0) pour activer une machine.

Bonjour,
Comme le programme est supposé démarrer le moteur, attendre 4s, arrêter le moteur, attendre 4s, et rebelote, il est difficile de s’apercevoir que le programme ne fonctionne pas correctement et commence par un arrêt moteur.

Non. Voir ma réponse au post #4

Oui, j'ai bien lu votre réponse, pour le cas d'un Arduino, et j'ai aussi lu celle du post #8, d'où mon avertissement, il peut y avoir dans certains cas un flottement au démarrage.

Pas non !

Relai fermé = état bas.

Le processus :
Après une RAZ toutes les IO sont en mode HZ, en français en mode entrée haute impédance.

Quand on fait un pinMode(x, OUTPUT) on bascule un "inverseur électronique interne" qui au lieu de connecter la pin physique sur les circuits d'entrée, la connecte sur les circuits qui gèrent la sortie.
Si on n'a rien fait avant, le registre des sorties est à 0_Logique.
À la suite du pinMode la sortie recopie le registre et passe à l'état 0_Logique soit 0 V.
Donc le relai se ferme le temps qu'un digitalWrite(x, HIGH) soit effectif.

Ok cette période transitoire, ou le relais est involontairement commandé, est très courte et les risques que les contacts soient collés sont pratiquement inexistantes.
Mais le risque est grand si, à la place d'un relai mécanique, on commande une électronique, alors autant le connaitre.

Je me répète :
Dans un microcontrôleur "normal", les blocs d'électroniques "choix d'être en entrée ou en sortie" et "Sortie à l'état haut ou à l'état bas" sont normalement indépendants.

C'est le cas des micro AVR comme l'atMega328p.
Où il est possible de faire :

digital(x1, HIGH);
pinMode(x1, OUTPUT);

et la sortie ne passera pas par l'état LOW.

C'est à vérifier pour les autres architectures.
Je n'ai pas réussi à le faire ni avec un ESP32, ni avec un RP2040.

Chacun fait comme il veut, quant à moi, je suis un peu regardant sur les questions de sécurité.
C'est pour cela qu'il est important de connaitre ce que le relai commande.

Deux remarques :
1 - la documentation que j’ai jointe vient d’internet et ne correspond pas forcément à mon module
2 - pour le démarrage je pense que je ne risque rien car cette carte pilote l’alimentation d’une carte de commande analogique. Au démarrage les deux sorties analogiques (forward et backward) sont à 0

Encore merci

Tu peux rayer "pratiquement".
Il n'y a aucune chance que le relais colle.

Je faisais des rappels des bonnes pratiques.
Dans ton cas, maintenant que tu as précisé le rôle du relais, on peut affirmer qu'il n'y a pas de danger.
J'insistais parce que ce ne sera pas toujours le cas.
Au lieu de relais, tu commanderas peut-être un jour des circuits très rapides.

Il est inutile de se mettre martel en tête, mais il n'y a pas deux applications identiques, les microcontrôleurs ne sont pas non plus identiques, on ne peut pas généraliser.
Si on fait clignoter des diodes ou des affichage on se balance du démarage, si on utilise des objets comme des moteurs il faut vérifier à chaque fois comment le montage démarre, surtout que cela ne prend pas beaucoup de temps.