Je crois qu'il me faut un Mosfet, Help !

Bonjour à tous ,

Pour un projet je stocke sur Excel (avec la liaison série et PLX DAQ) les données que je reçois de 10 capteurs (K30-FR voir CO2meter pour la doc).
Les capteurs sont alimentés par une alim à découpage 12 V (car ils consomment entre70 et 600 mA chacun) et adressés un par un avec une liaison série virtuelle (AltSoftSerial).

Mon problème est le suivant : lorsque j'écrivais et testais mon code j'utilisais 2 capteurs pour que cela soit plus pratique (et si ça marche pour 2, ça marche pour 10 me disais-je :-X ), mais dès lors que j'ai plus de 2 capteurs sur les lignes Tx et Rx, impossible d'obtenir une réponse lisible des capteurs :fearful:
Deux précisions :
J'ai bien relié la masse de l'alim des capteurs à celle de l'arduino.
Quand les capteurs sont alimentés, ils "clignotent" une fois par seconde environ, leur pic de conso de 600 mA étant atteint lorsqu'ils sont allumés.

Mon hypothèse est la suivante: les capteurs "clignotent" et donc tirent sur l'alim de manière désynchronisée, ce qui entraine des "parasites" sur la ligne de donnée (mon arduino interprète pour des bit ce qui n'est que variation de tension due à l'alim à la ramasse.

Je pense donc que la meilleure solution est d'avoir un mosfet par capteur, controllé par l'arduino et ainsi alimenter uniquement le capteur que je vais interroger.

Ma question est alors, comment choisir ce mosfet, je n'y connais rien, il faut qu'il soit pilotable avec 0-5v de l'arduino tout en contrôlant un courant de 0.6A à 12V. Sachant que je ne suis pas crésus hein

Auriez vous des conseils (sur mon diagnostic ou sur le mosfet à utiliser) ?

Auriez vous des conseils (sur mon diagnostic ou sur le mosfet à utiliser) ?

Sur ton diagnostic : non. J'aimerais connaître la puissance de l'alimentation.

Sinon : mosfets-de-puissance

Il te faut un MOSFET logic-level (VGSth = 1V à 2V), 1A minimum.
IRL3303 (30A) ou IRLZ44N (55A). Surtout pas de MOSFET du type IRF.
Sans dissipateur bien entendu.

Sinon une alim un peu plus pechue si c’est vraiment elle qui est faible => avoir sa spec serai intéressant.

Mais je partirai plus sur le rajout de condensateur sur les alims afin de stabiliser les appels de courants.

Moi, j'aimerais bien comprendre ce que cette ligne cache:
"mais dès lors que j'ai plus de 2 capteurs sur les lignes Tx et Rx, impossible d'obtenir une réponse lisible des capteurs"

Comment sont câblés les capteurs?

le souci peut aussi provenir de la multiplicité des liaisons séries par software

Bonjour,

Une seule liaison série soft peut recevoir à la fois. Est ce que tu commutes bien la réception sur la bonne liaison?

Merci à tous pour vos réponses !

hbachetti:
Il te faut un MOSFET logic-level (VGSth = 1V à 2V), 1A minimum.
IRL3303 (30A) ou IRLZ44N (55A). Surtout pas de MOSFET du type IRF.

Merci pour les propositions, je vais regarder ça :slight_smile:

Pour l'alim: 24W (12V 2A), vu que 12V est la limite haute d'alimentation des capteurs et que le pic de conso réel est plus autour de 0,4 A par capteur jme me disais que ça suffisait puisque les pic sont asynchrones.

Jambe:
Mais je partirai plus sur le rajout de condensateur sur les alims afin de stabiliser les appels de courants.

C'est ce que j'ai pensé en premier, mais je pensais que pour un prix équivalent, la solution des mosfet serait plus "safe et permet de faire des économies d'énergies en plus :stuck_out_tongue: (d'ailleurs aucune idée de la capacité nécessaire ou du type de condensateur nécessaire pour ce role)

fdufnews:
Moi, j'aimerais bien comprendre ce que cette ligne cache:
"mais dès lors que j'ai plus de 2 capteurs sur les lignes Tx et Rx, impossible d'obtenir une réponse lisible des capteurs"

Comment sont câblés les capteurs?

