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

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

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

Message par Bud Spencer » mer. 14 mars 2018 14:04

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.
Tu n’as pas à t’excuser de quoi que soit et rassures toi, on peut tout piloter avec les gpio d’un pi, mais pas n’importe comment.

On utilise tous des led sur les sorties, moi le premier. En effet quoi de plus simple et de plus pratique pour visualiser instantanément l’état d’une sortie ? On parlait de pédagogie et effectivement dans ce cas précis, une led et une simple résistance constitue le montage électronique le plus basic interfaçable derrière un µc. Ça ne valide pas pour autant la méthode pour une mise en production (aussi hobbiste soit elle) et encore bien moins si on utilise le mot ‘fiabilité’ dans son cahier des charges.

Derrière ça, il y a la réalité. Il faut savoir qu’une simple led consomme à elle seule près d’ 1/3 de ce que l’µc du pi peut raisonnablement supporter en courant pour l’ensemble de ses GPIO. Et quand je dis ‘peut fournir’, ce n’est envisageable que très ponctuellement et sous réserve que l’µc ne soit pas déjà surchauffé par des traitements gourmands. Quand il est écrit dans un datasheet qu’ Imax d’une i/o en sortie est de 10 ou 15 mA, ca ne veut pas dire que c’est ce que l’on peut tirer dessus. Cela indique uniquement ce que l’on ne doit pas dépasser en condition extrême sous risque de ruiner le composant ET c’est sous réserve que cela n’engendre pas d’échauffement qui vont au-delà de ce peu dissiper le composant (peut être une des causes de ton échec avec l’arduino ? …). En plus de tirer sur l’uc, cela tire aussi sur l’étage de régulation qui l’alimente et qui n’est absolument pas fait pour ça. Il faut donc partir du principe que chaque mA que tu tires sur les I/O augmente de façon conséquente la température des composants qui sont déjà les plus sollicités de tout ce que l’on peut trouver sur un PI (même s’il ni a pas grand-chose dessus …). C’est pas plus compliqué que ca.
tartiff01 a écrit :De plus on voit des multitudes de montage avec une carte relais made in chinois directement sur les gpio.
Bien sur, sauf que :
tartiff01 a écrit :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.
Et ce n’est pas pour rien. C’est tout simplement parce que les anodes des optos ne sont pas alimenté par le 3.3v des sorties mais par le 5v général (ou une alimentation externe). Tout ça simplement par soucis d’economie et de vulgarisation de ces cartes. La bonne pratique pour les utiliser n’est d’ailleur pas de les brancher directement derrière les sorties du pi (ou de l’arduino) même si tout le monde le fait. La bonne methode c’est d’intercaler un switch *) entre le pi et la carte relais. D’une part cela garanti une conso minimum sur la sortie quoi qu’il arrive et cela permet au relais de coller quand la sortie est à l’état haut (et non pas l’inverse …).

(*) un simple npn monté en émetteur commun avec sa résistance de base correctement calculée. Sinon même si c'est un peu surdimensionné et pas forcement prérequis pour le Pi, un bridge darlington genre uln2803 peut parfaitement faire l'affaire pour une carte 8 relais.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

EVOTk

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

Message par EVOTk » mer. 14 mars 2018 21:26

hello,
pour moi le mcp23017 est une bonne solution je trouve.
au niveau relais effectivement je n'aime pas non plus les carte toutes faites. mais même avec du relais on peu faire des choses des choses tres fiable mais il faut de la qualité. j'ai deja travailler avec du relais finder, c'est du tres fiable. bien sur il faut aussi quil soit adapter a la charge qu'ils doivent commuté. j'ai utilise une fois un finder pour démarrer l'allumage du tube cathodique de ma borne d'arcade, au bout de 2 allumages relais hs, pourtant l’écran consomme 2A et le relais pouvait tenir 16A mais la charge inductive créer un arc qui charbonné les contacts.

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

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

Message par Bud Spencer » jeu. 15 mars 2018 11:32

