Arduino pro mini piloter pompe avec un transistor 2N2222

Bonjour,

J'ai tenté de faire le montage suivant, à savoir piloter une pompe 3v depuis un arduino pro mini 3v, lui même alimenté par une batterie 18650 3.7v. Je veux que la pompe tourne pendant 10 secondes toutes les 10 mn (j'utilise dans le programme l'instruction delay() pour cela).

Pour l'alimentation du pro mini :

  • Le plus de la 18650 est relié au Pin RAW
  • Le moins de la 18650 est relié à un Pin GND

Sur le 2N2222

  • L'émetteur est relié au moins de la pompe
  • La base est reliée au Pin 2 du pro mini
  • Le collecteur est relié à un Pin GND du pro mini

Sur la pompe

  • Le plus est relié à un Pin VCC du pro mini

Je constate que par moment cela fonctionne, c'est à dire que la pompe tourne et s'arrête selon la temporisation définie.
Au bout d'un nombre de fois qui semble aléatoire, le pompe ne tourne plus.
J'ai beau faire un reset, tout débrancher, tout rebrancher, le résultat est le même.
Par contre j'ai eu une joie de courte durée, en changeant de Pin VCC pour brancher le plus de la pompe, ça a refonctionné et idem.

Pour info, j'allume et j'éteins selon la méme temporisation la led BUILT_IN du arduino.

J'ai l'impression que le transistor reste à l'état ouvert et empêche la pompe de tourner.

J'avoue que je ne sais plus quoi faire pour solutionner mon problème, j'ai lu qu'avec une résistance....

Merci d'avance, à tous ceux qui pourraient me venir en aide.

