carte interface fiable 8 Entrée/8 Sorties GPIO

Un lieu pour discuter des composants et de leur utilisation. Un passage obligé si vous devez interfacer votre Raspberry Pi avec le monde extérieur. On y trouvera aussi les cartes type commande de moteur pas à pas, continu, servo...

Modérateurs : Francois, smba38

tartiff01
Messages : 11
Enregistré le : dim. 11 mars 2018 17:40

carte interface fiable 8 Entrée/8 Sorties GPIO

Message par tartiff01 » dim. 11 mars 2018 18:24

Bonjour à tous,
je post ce sujet dans la partie électronique même si il concerne aussi la domotique.
Je suis en train de réaliser une carte pour récupérer les infos de 8 contacts sec et commander 8 relais.
Vous aller me dire qu'il y a des cartes toutes prêtes pour ça... C est pas faux!
Mais j ai deja pas mal bricolé sur Arduino avec ces cartes et au niveau fiabilité dans le temps... J ai eu pas mal de soucis.
L'autre point noir de ces cartes c'est que l on est obligé de branché sur les contacts Normalement Fermé des Relais car elles inversent les commandes.
Du coup voila le schema d un petit montage que j' ai fait pour un seul GPIO pour le moment et qui à l'air de bien fonctionner.
Je voulais avoir l'avis d'autres framboises avant de me lancer dans la réalisation de la carte complete.
Le but de ma carte est d'avoir une isolation complète du RPI via l optocoupleur et de finir a une tension de commande de 12V pour mes relais (finder 40.52).
Je veux faire du fiable, du facile a diagnostiquer en cas de panne via les led de controle et facile a réparer avec des relais sur support Din interchangeable.
Pour info je ne suis pas éléctronicien et le choix des composants s est porté d abord sur ceux... que j avais chez moi :D
Carte sortie
https://img2.lght.pics/PLne.jpg
Carte entree
https://img1.lght.pics/PJE2.jpg

flotte
Messages : 17
Enregistré le : lun. 8 janv. 2018 00:38

Re: carte interface fiable 8 Entrée/8 Sorties GPIO

Message par flotte » dim. 11 mars 2018 22:53

Bonjour
Le raspberry fournit en sortie des tensions commuté de tel à tel broche selon le programme.
Même principe que la carte arduino
pk pas reprendre la tension et récupérer une tension afin de faire commuter unou plusieurs relais? Je pense que les résistance que vous avez posé sur le schéma servent à limiter l amperage de passage donc elles ont leurs utilité mais il existe des relais multi contact équipé de diode et je pense beaucoup plus simple à maintenir

Envoyé de mon SM-A520F en utilisant Tapatalk

tartiff01
Messages : 11
Enregistré le : dim. 11 mars 2018 17:40

Re: carte interface fiable 8 Entrée/8 Sorties GPIO

Message par tartiff01 » lun. 12 mars 2018 22:08

Bonjour, je n ai pas tout compris à votre réponse ;) le raspberry ou l Arduino ne peuvent en aucun cas commander directement des relais, encore moins en 12 v....

spourre
Raspinaute
Messages : 724
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: carte interface fiable 8 Entrée/8 Sorties GPIO

Message par spourre » mar. 13 mars 2018 00:22

tartiff01 a écrit :Bonjour, je n ai pas tout compris à votre réponse ;) le raspberry ou l Arduino ne peuvent en aucun cas commander directement des relais, encore moins en 12 v....
Vous avez parfaitement raison de vouloir protéger les ports GPIO du Raspberry. Ceux-ci sont en prise directe avec le SOC, sans aucun buffer. La solution optocoupleur est la voie royale pour isoler totalement (galvanique) le montage du Raspberry. Vous pourriez aussi utiliser un transistor entre le port GPIO et le relais.

