Pages: [1]   Go Down
Author Topic: résistance entre broche de commande et transistor 2N2222  (Read 2031 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je fabrique un système de ventilation comprenant 5 volets actionnés par servomoteurs dont la position dépend des valeurs de 8 sondes de températures en onewire. Un relai bistable alimente le ventilateur de la VMC ou un ventilateur auxilliaire

après avoir rédigé mon programme et avant de faire graver ma carte, je teste sur breadboard tous les montages. Jusqu'alors, ça se passait plutôt bien mais je viens de rencontrer un problème.
Le pin 4 gère l'alimentation des 5 servomoteurs (ils garderont leur position pendant plusieurs jours, voir des semaines, donc autant les préserver entre deux manoeuvres).
Pour se faire, j'ai intercalé une résistance de 10kohm entre le pin 4 et la base de mon transistor 2N2222.
Le + de l'alimentation externe est connecté au + des servos, et le - de servos est branché sur le collecteur. L'émetteur est mis à la masse, connecté au GND de l'arduino (Uno)

Ca ne marche pas.
En vérifiant mon montage, j'ai fait une fausse manip : j'ai oublié la résistance, et là, surprise, ça a fonctionné parfaitement. En fouillant sur le forum, j'ai compris que la valeur de ma résistance était trop élevée. En la supprimant j'aurais pu griller ma sortie. J'ai fait un test avec une 4.7kohm. Ca marche, mais très mal. Les servos sont très lents et poussifs. J'avais une 330ohm sous la main, ça marche bien. J'ai cru comprendre qu'une 1kohm serait parfaite. Qu'en pensez vous ?

J'ai deux montages similaires pour commander les deux bobines du relai bistable en 5V. J'avais aussi prévu une résistance de 10kohm entre le pin et la base du 2N2222. Seule différence, l'ajout de diodes de roue libre aux bornes des bobines. Vais-je avoir le même problème ?
Merci de votre aide.
Logged

Ales
Online Online
Faraday Member
**
Karma: 39
Posts: 3602
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Deux choses : déjà pour le calcul de la résistance il faut savoir que le courant Ic  conduit par un transistor est égale à Hfe x le courant envoyé à la base. Hfe est une constante qui varie beaucoup d'un transistor à l'autre, même sur un même modèle ! En général ça va de 50 à 300. Il faut donc d'abord déterminer le courant dont tes servos ont besoin. Si on dit 100 mA, et au pire des cas Hfe = 50 ça nous fait un courant de base Ib = 100/50 = 2 mA. A 5V (sortie arduino) R=U/R=5/(2/1000) = 2500 ohm. Perso je mets quasiment toujours 1k, en fait, une fois que le transistor est saturé, tu peux lui envoyé plus de courant dans la base ça ne changera rien, donc le seul facteur à surveiller c'est la sortie de l'arduino. En mettant 1k t'es quasiment sûr qu'à chaque fois tu vas être bon et ton arduino ne risque rien.

deuxième point : attention, les 2N2222 sont des transistors d'amplification de sinaux, il ne sont pas destinés à proprement parler à faire de la commande.
Logged


France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3444
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Si on dit 100 mA, et au pire des cas Hfe = 50 ça nous fait un courant de base Ib = 100/50 = 2 mA.
Je te trouve bien optimiste. Pour le courant dans le servo je verrais plutôt 500mA au démarrage pour un servo de taille moyenne.
Logged

Ales
Online Online
Faraday Member
**
Karma: 39
Posts: 3602
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui non j'ai bien pris 100 mA pour l'exemple ^^
Logged


France S-O
Offline Offline
Edison Member
*
Karma: 41
Posts: 2187
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
attention, les 2N2222 sont des transistors d'amplification de signaux
C'était le cas quand ils sont sortis dans les années 1960 (c'est un excellant mais très, très vieux transistor).
Au jour d'aujourd'hui quand on regarde leur datasheet ils sont classés en "switching", ne pas oublier qu'ils ont une fréquence de transition de 300 MHz.

@alain76 : il faut partir des valeurs de courants utilisés par les servos et remonter vers le micro-controleur et non l'inverse.
Peut-être un seul transistor suffira ou peut-être si le courant demandé au micro est trop élevé il faudra passer par un montage darlington.
Seul le bilan des courants pourra le dire.
Logged

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1392
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Alimenter 5 servos sur un 2222, c'est du suicide. le 2N2222 va cramer à partir de 800mA, prévois de pouvoir fournir au moins 5A... un relai serait certainement ce qu'il y a de mieux dans ton cas.
Logged