EVOTk a écrit :...j'ai utilise une fois un finder pour démarrer l'allumage du tube cathodique de ma borne d'arcade, au bout de 2 allumages relais hs, pourtant l’écran consomme 2A et le relais pouvait tenir 16A mais la charge inductive créer un arc qui charbonné les contacts.
Un grand classique chez les hobbistes. Généralement tous pensent bien à protéger l’amont du relais pas une diode de freewheel mais oublient qu’il y a le même phénomène qui se produit au niveau des contacts du relais notamment si la charge est inductive. Généralement un simple circuit R/C monté entre les contacts permet de régler ce problème.

En tous cas, l’exemple de ce relais 16 Amps qui crame très rapidement en switchant seulement 2 Amps est un exemple typique de ce que j’exprimais hier dans les limites d’usage des composants. Les courants et tension maximales indiqués dans les documents techniques ne sont souvent qu’une partie des facteurs déterminant leur bonne mise en œuvre ;-)
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

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

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

Message par tartiff01 » jeu. 15 mars 2018 20:51

Bonsoir à tous
Okay, vous m avez convaincu, on efface tout et on recommence sur de bonnes bases ! :D

Tout d abord partie sortie
Je partirai sur un MCP 23S17 suivi par 2 uln 2803 pour commander 16 sorties
https://lightpics.net/i/P4xd
-Je n ai pas trouvé dans le datasheet des relais (http://www.farnell.com/datasheets/2237781.pdf) la puissance consommé par la bobine pour ne pas dépasser les capacités de l uln2803
- Si j ai bien compris les 3 bronches A0 A1 A2 servent a adresser le composant mais a quoi servent et comment cabler Reset INTA INTB ?
- Aux niveau des alimentations, quels composant seront alimentés par le RPI et quels autres seront alimentés par mon alim secondaire 5V/GND/12V
- Est ce que je doit mettre en commun les GND des deux alims, est ce risqué?
-J ai choisi le SPI pour garder mon port I2C dispo pour plus tard, quels changement ca implique? est ce que l intégration de ces sortie dans domoticz est Possible, compliqué?


Sur la partie entrée
Mes GPIO etant maintenant tous disponibles je peut donc faire 16 entrées
Bud Spencer à dit:
Un grand classique chez les hobbistes. Généralement tous pensent bien à protéger l’amont du relais pas une diode de freewheel mais oublient qu’il y a le même phénomène qui se produit au niveau des contacts du relais notamment si la charge est inductive. Généralement un simple circuit R/C monté entre les contacts permet de régler ce problème.
Bud spencer tu as dit qu il fallait protéger également en aval des relais.
Les contacts sec sur mon schéma sont commutés par des relais. je n'ai mis qu un condensateur de 100uF pour éviter les rebonds, est ce que je doit rajouter quelque chose pour protéger les entrées.
Je vais Egalement supprimer les LED a mon grand regret puisque trop énergivores.

Ca fait beaucoup de question pour un soir de semaine mais mes compétences de charpentier plafonnent un peu la...

J espère être sur la bonne voie

EVOTk

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

Message par EVOTk » jeu. 15 mars 2018 21:32

Salut,
Pour les finder tout dépend de ton choix par exemple pour la sérié 40 types 40.31/51/52/61, en DC il y a deux type de bobine les "classiques" qui consomment 0.65W et les "sensibles" a 0.5W.
Pour savoir si c'est une classiques ou une sensible il faut se référer au 5eme chiffres de la références ! Si c'est un 7 c'est une bobine dit sensible, si c'est un 8 une bobine AC classique, un 9 c'est une bobine DC classique.

Pour plus d'info : http://www.audin.fr/pdf/documentations/ ... FINDER.pdf

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

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

Message par tartiff01 » jeu. 15 mars 2018 21:46

Les miens sont seulement marqué 40.52 j ai vu des photos sur le net ou on croirait voir des 40.52s peut être pour sensible. Si je met un ampèremètre en série et que j alimente le relais. Est ce que j aurais la valeur dont j ai besoin ?

spourre
Raspinaute
Messages : 735
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 » ven. 16 mars 2018 01:08

tartiff01 a écrit :Bonsoir à tous
Okay, vous m avez convaincu, on efface tout et on recommence sur de bonnes bases ! :D
...
Tout d abord partie sortie
Je partirai sur un MCP 23S17 suivi par 2 uln 2803 pour commander 16 sorties

J espère être sur la bonne voie
Ça fait effectivement beaucoup de questions, donc des réponses qui risquent de partir dans tous les sens;-)
On a déjà traité pas mal des questions relatives au MCP ici:
viewtopic.php?f=4&t=4413

