ESP32, MOSFET et Pompe 12V

Bonjour,

Je suis en train de monter un système d'arrosage automatique à base d'ESP32 et d'une pompe 12VDC (60W). Le système entier sera complété d'électrovannes et de différents capteurs pour rendre plus intelligent la chose (et aussi s'amuser) mais je rencontre depuis maintenant 3 semaines un problème sur le pilotage de ma pompe.

En effet, j'aimerais pouvoir maîtriser son débit et pour cela j'ai fait un montage avec un MOSFET IRLZ34N (compatible avec ma logique à 3V3 si je ne me trompe pas) que je compte piloter en PWM.

Avec une simple led à la place de la pompe, pas de problème : j'arrive à varier la luminosité.
Avec la pompe, le mosfet chauffe et la pompe ne démarre pas : uniquement un sifflement au cycle max. A noter que l'intensité au niveau de la pompe ne dépasse pas 1A.

Je comprends donc qu'il n'y a pas assez d'intensité pour démarrer la pompe (car 60/12=5A) mais je ne comprends pas pourquoi le MOSFET ne laisserait pas passer assez d'intensité. Je pensais que mon MOSFET était adapté mais finalement peut-être pas ... j'essaye pourtant de trouver une explication à travers la datasheet (http://www.irf.com/product-info/datasheets/data/irlz34n.pdf) mais je n'ai pas encore trouvé.

Du côté de mes branchements, ça reste simple ... mais là aussi, suis-je passé à côté de quelque chose ?

Malgré plusieurs recherches et tentatives, j'avoue que le coup de pouce d'un électronicien ne me serait pas de trop :slight_smile:

Merci par avance!
Flo.

floww:
Bonjour,

Je suis en train de monter un système d'arrosage automatique à base d'ESP32 et d'une pompe 12VDC (60W). Le système entier sera complété d'électrovannes et de différents capteurs pour rendre plus intelligent la chose (et aussi s'amuser) mais je rencontre depuis maintenant 3 semaines un problème sur le pilotage de ma pompe.

En effet, j'aimerais pouvoir maîtriser son débit et pour cela j'ai fait un montage avec un MOSFET IRLZ34N (compatible avec ma logique à 3V3 si je ne me trompe pas) que je compte piloter en PWM.

Avec une simple led à la place de la pompe, pas de problème : j'arrive à varier la luminosité.
Avec la pompe, le mosfet chauffe et la pompe ne démarre pas : uniquement un sifflement au cycle max. A noter que l'intensité au niveau de la pompe ne dépasse pas 1A.

Je comprends donc qu'il n'y a pas assez d'intensité pour démarrer la pompe (car 60/12=5A) mais je ne comprends pas pourquoi le MOSFET ne laisserait pas passer assez d'intensité. Je pensais que mon MOSFET était adapté mais finalement peut-être pas ... j'essaye pourtant de trouver une explication à travers la datasheet (Semiconductor & System Solutions - Infineon Technologies) mais je n'ai pas encore trouvé.

Du côté de mes branchements, ça reste simple ... mais là aussi, suis-je passé à côté de quelque chose ?

Malgré plusieurs recherches et tentatives, j'avoue que le coup de pouce d'un électronicien ne me serait pas de trop :slight_smile:

Merci par avance!
Flo.

bonsoir
reference de la pompe ?
le 12V puissance est fourni par quel "type d'alim" ?

Concernant la pompe, c'est celle-ci : https://www.amazon.fr/dp/B07BPFD4RK/ref=cm_sw_em_r_mt_dp_U_vaPMCbH32J81Q

D'un point de vue alimentation, j'utilise pour le moment une batterie 12V 2.1Ah (Yuasa NP2.1-12).
A noter, la pompe se lance sans problème en direct sur la batterie.

floww:
Concernant la pompe, c'est celle-ici : https://www.amazon.fr/dp/B07BPFD4RK/ref=cm_sw_em_r_mt_dp_U_vaPMCbH32J81Q

D'un point de vue alimentation, j'utilise pour le moment une batterie 12V 2.1Ah (Yuasa NP2.1-12).
A noter, la pompe se lance sans problème en direct sur la batterie.

Pour l'instant oublie le pwm

çà donne quoi lorsque ton esp32 commande la gate du mosfet par un simple digitalwrite ?

Artouste:
çà donne quoi lorsque ton esp32 commande la gate du mosfet par un simple digitalwrite ?

Idem, le mosfet chauffe et la pompe ne se lance pas.
Par contre quand j'avais fait ce test, j'avais laissé tourner plusieurs dizaines de secondes (au risque de griller le mosfet) et la pompe s'était lancé avec difficulté avec un régime très bas/instable...

floww:
Idem, le mosfet chauffe et la pompe ne se lance pas.
Par contre quand j'avais fait ce test, j'avais laissé tourner plusieurs dizaines de secondes (au risque de griller le mosfet) et la pompe s'était lancé avec difficulté avec un régime très bas/instable...

Refais un nouveau test avec un mosfet neuf
et fais simplement des sequences on/off de qq secondes (pompe pas en charge hydraulique ) par l'esp32 (digitalwrite)

Ta diode D1 c'est quelle ref ?

Bonjour,

Mesure la tension sur la gate pour voir si tu as bien 3V ou plus.

Par contre quand j'avais fait ce test, j'avais laissé tourner plusieurs dizaines de secondes (au risque de griller le mosfet) et la pompe s'était lancé avec difficulté avec un régime très bas/instable...

As-tu relevé les tensions dans ces conditions ?

  • tension de grille
  • tension de drain

La résistance GS me semble faible. Essaie plutôt avec 100K. Elle n'est là que pour garantir un zéro quand la sortie de l'ESP32 est en l'air, au démarrage.
Aussi, ajoute une 100Ω ou 220Ω en série avec la grille, pour protéger la sortie de l'ESP32 lors de changements de niveau (la grille d'un MOSFET a une capacité non négligeable).

Sinon, en dernier recours, intercale un PNP entre l'ESP32 et le MOSFET, avec émetteur au +12V.

Je pensais à quelque chose comme ceci :

Schéma erroné supprimé

Avec ce montage tu appliques du 12V sur la grille. Même un IRF540 conviendrait.

Par contre la commande est inversée, donc le PWM aussi.

Es-tu sûr que le MOSFET soit bien un IRLZ34N et non pas un IRFZ34N ?

Éventuellement un IRLZ44N sera plus à même d'assurer un courant de drain important.

Je pense que le transistor ne sera jamais bloqué.
J'aurais mis un transistor npn avec une résistance de rappel de la gate au 12V

kamill:
Je pense que le transistor ne sera jamais bloqué.
J'aurais mis un transistor npn avec une résistance de rappel de la gate au 12V

Bonjour,

Je pense la même chose.

On voit le µC alimenté sur son 3,3V par un régulateur sortant 5V (schéma initial au 1er Post) ....

Serge .D

Je pense à ça

Ceci dit suivant les spécifs de l'IRLZ44 ça devrait fonctionner avec une commande à 3V et une intensité à 5A. Peut être que le problème est du à l'appel de courant au démarrage.

kamill:
Je pense à ça

Ceci dit suivant les spécifs de l'IRLZ44 ça devrait fonctionner avec une commande à 3V et une intensité à 5A. Peut être que le problème est du à l'appel de courant au démarrage.

Eventuellement diminuer la 47k à 10k pour accélérer la charge de la capacité grille du mosfet; on doit aussi pouvoir retirer R3.

Serge .D

Effectivement si on fait du pwm, 47k c'est beaucoup.
La résistance R3 sert à saturer le transistor donc à bloquer le mosfet à la mise sous tension, avant que la pin ne soit initialisée en sortie.

OUPS ...

Oui, effectivement mon montage marchera si la GPIO est à 12V / 0V ce qui ne sera pas le cas.

Le problème de la résistance de grille importante était ce que voulais justement éviter.
A voir si cela pose un problème avec un PWM à 500Hz ?
J'en doute.

Un petit essai vite fait avec un IRLZ44N et une charge de 2Ω (un peu plus avec la résistance des fils) et une commande de grille en 3.3V.

Le tout sur une MeanWell 100W.

Vds = 1V. Évidemment avec 4A le MOSFET chauffe.

Mais 1V de perte sur 12V ne devraient pas empêcher une pompe de démarrer.

IRLZ44N etIRLZ34N étant très proches ... je ne vois pas.

Donc je répète la question :

Es-tu sûr que le MOSFET soit bien un IRLZ34N et non pas un IRFZ34N ?

Ou alors un problème d'alimentation 12V ?

Excusez moi, mais , s'il y a un problème de courant de démarrage, est ce qu'un "gros" condensateur peut le cacher?

D'accord avec hbachetti, ça devrait fonctionner avec le schéma du post initial, mais c'est quand même un peu limite.
On voit qu'avec une tension gate de 3V le courant drain source est de 6A

Deuxième petit essai un peu moins vite fait avec un PN2907 + IRLZ44N (schéma de kamill), mêmes conditions.

Vds = 0.4V. Le MOSFET chauffe un peu moins.

Et un troisième (je ne m'en lasse pas), avec l'excellent PMOSFET SUP90P06 (meilleur en Rdson que l'IRLZ44N, un peu moins bon en VGSth) :

Vds = 0.3V. Le MOSFET chauffe encore moins.

Et la résistance de grille est de seulement 220Ω.

J'arrête avant que la breadboard ne fonde.

@+ quand floww voudra bien répondre aux questions.

Je ne dis pas que ce qui va suivre explique à lui seul le non fonctionnement.
J'interviens parce que je vois souvent utiliser des transistors monstrueux pour des applications qui ne l'exigent pas et souvent "qui peut le plus peut le moins" n'est pas toujours vérifié en électronique.

Pour avoir un faible Rdson il faut des grosses puces. Voir un Rdson exprimé en milli ohms est excitant mais il y a des conséquences oubliées en particulier toutes les capacité parasites qui explosent.

Dans le schéma proposé la résistance R2 constitue un réseau RC avec la capacité grille-source du MosFet qu'il faudra charger et décharger.
Une valeur élevée de R2 n'empêchera pas le transistor de se saturer mais elle le maintiendra plus longtemps que nécessaire en mode linéaire tant à la charge qu'à la décharge et retardera l'ouverture et la fermeture du transistor.

Qualitativement plus R2 et Cgs seront grands plus les temps de charge et de décharge seront longs et plus le transistor chauffera.

Quantitativement il n'y a pas d'affolement à avoir : il suffit de prendre un thermomètre et de mesurer la température sur le boîtier du transistor.
La résistance thermique Junction/Case étant fournie dans la datasheet on peut remonter à la température de jonction de la puce et vérifier qu'elle n’excède pas la limite indiquée par le constructeur dans la datasheet.

Note : il serait bon d'indiquer si le boîtier du transistor est "à l'air libre" ou muni d'un radiateur.

Au besoin pour les explications sur le calcul de thermique voir ou revoir mon tuto :
http://forum.arduino.cc/index.php?topic=100727.0

Il faut quand même être prudent :
Si R2 = 47k
Cgs = 1nF (c'est un exemple je n'ai pas vérifié la datasheet de l'IRL)
Constante de temps du circuit RC = Tau = R2Cgs = 47k1n = 47µs
Temps de charge total = 3 Tau = 141 µs

Coté PWM
Fréquence de répétition en mode arduino = 500 Hz, soit une période TPWM = 2 ms
Largeur minimale de la PWM tmin = TPWM /256 = 7,8 µs

A comparer : temps du créneau = 7,8 µs avec temps de réponse du réseau R2Cgs = 141µs

Cela marchotera mais pour les faibles valeurs de PWM il n'y aura aucune linéarité.
Un transistor Logic Level calibré pour un courant juste suffisant aura une capacité grille/source plus faible et répondra plus rapidement.
Comme quoi une fois de plus "qui peut le plus peut le moins" n'est pas toujours vérifié en électronique.