Offline Offline
Faraday Member
**
Karma: 33
Posts: 4983
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
attention, les 2N2222 sont des transistors d'amplification de signaux
C'était le cas quand ils sont sortis dans les années 1960 (c'est un excellant mais très, très vieux transistor).
Au jour d'aujourd'hui quand on regarde leur datasheet ils sont classés en "switching", ne pas oublier qu'ils ont une fréquence de transition de 300 MHz.

@alain76 : il faut partir des valeurs de courants utilisés par les servos et remonter vers le micro-controleur et non l'inverse.
Peut-être un seul transistor suffira ou peut-être si le courant demandé au micro est trop élevé il faudra passer par un montage darlington.
Seul le bilan des courants pourra le dire.
bonjour
en commutation "simple" gérée par MCU , j'ai abandonné les bipolaires au profit de MOSFET N en logic commande

En "tout venant" pour de la "petite commande" = relais ou petit actuateur pas trop gourmand
je mets du BS108 en TO92
Logged

France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3444
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Le + de l'alimentation externe est connecté au + des servos, et le - de servos est branché sur le collecteur. L'émetteur est mis à la masse, connecté au GND de l'arduino (Uno)
Je n'avais pas relevé ça tout à l'heure mais je ne suis par certain que couper la liaison de masse entre les 2 parties du montage soit une bonne idée.
D'ailleurs couper le plus des servo tout en laissant les entrées impulsion connectées n'est pas non plus une bonne idée.

De manière générale, il est déconseillé de couper l'alimentation sur une partie d'un montage tout en gardant l'autre partie alimentée si les composants du système n'ont pas été prévus pour ça au départ. En effet la partie du montage dont on a coupé l'alimentation a tendance à s'alimenter au travers des signaux connectés sur ses entrées par l'intermédiaire des diodes de clamp que l'on trouve généralement sur les entrées. Ce n'est bon ni pour le servo, ni pour l'arduino.
Il faudrait prévoir une isolation galvanique entre les sorties de l'arduino et l'entrée du servo. Un opto-coupleur par exemple pourrait faire l'affaire.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci à vous pour toutes ces remarques. J'y vois plus clair à présent.
Au sujet de l'alimentation des 5 servos, ils ne changeront jamais de position en même temps. Au pire, si les 5 doivent bouger, ils le feront avec une seconde de décalage entre chaque instruction. Par contre, à la mise sous tension, il est possible qu'ils se recalent sur leur position de consigne, ce qui aurait pour effet de faire un pic d'intensité.
Je vais revoir ma copie en prenant en compte vos conseils

Merci encore
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 11
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai modifié mon schéma en ajoutant un relai. La bobine est une 5vcc, 165 ohm. Comme le relai dispose de deux contacts distincts, j'en ai profité pour régler un autre problème que vous aviez soulevé, à savoir la coupure du +.

Voilà ce que ça donne


D'après les calculs, la résistance devrait faire 7.5kohm (si je ne suis pas gouré). A ce que je lis, une 1kohm suffit à protéger la sortie et assure la saturation du transistor. Je conserve mon 2N2222 qui est déjà dans le tiroir, sauf si ça ne passe vraiment pas.
La diode de roule libre est une 1N4007. Mes masses sont toutes reliées. L'alim 5V connectée à la broche 4 est la symbolisation de l'alim interne de l'Arduino. L'autre 5V est une alim externe (régulée)
Pour info, les servos sont des Futaba S3003 qui consomment environ 200mA au couple prévu (695mA maxi)

Alors, bénissez vous mon montage ?  smiley-grin
Logged

Ales
Online Online
Faraday Member
**
Karma: 39
Posts: 3602
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pour moi pas de problème. Simplement tu n'ai pas obligé d'appliquer le relais sur la masse également, couper le 5V suffit ^^

Après ce que je te conseille, c'est d'utiliser un optocoupleur en lieu et place du 2N2222 car si tes masses ne sont pas faites correctement (et ça arrive très vite) tu peux observer des variations dans le reste du système, voir un reboot de l'arduino. Avec un opto tu t'évites presque à coup sûr ce genre de mésaventure.
Logged


Pages: [1]   Go Up
Jump to: