Je souhaite commander une pompe à eau Pierburg CWA400 avec mon arduino en PWM. Elle sera utilisée dans ma voiture.
Voici les caractéristiques de la pompe
J'ai vu de nombreux projets de commande de pompe en PWM sur le forum mais je n'en ai pas trouvé avec des pompes 12V possédant quatre entrées / sorties. Deux pour le signal PWM et deux pour la partie puissance.
Le signal de sortie PWM de l'arduino est en 5V mais la tension sur la pompe est de 12V.
Donc il me faut donc "réhausser" la tension du signal PWM. J'ai vu sur le forum l'utilisation de transistor pour cela.
J'ai réalisé ce schéma électrique, pouvez vous me dire si je n'ai pas fait d'erreur svp ?
Si j'ai bien compris la résistance sert à "limiter" les effets de la "capacité interne" du transistor à grande fréquence. Elle est à calculer en fonction de la capacité d'entrée du transistor et de la fréquence d'utilisation.
J'ai également vu sur certains posts qu'il y avait parfois une deuxième résistance sur d'autres broches du transistor, à quoi sert elle ?
Je suis débutant en éléctronique donc excusez moi pour les termes qui ne sont parfois pas les bons et/ou si j'ai fait des erreurs grossières sur le shéma. N'hésitez pas à me corriger, je suis là pour apprendre
Il y a au moins 2 données importantes à respecter
1/ The PWM input is equipped with a 60 kOhm pull-down resistor.
2/Note: To ensure the pump awakes correctly an uninterrupted high pulse of 3ms must be applied. (For example: 50% duty at 150 Hz)
Pour le point 1
Je comprend que
le 1 du bornier est l'entrée "+" du PWM
le 2 du bornier estl'entrée "-" du PWM et le GND
Qu'entre le 1 et le 2 il y a une résistance interne de 30k Ohms
Donc pour moi, il faut un transistor MOS canal P piloté par un NPN comme dans le sujet en cours actuellement ICI
Voir schéma post #151 qui marche et est à adapter à ton cas.
Pour le point 2:
Un signal PWM est un signal périodique de période 1/Fréquence, et dont la durée sur une période et à l'état haut dépand du rapport cyclique.
Le fabricant dit que la durée minimum à l'état haut doit être de 3ms
Si tu prend un signal PWM de rapport cyclique 50% c'est à dire 50% de la période (ou 1/2 période) = état haut, et 50% restant = état bas.
à 50%, il faut donc 1/2 période = 3ms donc période = 6ms donc Fréquence max du PWM = 1/0.006=166Hz Max
Avec un Arduino, tu as en standard des PWM (de mémoire) de 490Hz ou 980Hz, c'est trop rapide.
Sauf à manipuler les registres, c'est à savoir, c'est faisable.
Sur 1 ESP32, tu peux simplement choisir la fréquence de ton PWM, et même la changer dans ton sketch pendant que le programme tourne.
Sinon, il as des convertisseur de niveau logique comme ça qui peuvent aussi faire l'affaire pour un signal PWM.
ATTENTION, ils ne sont pas fait pour transmettre de la puissance, mais du signal (150mA maximum).
Dans votre cas, si il n'y as pas de composant qui consomme du courant sur l'entrée PWM, sa devrait marcher (la résistance consommera 0.2mA).
Pour la modification de la fréquence, en fonction de ce que la carte doit gérer d'autre, il y a moyen de programmer directement le signal PWM, ce qui évite de modifier les registres.
Oui c'est faisable, vous avez tout à fait raison. Mais il faut savoir se que l'on fait. Il peut y avoir des répercussions inattendues. Si je prends en exemple le µ ATméga328, largement utilisé : si on change la fréquence de base du timer 0 ou 2 (par division) certaines fonctions comme delay() ou millis() forcément cela va mettre un peu le bazar ...
Discussion qui ne prend en compte ni la capacité CGS du mosFet qu'il faut bien charger et décharger, ni la fréquence de fonctionnement. Se contenter des états stables est un peu léger à mon avis.
Je dirais que ce montage convient pour de l'I2C à 100 kHz, mais ne convient pour de l'I2C à 400 kHz où il faudrait mettre des résistances de 4,7K au lieu des 10 k.
Je sais ce n'est pas de l'I2C c'est de la PWM, mais les kHz et les RC sont les mêmes.
Comme j'ai décidé de ne plus vous ennuyer avec la théorie électronique, vu que seule la programmation intéresse ici, vous faites comme vous voulez.
Je ne suis pas sûr de comprendre le sens caché de votre message qui raccourcit donne
"j'ai décidé de ne plus vous ennuyé...vous faites comme vous voulez".
C'est un fait, au final l'utilisateur fait de toutes façons comme il veut.
Dans l'absolut, "au bout du bout", à "l'extréme de l'extréme", vous avez raison.
Un signal PWM n'est pas un signal "stable", disons pas tout à fait stable.
Mais ici, en réponse à votre remarque
Nous ne sommes pas à 400kHz, ni même à 100kHz mais plutôt bien en dessous, à 160Hz max., on est donc hors de vos limites, est-ce que ce que vous écrivez nous concerne tout de même?
Et puis sur ce post, personne n'a écrit que vos explications étaient ennuyeuses ou inintéressantes.
Je crois qu'au pire elles sont inaccessibles pour ceux
Ce n'est pas une raison pour ne pas essayer d'expliquer de maniére plus abordable pourquoi ce montage ne convient pas pour de la PWM.
Parce que pour l'instant, faute d'avoir compris pourquoi, certains l'utilisent avec succés pour de la PWM Arduino (1000Hz max).
En regardant le shéma du post#151, j'avoue ne pas bien voir où je branche mes bornes 1 et 2 de la pompe. Est ce que le le deuxième shéma de votre post#12 sur ce fil correspond à mon cas ?
Concernant la fréquence du signal PWM, c'est bien une arduino mega dont certaines broches sont à 976,56Hz et d'autres à 490,20Hz.
J'ai vu qu'il existait une librairie qui permet de modifier la fréquence du PWM. C'est " PWM frequency library"
Qu'en pensez vous ?
Je ne préfère pas modifier les registres car l'arduino servira à piloter d'autres composants.
Je préfère rester sur du arduino et non du ESP32 car étant débutant, la communauté arduino me parait plus grande.
Bonjour jpbbricole,
C'est bien vu pour le lien.
En regardant la doc des deux pompes, la gestion du signal PWM a l'air identique.
La seule différence est la valeur de la "pull-down resistor" qui est de 60kohm pour la grosse pompe et de 10kohm pour la plus petite. Peut être à cause de la différence d'intensité par le circuit de puissance, je ne sais pas trop à quoi sert une pull down.
Voici les caractéristiques des deux pompes
CWA200
CWA400
Peut être que quelque chose m'échappe dans les différences.
Que pensez vous tous du montage présenté dans "instructable" ?
La 'communauté Arduino' a largement adopté les ESP32 ......programmés sous IDE Arduino en utilisant une très grande partie des bibliothèques usuelles
Pour moi les cartes avec des ESP32 forment un nouveau type de 'cartes Arduino' , la société Arduino.cc a suivi le mouvement en produisant sa carte Nano ESP32.....
Le schéma de "Instructable" est intéressant car il semble que cette appli marche.
Mais à mon sens, il y a un transistor qui ne sert qu'à inverser le niveau logique de commande du PWM et dont on pourrait se passer.
La proposition de @guillaume_lrt avec le module de changement de niveau me semble aussi intéressante, à voir avec lui dans quelles conditions il l'a utilisée.
Quand à mes schéma post#12, je les ais testés sur esp32 de 1hz à 10.000hz, c'est sûr, pour répondre aux remarques de @68tjs, plus la fréquence est basse (<200hz) mieux ils marcheront "bien", et ici, on est en basse fréquence.
J'ai utilisé
MOS P: IRF9540
MOS N: IRFZ44N
Bipolaire NPN: 2N3904
Je suis dispo pour éventuellement vous partager des relevés de mesures sur une charge (pulldown) de 30k des mes montages, plutôt du 2éme, à une fréquence de 1k Hz (qui peut le plus, peux le moins).