Dans la mesure où tu ne te sers du circuit qu'en sortie, INT A et INT B ne te seront d'aucune utilité.

Maintenant, pour éviter des déceptions je te suggère de tester, sur une breadboard, un montage comportant ce circuit et .... des LEDS en sorties.
Quand cela fonctionnera avec les LED, tu pourra passer à l'étape suivante en ajoutant 1 uln et 1 relais (que tu pourras déplacer sur différentes sorties).

Il faut aborder, dès maintenant, le choix du langage de programmation retenu (Bash, Python, C ...)

Nota: Sur tes schémas et sur le montage réel, n'oublie pas de mettre un condensateur de découplage (environ 100 nF), au plus près des broches d'alimentation des circuits intégrés.

Sylvain

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

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

Message par Bud Spencer » ven. 16 mars 2018 11:34

tartiff01 a écrit :Je partirai sur un MCP 23S17 suivi par 2 uln 2803 pour commander 16 sorties
https://lightpics.net/i/P4xd

Perso, je trouve que c’est une bonne idée (quel que soit l’expander utilisé et son mode de liaison). Ça va permettre à ton montage de pouvoir fonctionner aussi bien avec le Pi qu’avec un arduino ou n’importe quoi d’autre. En plus je rejoins ce que disait Sylvain dans le sens ou en cas de boulette ou de panne, c’est le composant qui dérouillera en premier ce qui minimise les risques de voir l’anomalie remonter jusqu’au i/o du contrôleur. Tu as choisis de faire 16 Sorties, mais sache que tu peux aussi utiliser ce composant pour faire 8 entrée/8 sorties.

J’avais écrit un petit exemple de code ici pour un mcp23s17 en mode 8 entrées/8 sorties : viewtopic.php?f=44&t=3033&start=60

Je viens de regarder vite fait ton schéma et quelques trucs me piquent les yeux :

Je vois que tu as utilisé le 5v du pi pour alimenter ton expander et c’est très bien. Comme déjà expliqué plus haut, en dehors de simples tests, il faut bannir tout câblage qui utilise le 3.3v. Le revers de la médaille, c’est que d’un coté tu as les i/o du pi en 3.3v et de l’autre ton expander en 5v.

Sur une liaison SPI, ce n’est pas vraiment problématique. Les signaux en sortie du maitre (ici le pi) sont en 3.3v, mais sont très largement suffisant pour valider les changements d’état de l’esclave qui est en logique 5v. Cela concerne les ligne CLk (signal horloge), MOSI (master out, slave in) et /CS (chip select)

Le seul problème c’est la ligne MISO (master In, slave out). Cette ligne est une sortie coté esclave (5v), donc fatalement une entré coté maitre (3.3v maxi). Si tu câble directement cette ligne, tu vas te retrouver avec un signal 5v sur la broche MISO du Pi et il risque de ne pas aimer du tout. Il faut donc limiter la tension de ce signal. En pratique, une simple résistance en série sur la ligne suffit mais pour assurer à coup sûr, tu peux en mettre deux montées en diviseur (4.7k/3.3k feront l’affaire)

Cette observation est aussi a respectée aussi sur les ligne INT si tu venais à les utiliser vers des gpio. Ce sont des broches d’interruption qui peuvent être utilisées pour signaler les changements d’états sur les I/O de l’expander.

Problème suivant, c’est le /reset de l’expander. Si tu ne le câble pas, il y a peu de chance que cela fonctionne. Pour aller au plus simple, cette broche doit être relié au + (vdd). L’idéal étant de la câbler avec un condo et une résistance pour forcer un reset à la mise sous tension et de lui ajouter un petit bouton poussoir pour pouvoir reseter le circuit sans couper l’alimentation, mais tout ça n’est pas indispensable.