Dans votre schéma, je ne vois qu'une source éventuelle de problème:
Vous mettez en série la LED de l'optocoupleur et une LED pour visualiser l'état de sortie du GPIO.
D'après sa notice:
https://www.google.fr/url?sa=t&rct=j&q= ... 41K9iBcGPx
La LED du 4N35 est une LED infrarouge, à l'arsenure de gallium. Ceci implique une chute de tension d'environ 1.6V.
Suivant sa couleur, la LED d'état aura une chute de tension comprise entre 1.6 et 3, voire 3.5V (oubliez les bleues, violettes ou blanches à plus de 3V):
https://www.sonelec-musique.com/electro ... e_led.html
Vous risquez tout simplement de dépasser la valeur de 3.3V que peut fournir un port GPIO. Cela peut se traduire par un fonctionnement très aléatoire d'autant que les caractéristiques de l'optocoupleur sont spécifiées à If=10 mA.

Sylvain

tartiff01
Messages : 11
Enregistré le : dim. 11 mars 2018 17:40

Re: carte interface fiable 8 Entrée/8 Sorties GPIO

Message par tartiff01 » mar. 13 mars 2018 06:47

Merci pour votre explication​.
Je doit donc mettre (led+ 220 ohm) en parallèle avec ( 4n35 +?) Dois-je mettre une résistance en série avec la diode de l optocoupleur ? Si chaque optocoupleur consomme 10mA, + les led témoin des deux cartes, ça va peut être faire beaucoup pour le raspberry même si les led de la carte entrée ne s éclaireront que lorsque l interrupteurs test sera fermé? Je devrais peut être me contenter des led qui sont sur l étage 12v.

spourre
Raspinaute
Messages : 724
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: carte interface fiable 8 Entrée/8 Sorties GPIO

Message par spourre » mar. 13 mars 2018 11:20