Salut
Vérifiez bien quel transistor vous avez, il est courant de confondre le 2n2222 et le P2n2222, qui sont complètement différents, (en gardant la base sur la broche centrale, ils inversent le collecteur et l'émetteur), vous avez connecté comme s'il s'agissait du P2n2222 .
Qu'en est-il de la résistance de base ? Vous devez placer une résistance d'environ 1K entre la base du transistor et la broche arduino, pour plus de précision dans le calcul de cette résistance, vous devez connaître la consommation de la pompe.
Salutations.

Pour savoir comment calculer un transistor et sa résistance de base :

le 2N2222 est un transistor bipolaire NPN.

Pour connaître les caractéristiques du 2N2222 : moteur de recherche avec "2n2222 datasheet"
Normalement si on prend une datasheet qui ne fait pas que 2 pages il y a tous les brochages disponibles.

L'émetteur se câble coté masse, c’est-à-dire 0V ou V- (différents noms pour la même signification)
Le collecteur se connecte sur la charge qui elle-même est reliée au V+

Mais, si on veut éviter de mettre la charrue avant les bœufs on commence par regarder du côté de la charge : quel est le courant qui passe dans la pompe ?
Le transistor choisi permet-il ce courant ?

Et attention avec les transistors bipolaires, le gain en courant diminue au courant maximal, d'où la nécessite de lire la datasheet.

Note : "en principe" on ne détruit pas un transistor bipolaire si on a inversé le collecteur et l'émetteur, cela donne simplement un transistor au fonctionnement pourri.
A condition bien sur de ne pas avoir dépassé les "Absolute Maximum Rating" qui sont les valeurs à ne jamais dépasser sous peine de destruction.
Avec une alimentation 3V je ne suis pas inquiet.

Je le suis plus sur la capacité d'utiliser un transistor bipolaire sous 3,7 V
A la saturation il y a le Vcesat qui est une tension résiduelle.
Elle est donnée pour le courant Ic_max et est généralement comprise entre 0,3 V et 0,6 V.
Si le courant Ic dans la pompe est faible le Vcesat effectif sera inférieur à la valeur max de la datasheet.
Mais je ne crois pas trop qu'une pompe sous 3V fonctionne avec 10 mA.

Caractéristique de la pompe ?

Bonjour useralacon

Dans ton explication, émetteur et collecteur sont inversés.
As-tu mis une diode de protection "sur" le moteur?
image
Quand ton installation dysfonctionne, est-ce que le transistor chauffe?

Avec delay() ton programme est bloqué en permanence, tu ne pourrais rien faire d'autre. Quand de longs temps sont nécessaires, il est préférable d'utiliser millis() comme proposé dans l'exemple Blink Without Delay
Voilà un exemple pour ta pompe,

const byte pompeCommande = 2;

unsigned long pompePeriode = 5000; //10*60*1000;     // 10 minutes en millisecondes
unsigned long pompePeriodeMillis = millis();
unsigned long pompeImpulsion = 1000; //10*1000;     // 10 secondes en millisecondes
unsigned long pompeImpulsionMillis = 0;

bool isLightOn = false;

void setup() 
{
	pinMode(pompeCommande, OUTPUT);
	digitalWrite(pompeCommande, LOW);
}

void loop() 
{
	if (millis()-pompePeriodeMillis >= pompePeriode)
	{
		pompePeriodeMillis = millis();     // Réarmer chrono période

		digitalWrite(pompeCommande, HIGH);     // Pompe En
		pompeImpulsionMillis = millis();     // Pompe impulsion début
	}

	if (pompeImpulsionMillis && millis()-pompeImpulsionMillis >= pompeImpulsion)     // Si fin impussion pompe
	{
		digitalWrite(pompeCommande, LOW);     // Pompe Hors
		pompeImpulsionMillis = 0;
	}
}

C'est un tout petit peu plus compliqué, mais plus pratique.
Il est "accéléré", 1 seconde toutes les 5 secondes, pour la démo, il faut enlever les remarques pour les temps réels.

unsigned long pompePeriode = 10*60*1000;     // 10 minutes en millisecondes
unsigned long pompeImpulsion = 10*1000;     // 10 secondes en millisecondes

Cordialement
jpbbricole

Bonjour,

Merci pour cette explication, non, je n'ai jamais remarqué que le transistor chauffait !
J'utilise bien, en tout cas c'est écrit dessus un 2n2222 A331.

C'est tout ce que j'ai trouvé comme information sur la pompe :
Caractéristiques:
Mini Pompes:
★Tension DC: 3-5 V

  • ★【Mini Pompes】Tension: DC 3V-5V; Style: horizontal; Courant: 100-200mA
    ★Diamètre extérieur de la sortie d'eau: 0,29 "/ 7,5 mm
    ★Diamètre intérieur de la sortie d'eau: 0,17 "/ 4,5 mm
    ★ Diamètre d'entrée d'eau: 0.19 "/ 5mm
    ★Mode de conduite: conception cc sans balai, entraînement magnétique
    ★Durée de vie continue de 300 heures
    Tuyau Transparent:
    ★Matériel: PVC
    ★I.D. Taille: 0.22 "/5.54mm
    ★ O.D. Taille: 0.32 "/8.20mm
    ★ Longueur: 39.37inch / 100cm
    Emballage Inclus:
    3 x DC 3V 5V Mini Micro Pompes à Eau Submersibles
    1 x 3M Tuyau Transparent

Je ne pense pas non plus avoir inversé le branchement entre émetteur et récepteur, sinon est-ce que ça pourrait fonctionner, même aléatoirement ?

Si je remplace le transistor par un MOSFET qui a priori est plus taillé pour de la commutation cela pourrait solutionner mon problème ?

J'ai modifié le programme et j'utilise millis() à la place de delay(), bien évidemment ça ne résout rien mais au moins je l'optimise !

J'ai oublie concernant le branchement du 2N2222 quand je regarde l'image ci-dessous,
il me semble que je câble correctement, mais je ne n'affirme rien, bien au contraire, c'est juste une remarque pour ma compréhension.

https://www.google.com/imgres?imgurl=https%3A%2F%2Fwww.componentsinfo.com%2Fwp-content%2Fuploads%2F2018%2F12%2F2n2222-transistor-pinout-equivalent.gif&imgrefurl=https%3A%2F%2Fwww.componentsinfo.com%2F2n2222-transistor-pinout-equivalent%2F&tbnid=PcutcC6KDtex5M&vet=12ahUKEwiOkbD01-PzAhUBnRoKHbvOCY0QMygBegUIARDCAQ..i&docid=44kg6Hu5CEuxkM&w=960&h=816&q=2n2222%20pinout&ved=2ahUKEwiOkbD01-PzAhUBnRoKHbvOCY0QMygBegUIARDCAQ

Merci encore.

Bonsoir useralacon

Certainement, autrement

n'aurait pas été possible, l'erreur est uniquement dans la description du post #1.

PS: qu'en est-il de la diode de protection?

Cordialement
jpbbricole

D'abord émetteur et collecteur
L'émetteur émet des électrons qui sont collecté par le collecteur.

Tu as bien écrit :

Est-ce bien ce que tu as fait ou c'est une "erreur de frappe" ?

Si le collecteur et l'émetteur sont inversé il me semble avoir écrit que je n'ai jamais vu de transistor détruit par cette inversion (40 ans d'électronique professionnelle et assez tête en l'air donc de nombreuses vérifications :slight_smile: )

Les correspondances Transistor bipolaire Transistor MosFet
Bipolaire _ __ |___ MOSFET
Émetteur ---------- > Source
Base ---- --------- -- > Grille (ou Gate)
Collecteur ----------> Drain

Si le câblage est bon, émetteur à la masse, collecteur relié à la pompe, un transistor 2n2222 peut très facilement supporter un courant de 200mA.

Le seul point négatif que je vois pour le 2n2222 et qu'un petit MosFet pourrait améliorer est son Vcesat à 200mA qui va diminuer la tension disponible pour la pompe.
D'un autre coté un MosFet qui se commande avec une tension de 3V n'est pas aussi facile à trouver qu'un mosFet qui se commande avec une tension de 5V.

Je désapprouve les fuites en avant, changer pour un mosfet seulement oui si c'est la bonne solution mais pas en espérant que cela va tomber en marche.
As tu un multimètre pour mesurer la tension entre l'émetteur et le collecteur ? [1]
Cela permettra :

  1. de vérifier le câblage
    0 V sur la résistance en série avec la base, le collecteur doit être à 3 V
    3 V sur la résistance en série avec la base, le collecteur doit être à Vcesat
  2. en fonction de la valeur mesurée on pourra accuser le Vcesat ou l'innocenter.

PS :
Je n'en ai pas parlé mais tu as bien vérifié que la pompe fonctionnait bien en l'alimentant directement sur le 3 V (c’est-à-dire sans le transistor).

L'idéal si tu as un petit module convertisseur step down serait de baisser la tension jusqu'au décrochage de la pompe pour voir la marge qui existe en fonctionnement à 3 V.

[1] Si tu n'as pas de multimètre tu as toujours les entrées analogiques du pro-mini qui peuvent mesurer ces tensions.

J'avais fait l'essai, cela fonctionnait mais:
‐ le gain devient faible
‐ la tension maximale est plus faible
Cela peut fonctionner mais pas de manière aléatoire. Maintenant, cela peut dépendre du transistor.

Oui si on inverse E et C on obtient un transistor aux performances fortement dégradées.

Déjà, je ne vois pas l'intérêt d'alimenter la pompe avec le 3V de la carte.
À cela plusieurs raisons:

  • la pompe peut fonctionner de 3 à 5V
  • la sortie 3V ne doit pas trop aimer fournir du courant au moteur. Sur ces petites cartes le régulateur n'est pas très gros et le dissipateur a une surface limité
  • le transistor ajoute une chute de tension et en fin de compte il doit y avoir moins de 3v aux bornes du moteur.
  • le démarrage du moteur peut entraîner une chute de tension sur le 3V que le processeur peut ne pas très bien supporter. Alimenter le moteur directement par la batterie isole un peu les 2 parties.

+1. Une PRO MINI est souvent équipée d'un régulateur MIC5205 (150mA). Alimenter la pompe de préférence sur le 3.7V batterie.

Sans résistance de base ?
Insérer une résistance entre D2 et base. Avec un courant de collecteur de 200mA, un gain de 50 et un coefficient de sécu de 5 :
Ib = 200mA / 50 = 4mA
R = (3,3V - 0,7V) / (4mA * 5) = 130Ω
Cela imposera 20mA de courant de base, ce qui est le maximum. Et la tension sur D2 risque de chuter pas mal.

J'ai proposé des mesures, ultra simples, voyons ce qu'elles donnent.

Un dessin se comprenant mieux qu'une naration de plusieurs lignes, un schéma des branchements : papier, stylo, règle, photo et valeur des composants réellement câblés aiderait à être assuré de bien se comprendre.

Je ne sais toujours pas faire la différence entre "fautes de frappes" et erreur de câblage.

Bonjour,

Merci de te pencher sur mon cas.

  • La pompe fonctionne si elle est alimentée directement en 3v

Concernant les mesures, je ne suis pas certain de ce que tu demandes, mais j'ai vérifié que :

  • 0V entre Emetteur & Base
  • 3.5V entre Collecteur & Base

J'ai remarqué que si je relie le Collecteur et la Base, la pompe se met à tourner

J'ai aussi remarqué que malgré une tempo de 10" avec la fonction millis(), quand la pompe est connectée, en fait ça clignote à peine 1".
Par contre, si je débranche le pin2 ou le + ou le - de la pompe, la tempo tient bien les 10".

Je vais essayé de faire un croquis de mon branchement.

Je cauchemarde.

Ou est la résistance de base ?
Nous sommes au moins 3 à t’avoir rappelé qu'il en faut obligatoirement une.

As-tu lu mon tuto ?
As-tu regardé le schéma de jpbbricole ?
As-tu regarder le calcul de résistance de base de hbachetti ?

Entre l'émetteur et la base il y a une diode en direct
La tension aux bornes d'une diode est quasiment une constante et fait entre 0,7 et 0,9 V
Sur ton schéma tu appliques directement 3 V, tu crois que le transistor va apprécier ?
Il va résister parce que le 2n2222 supporte 5 V en "Absolute Maximum Rating".
Mais même s'il survit crois-tu qu'il va continuer à se comporter comme un transistor ?

Normalement impossible quand le transistor est commandé. Il doit y avoir ~0,8 V

Question : à quoi est relié l'émetteur ?
Tu ne crois pas que cela serait mieux s'il était à la masse ?

Ben comme la base semble être à la masse, autre possibilité le 2n2222 est mort avec émetteur/base en court-circuit, c'est un peu normal, non ?

La pompe étant branchée sur VCC, elle se met en route, VCC s'écroule car le régulateur est incapable de fournir plus de 150mA, et je pense qu'au démarrage il y a une pointe de courant.
Si tu es incapable de lire les multiples réponses qui ont été faites, essaie le LEGO.
Tu n'as pas volé ton pseudo.
J'abandonne, tracking/muted pour moi.

@useralacon il est temps de prendre un autre transistor et appliquer les recommandations des post précédents à savoir:

Mettre une résistance entre la base et D2 , connecter le + (plus) de la pompe au + (plus) de la batterie.
Prévoir aussi une diode de roue libre.

Et revenir une fois que tout ça sera fait.

Pas faux, même si avec un t bipolaire on peut prendre moins de marge en sachant ce que l'on fait, mais là c'est un rêve.
S'il se dirige vers un MosFet commandable sous 3 V soit quelqu'un lui donne une référence, soit il va falloir qu'il comprenne la notion de Vgs_threshold et là on y est encore pour quelques semaines.

Je me lancerai bien avec un marteau-pilon pour écraser une punaise, un AO3400, déjà indiqué par hbachetti dans un autre sujet, mais il n'existe qu'en boîtier SOT23-3, donc perdu d'avance.

CONSEIL TRES IMPORTANT
Avec un mosfet toujours placer une résistance entre Grille et Source (10k c'est bien, 9k ou 11 k ça marche aussi)
Obligatoire parce que quand le transistor est commandé et que le fil de commande se détache ou est arraché par mégarde, le transistor restera passant quelques heures, le temps que la capacité de grille se décharge.

Tu notes et si tu oublies de le faire ce ne sera pas la peine de venir demander pourquoi la pompe continue de tourner quand on enlève le fil de commande de grille.

Merci pour ces explications que j'ai sincèrement apprécié, par contre je voudrais préciser une chose, ce n'est pas parce que l'on maitrise parfaitement un sujet qu'on a le droit de se montrer condescendant et limite "grossier".
Sache que pour ta gouverne que j'enseigne les arts martiaux, je ne sais pas si tu vois de quoi je veux parler, et que jamais il ne me serait venu à l'idée de me comporter sur le tatami comme tu viens de le faire avec moi, avec un débutant.
Mon seul but est de le faire progresser afin qu'il prenne du plaisir dans sa pratique, et je fais tout pour qu'il se développe et qu'il ait envie de continuer.
Et là, cerise sur le gâteau, en agissant ainsi, on se grandit soi-même !
Encore une fois, j'ai vraiment apprécié les réponses, le temps consacré à mon problème.
Ce que je voulais juste en tant que débutant, c'est que l'on m'explique simplement sans balancer des caisses de théorie (je sais très bien que c'est important). Mais juste un schéma du branchement fonctionnel ! En tant que néophyte peut être que pour l'électronique ça ne peut pas fonctionner ainsi... Dommage

1 Like