Il manque le câblage des GND sur les ULN et bien sur les petits condos de découplage comme l’a déjà précisé Sylvain.

! Attention avec les relais au bout des ULN. Le circuit affiche certes 500mA par sortie, mais j’en revient encore à ce que j’écrivais plus haut. Cette limite est extrême et n’est pas la seule, il faut avant tout penser à ne pas dépasser la limite de puissance et de température de jonction individuel de chaque Darlington ainsi que les limites pour le total du package. Je citais sans trop de risque ce composant pour interfacer entre les gpio du pi et des optocoupleurs mais avec 8 relais velus, il faut impérativement éplucher la datasheet et du composant et des relais parce qu’il ni a rien de garantie !
Modifié en dernier par Bud Spencer le dim. 18 mars 2018 17:36, modifié 1 fois.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

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

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

Message par tartiff01 » sam. 17 mars 2018 12:01

bonjour,
J ai essayé de tenir compte de tout ce que vous m'avez conseillé...

https://lightpics.net/i/PquX

concernant le MCP23B17 je pense avoir monte le pont diviseur correctement, mais je n ai pas compris comment cabler l interrupteur + condo + resistance pour le Reset :oops:

Etant donner que mes relais ont du poil au pattes :D ( j ai mesuré 60mA lorsque le relais est collé mais il y a peut être un pic d intensité au moment ou il colle?),
est ce que je ne devrai pas repartir sur mon premier schema ou chaque BD 243 C encaissera sont propre relais?
Pour le langage je pense partir sur un animal à sang froid ...

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

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

Message par Bud Spencer » dim. 18 mars 2018 17:08

Décidément, c’est un grille-pain que tu veux construire ?

Tu fais la meme bêtise qu’avec ton idée précédente. A la louche : 1 led + 1 opto = 30mA. Page 3 du datasheet il est pourtant clairement indiqué ‘maximum current sourced of sunk on any pin is 25mA’.Il est aussi ecrit : Total power dissipation 700mW. Je te laisse faire le calcul avec 8 (ou 16) couple led+opto.

Vires l’opto et la led D5 en sortie de l’expander, Non seulement cela ne peut pas marcher mais en plus cela ne sert absolument à rien. Ca fait plus de 35 ans que je switch de la logique cmos ou ttl avec des transistors et je n’ai jamais utilisé d’opto à l’exception de besoin très spécifique d’immunité au bruit. Si tu veux vraiment utiliser des optos, gardes les pour des entrés.

A part ca :

Le condo C1 c’est quoi ? une panne volontaire ? Si c’est ton condo de découplage, ça ne va pas le faire. Déjà il est 1000 trop gros (un 100nF suffit très très largement) et il ne se monte pas en serie sur l’alimentation mais entre vss et vdd (entre le + et le – si tu préfères) et au plus proche possible du composant.

Le diviseur R2/R3 est correct (bravo \o/), sauf qu’il ne se monte pas sur la ligne SCK mais sur la ligne SO du composant et le centre du pont est relié à la line MISO du GPIO.

Je vois que tu as prévue des jumper pour modifier l’adresse du composant, c’est bien. En les connectant à vdd au traver d'une résistance de pull-up tu aurais une adresse certaine quoi qu’il arrive meme sans mettre de cavalier et la présence de l'un d'eux signifierait clairement un état bas sans se poser la question de sa position (et en plus ça fait vachement plu pro …)

Pour ton circuit de /reset il est bien. Si tu veux aller plus loin tu peux aussi faire ça :
reset.png
reset.png (14.32 Kio) Vu 6363 fois
Ca force un reset à la mise sous tension et ça te permet de faire un reset du composant sans couper l’alimentation (pratique en phase de développement)

Je vois un bd337 en switch. C’est clair qu’il ne va pas griller, mais utiliser un TO3 pour switcher un relais, c’est un peu comme utiliser un semi-remorque pour transporter un pot de fleur.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Répondre

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