tartiff01 a écrit :Merci pour votre explication​.
Je doit donc mettre (led+ 220 ohm) en parallèle avec ( 4n35 +?) Dois-je mettre une résistance en série avec la diode de l optocoupleur ? Si chaque optocoupleur consomme 10mA, + les led témoin des deux cartes, ça va peut être faire beaucoup pour le raspberry même si les led de la carte entrée ne s éclaireront que lorsque l interrupteurs test sera fermé? Je devrais peut être me contenter des led qui sont sur l étage 12v.
Vous avez parfaitement analysé le problème et proposé la bonne solution. Mettez la LED et sa résistance en // avec la bobine du relais.
Attention aux limites du GPIO. Il y en a 2:
- Celle dont on a déjà parlée de 10 mA par port (en fait, 15 mA)
- Celle dont on a pas encore parlée, qui est le courant TOTAL (pour l'ensemble des GPIO) qu'il ne faut pas dépasser (limitation de la température du SOC): 50 mA

Comme vous souhaitez commander 8 relais, cette limitation peut vite apparaître. Vous pouvez essayez de limiter le courant dans l'optocoupleur à 5 mA eet vérifier qu'il fonctionne bien en commutation. Même comme cela, si les 8 relais sont activés en même temps, vous serez à la limite et ce n'est jamais sain pour l'électronique.

Pour votre ? sur la résistance en série avec la LED de l'optocoupleur, je vous confirme qu'il en faut bien une et qu'elle se calcule de la même façon que pour une diode visible. (Vcc-DDPd)/Id.
Avec
Vcc = Tension d'alimentation (ici les 3.3V) fournie par le GPIO.
DDPd = chute de tension aux bornes de la diode (cf. lien de mon dernier post).
Id = courant dans la diode

Si vous exprimez les tensions en Volt et les courants en milliampères, le résultat est en kilo Ohm.
Pour votre coupleur il faut donc (3.3-1.6)/10 = 170 Ohm (340 Ohm pour 5 mA). Il faut prendre les valeurs normalisées les plus proches soit 180 ou 390 dans la série E12 (tolérance 10% bien suffisante).

Si cette limitation vous apparaît trop contraignante, il y a une autre solution qui permet d'utiliser beaucoup moins de GPIO et qui est facilement expansible. J'ai nommé sa majesté l'I2C avec des circuits du genre du PCF 8574:
https://www.google.fr/url?sa=t&rct=j&q= ... vZ6kMFJb7Z

Chaque circuit fournit 8 ports GPIO supplémentaires et se commande par le bus I2C qui ne consomme que 2 GPIO spécialisés. Il est très bien supporté par la bibliothèque Wiringpi qui fournit un accès "normalisé à ces ports. Si cette voie vous intéresse, je pourrais vous donner un petit exemple en C qui devrait être adaptable au Python (que je ne pratique pas) car il y a un wrapper pour cela.

Sylvain

Bud Spencer
Raspinaute
Messages : 393
Enregistré le : lun. 15 août 2016 21:38

Re: carte interface fiable 8 Entrée/8 Sorties GPIO

Message par Bud Spencer » mar. 13 mars 2018 14:41

Moi je serais plus direct dans ma réponse

Le montage ne peut en aucun cas être à la foi fiable et cohérant si les signaux des sorties de gpio sont utilisés pour alimenter des optos. UNE SORTIE N’EST PAS UNE ALIMENTATION.

A chaque fois que je vois ce type de montage (et ça ne manque pas …), je ne peux m’empêcher de me marrer. Faut bien avouer qu’entre le coté ‘paranoïde’ qui veut absolument une iso galvanique entre la sortie et le relais et de l’autre, le stress énorme sur la sortie (et sur tout le reste du pi d’ailleurs) par un courant démesuré pour ne rien faire, ça fini par faire rire.

Arretez avec vos optos directe sur les sorties gpio. C’est complément ridicule, surtout pour piloter un relais qui est déjà censé isoler la sortie du monde extérieur.

spourre a écrit :Si cette limitation vous apparaît trop contraignante, il y a une autre solution qui permet d'utiliser beaucoup moins de GPIO et qui est facilement expansible. J'ai nommé sa majesté l'I2C avec des circuits du genre du PCF 8574:
https://www.google.fr/url?sa=t&rct=j&q= ... vZ6kMFJb7Z

Chaque circuit fournit 8 ports GPIO supplémentaires et se commande par le bus I2C qui ne consomme que 2 GPIO spécialisés. Il est très bien supporté par la bibliothèque Wiringpi qui fournit un accès "normalisé à ces ports. Si cette voie vous intéresse, je pourrais vous donner un petit exemple en C qui devrait être adaptable au Python (que je ne pratique pas) car il y a un wrapper pour cela.

Sylvain
ou tout simplement un mcp23017 (i2c) ou mcp23s17(spi) qui permet directement les 8 entrés et les 8 sorties sur un même composant. Si le coté parano persiste, il existe aussi des composants pour isoler ces liaisons (ltm2883 par exemple). Bon le problème de ces solutions, c'est qu'il faut adresser les composants, donc programmer un peu, ce qui est tout de suite moins abordable que i/o directe du Pi ...
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

spourre
Raspinaute
Messages : 724
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: carte interface fiable 8 Entrée/8 Sorties GPIO

Message par spourre » mar. 13 mars 2018 17:06

Bud Spencer a écrit :Moi je serais plus direct dans ma réponse

Le montage ne peut en aucun cas être à la foi fiable et cohérant si les signaux des sorties de gpio sont utilisés pour alimenter des optos. UNE SORTIE N’EST PAS UNE ALIMENTATION.
...
A chaque fois que je vois ce type de montage (et ça ne manque pas …), je ne peux m’empêcher de me marrer. Faut bien avouer qu’entre le coté ‘paranoïde’ qui veut absolument une iso galvanique entre la sortie et le relais et de l’autre, le stress énorme sur la sortie (et sur tout le reste du pi d’ailleurs) par un courant démesuré pour ne rien faire, ça fini par faire rire.
...
Arretez avec vos optos directe sur les sorties gpio. C’est complément ridicule, surtout pour piloter un relais qui est déjà censé isoler la sortie du monde extérieur.
.
Je joue la carte pédagogique en espérant que les éléments de réflexion fournis conduisent le posteur à se poser les bonnes questions. Il a commencé à prendre conscience de la problématique et est arrivé, de lui-même, à proposer de passer les LEDs dans le circuit 12V.
Bud Spencer a écrit : ou tout simplement un mcp23017 (i2c) ou mcp23s17(spi) qui permet directement les 8 entrés et les 8 sorties sur un même composant. Si le coté parano persiste, il existe aussi des composants pour isoler ces liaisons (ltm2883 par exemple). Bon le problème de ces solutions, c'est qu'il faut adresser les composants, donc programmer un peu, ce qui est tout de suite moins abordable que i/o directe du Pi ...
J'ai proposé ce circuit parce qu’il colle "au plus près" avec son désir de séparer ses I/O en 2 groupes distinct (8 en lecture seule, 8 en écriture seule) mais un composant avec plus de pin fera tout aussi bien l'affaire. J'ai proposé l'I2C (et non le SPI) car son débit est largement suffisant et comme le PCF offre 3 bits d'adresse personnalisables, il pourra facilement en ajouter.

Sylvain

tartiff01
Messages : 11
Enregistré le : dim. 11 mars 2018 17:40

Re: carte interface fiable 8 Entrée/8 Sorties GPIO

Message par tartiff01 » mar. 13 mars 2018 22:33

Merci pour tes réponses spoure.je regarderai tout ça dès que possible. ;)
Par contre Bud Spencer excuse moi d avoir cru que on pouvait faire quelque chose avec les gpio, pourtant la première chose que on apprend c est à éclairer des led avec et pour moi, un optocoupleur était très proche d une led. De plus on voit des multitudes de montage avec une carte relais made in chinois directement sur les gpio... En ce qui concerne ma parano, je viens du monde de l Arduino et j ai du abandonner un gros projet de régulation de chaudière à bois à cause du manque de fiabilité de la carte relais.