Vu que j'ai monté mes capteurs avec des connecteurs à cosses je peux les brancher et les débrancher à souhait, en diagnostiquant pourquoi après mon montage final des 10 capteurs je n'avais pas de donnée en sortie j'ai remarqué que jusqu' à 2 capteurs branchés en même temps j'avais des données, et à partir de 3 capteurs j'ai un problème.
Ci joint le schéma de montage (ne jugez pas, c'est fait sur paint), il est comme il est pour des raison de matériel à dispo et d'encombrement des câbles et de l'arduino dans mon boîtier.

Je ne comprend pas, sur ton schéma on dirait que tous les capteurs sont connectés sur les mêmes tx rx.

Le schéma:

la ligne Série n'est pas faite comme un bus I2C ou SPI, vous ne pouvez pas avoir plusieurs éléments sur la ligne de manière fiable, c'est du point à point.

Si vous éteignez tous les capteurs sauf un à tour de rôle et qu'il n'y a pas de perturbation sur la ligne à cause des connexions aux capteurs éteints, éventuellement ça peut marcher — en établissant la liaison série, obtenant les infos, terminant la liaison, éteindre le composant, allumer le suivant et recommencer

Sinon Atlas scientific dispose d'une carte 1 port série vers 8

Il est (très) déconseillé de mettre une tension sur les pins d'un circuit non alimenté.

kamill:
Il est (très) déconseillé de mettre une tension sur les pins d'un circuit non alimenté.

perso je n'ai jamais grillé de port série comme cela en ayant un composant non alimenté mais Oui vous avez raison et d'où le

et qu'il n'y a pas de perturbation sur la ligne à cause des connexions aux capteurs éteints, éventuellement ça peut marcher

c'est bien de préciser qu'il y a un risque.

kamill:
Je ne comprend pas, sur ton schéma on dirait que tous les capteurs sont connectés sur les mêmes tx rx.

C'est ce que je subodorais, d'où ma question.

J-M-L:
perso je n'ai jamais grillé de port série comme cela en ayant un composant non alimenté

Le problème n'est pas tant sur la liaison série que sur le périphérique connecté. Il peut se retrouver en latch-up car le circuit se retrouve mal polarisé et lorsqu'on applique l'alimentation il se retrouve dans un état "non prévu".

Il faudrait très sérieusement envisager l'utilisation d'un multiplexeur sur les lignes RX et TX.

fdufnews:
C'est ce que je subodorais, d'où ma question.
Le problème n'est pas tant sur la liaison série que sur le périphérique connecté. Il peut se retrouver en latch-up car le circuit se retrouve mal polarisé et lorsqu'on applique l'alimentation il se retrouve dans un état "non prévu".

je parlais du port série du composant distant. ça m'est jamais arrivé, mais ça ne veut pas dire qu'en théorie ce n'est pas possible ou que c'est conseillé of course :wink:

kamill:
Il est (très) déconseillé de mettre une tension sur les pins d'un circuit non alimenté.

+1
Il faut savoir que TOUTES les entrées/sorties d'un circuit intégré ont deux diodes câblées en inverse.
Ces diodes servent à protéger le CI des décharges électrostatiques.

Si le circuit intégré est correctement alimenté et que le niveau du signal d'entrée ne dépasse pas Vcc +0,5V (ou Vcc+0,3V selon les indications des datasheets) il ne se passe rien d'anormal.

Si le CI n'est pas alimenté mais qu'une tension est présente sur une entrée la diode supérieure qui est connectée entre le point d'entrée et le rail Vcc du CI se retrouve polarisée en direct et alimente (très mal) le circuit intégré. Si le courant est trop important c'est le CI qui fourni la tension qui peut souffrir.

Si le niveau en entrée est supérieur à Vcc +0,5V et que le CI est alimenté cela peut se passer très mal pour le CI.
Je remets un extrait de datasheet que j'ai publié il y a quelques jours.

Le fait d'alimenter un capteur sur dix et de laisser les lignes RX TX connectées entre elles est source de problèmes potentiels.
Cela revient à appliquer une tension sur l'entrée RX de 9 modules non alimentés. Peu recommandé.

A noter : si l'on utilise un expander d'UART il serait souhaitable de connaître l'état des sorties TX inactives - je parle de celles de l'expander - et en fonction de cet état, couper l'alimentation du bon côté (low-side ou high-side).

Pour l'alim: 24W (12V 2A), vu que 12V est la limite haute d'alimentation des capteurs et que le pic de conso réel est plus autour de 0,4 A par capteur jme me disais que ça suffisait puisque les pic sont asynchrones.

Je me demande bien quel genre de capteur peut consommer 400mA sous 12V ! 5W !!!
Quelle est leur consommation au repos ?

Une alimentation capable d'alimenter l'ensemble serait tout de même plus rationnel.

Merci de vos réponses, avec tout ça je pense que le problème ne vient pas de l'alim

J-M-L:
la ligne Série n'est pas faite comme un bus I2C ou SPI, vous ne pouvez pas avoir plusieurs éléments sur la ligne de manière fiable, c'est du point à point.

Ha, mince, ayant utilisé par le passé du One-wire avec 10 capteur, et vu que les capteurs ont une adresse unique, je pensais que la liaison ModBus pouvait marcher. J'ai trouvé une librairie pour la communication I²C avec mes capteurs, si j'ai la confirmation que l'I²C réglerait le problème je vais y réfléchir, ça me fait pas beaucoup de soudure à refaire.

J'ai un peu rééfléchis et je vois plusieurs solutions possible:

-Mettre un Mosfet pour l'alim de chaque capteur (déconseillé par certains), j'espere qu'il n'y aurait pas de problèmes vu que l'arduino envoie que du 3.3V alors que le capteur fonctionne entre 6 et 12V ...
-Mettre un Mosfet pour l'alim ET un mosfet pour la ligne Tx controllé par la même pin de l'arduino, ce que reviens, je crois à ce qui est proposé ici :

J-M-L:
Sinon Atlas scientific dispose d'une carte 1 port série vers 8

-Séparer mes capteurs en groupes de 2 et utiliser 5 port série virtuels (que j'ouvre et ferme à ma guise) avec 2 capteur par port, seulement vu mon nombre de pin, il faut que je puisse avoir la pin RX commune à plusieurs port, je ne sais pas si c'est possible même en en ayant qu'un seul actif à la fois ?
-Passer sur de la liaison I2C au lieu de série, mais là j'ai un soucis soucis : la doc (ici) précise que (je traduis) "La communication avec des capteurs sur le même bus I2C pourrait être compliquée par l'abscence de détection hardware de l'adresse." Je ne comprends pas bien la suite et je ne m'y connais pas assez pour savoir si c'est gênant ou pas cette histoire de bit ACk et de SCL low...

Vos avis/conseils ?

hbachetti:
Je me demande bien quel genre de capteur peut consommer 400mA sous 12V ! 5W !!!
Quelle est leur consommation au repos ?

Une alimentation capable d'alimenter l'ensemble serait tout de même plus rationnel.

Les capteur de gaz ont besoin d'être chauffés.

Néanmoins il pourrait y avoir une mauvaise lecture de la documentation:

Fiche technique et manuel (pdf)

Je lis :

Electrical/Mechanical
Power Input.................................................. 5‐14 VDC, stabilized to within 10%
Current Consumption .................................. 40 mA average
< 150 mA peak current (averaged during IR lamp ON, 120 msec)
< 300 mA peak power (during IR lamp start‐up, the first 50 msec)
Dimensions .................................................. 5.1 x 5.7 x 1.4 cm (Length x Width x approximate Height)
Electrical Connections .................................. Terminals not mounted (G+, G0, OUT1, OUT2, Din1, Din2, Status, TxD, RxD)

J'en déduis une consommation pouvant atteindre 300 mA pendant un temps de 50 ms .
En régime stabilisé la fiche technique indique seulement 40 mA.

Pour en revenir aux choix techniques un multiplexeur analogique (pour la bidirectionnalité) sur la sortie série matérielle me parait être une meilleure solution que 10 software serial.

Le_Kube:
Merci de vos réponses, avec tout ça je pense que le problème ne vient pas de l'alim
Ha, mince, ayant utilisé par le passé du One-wire avec 10 capteur, et vu que les capteurs ont une adresse unique, je pensais que la liaison ModBus pouvait marcher.

ModBus est un bus, donc vous pouvez bien avoir une topologie à plusieurs esclaves. Mais est-ce que vous avez ?

il y a une Arduino Modbus Library

68tjs:
Les capteur de gaz ont besoin d'être chauffés.

Néanmoins il pourrait y avoir une mauvaise lecture de la documentation:
https://www.co2meter.com/products/k-30-co2-sensor-module
Fiche technique et manuel (pdf)

Je lis :
J'en déduis une consommation pouvant atteindre 300 mA pendant un temps de 50 ms .
En régime stabilisé la fiche technique indique seulement 40 mA.

Pour en revenir aux choix techniques un multiplexeur analogique (pour la bidirectionnalité) sur la sortie série matérielle me parait être une meilleure solution que 10 software serial.

En fait non j'ai bien lu la fiche technique, on a pas lu la même, c'est ma faute : c'est le K30**-FR** que j'utilise (doc ici), donc 70mA average et <600 mA peak (moi j'ai mesuré 400mA à l'oscillo).

Pour le multiplexeur :

  1. cela ne revient il pas au même que de piloter 10 (ou 20) mosfet aver les pin digitales de l'arduino ?
  2. mon port série matériel est deja utilisé (j'envoie mes données sur excel)

J-M-L:
ModBus est un bus, donc vous pouvez bien avoir une topologie à plusieurs esclaves. Mais est-ce que vous avez ?

il y a une Arduino Modbus Library

J'ai utilisé le terme Modbus en temps que synonyme de "liaison série" ou "UART", je l'ai vu plusieurs fois écris dans la doc, mais je ne connais pas.

J'ai commandé une alim 10A que j'essayerai lundi, on sera fixé pour savoir si l'alim règle le pb.

Quelqu'un peut il me confirmer que passer en I2C règlerai mon s'il vient bien de la multiplicité des capteurs sur la liaison série ? Par ce que si oui j'ai pas mal de travail pour changer mon code et trouver comment changer les adresses des capteur, autant commencer en prévention ...