spourre
Raspinaute
Messages : 724
Enregistré le : lun. 22 déc. 2014 16:50
Localisation : 67380 LINGOLSHEIM

Re: carte interface fiable 8 Entrée/8 Sorties GPIO

Message par spourre » mar. 13 mars 2018 23:59

tartiff01 a écrit :Merci pour tes réponses spoure.je regarderai tout ça dès que possible. ;)
Par contre Bud Spencer excuse moi d avoir cru que on pouvait faire quelque chose avec les gpio, pourtant la première chose que on apprend c est à éclairer des led avec et pour moi, un optocoupleur était très proche d une led. De plus on voit des multitudes de montage avec une carte relais made in chinois directement sur les gpio... En ce qui concerne ma parano, je viens du monde de l Arduino et j ai du abandonner un gros projet de régulation de chaudière à bois à cause du manque de fiabilité de la carte relais.
On a chacun son style mais ce qu'a écrit Bud, qui est certainement un des contributeurs les plus compétents du forum, c'est que le GPIO n'est pas fait pour débiter des dizaines de mA EN PERMANENCE.
Cela finit par stresser le cœur du Raspberry (le SOC) et s'il dégage, le Raspberry est bon pour la poubelle. Il y a, comme souvent, plusieurs solutions possibles à ce problème. Je vais en lister 3, à titre d'exemple, mais il doit y en avoir d'autres:

-) Commander le relais par un transistor (MOSFet de préférence) qui irera moins de courant du port GPIIO.
-) Utiliser un relais bistable (soit électromécanique, soit avec une bascule) mais ça peut nécessiter 2 ports GPIO par relais.
-) Mettre un Circuit Intégré entre le GPIO et les relais (réseau de transistors, I2C, SPI ). Dans le pire des cas, c'est ce circuits à 1 ou 2€ qui dégage et protège le Raspberry.

Sylvain

Répondre

Retourner vers « L'électronique et le Raspberry Pi »