IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Arduino Uno R4 WiFi - Des broches E/S à 8mA seulement
Un billet blog de f-leb

Le , par f-leb

0PARTAGES

Ce n'est pas la caractéristique la plus amusante des Arduino Uno R4, mais c'est quand même celle qui risque d'endommager votre carte si vous passez à côté...
Une caractéristique importante est le courant maximum que peut conduire une broche d'entrée-sortie numérique (ou DC current per I/O pin) :


Extraits docs. Arduino Uno R3 et R4

Et le moins qu'on puisse dire, c'est que le seuil de tolérance pour une broche numérique est sacrément abaissé :
  • [highlight]20 mA maximum pour l'Arduino Uno R3, contre 8 mA maximum pour l'Arduino Uno R4.[/highlight]

Avec l'avertissement :
[...] the UNO R4 series' maximum current draw per GPIO is 8 mA, which is significantly lower than previous versions. Exceeding this limit may damage your pin / board.
Si vous êtes habitués aux branchements directs de LED 20 mA ou autres micro-actionneurs consommant près de 20 mA aux broches de l'Arduino Uno R3 (et même davantage, l'Arduino Uno R3 est tolérant), il va peut-être falloir revenir aux fondamentaux : Les broches E/S numériques sont là pour transporter de l'information, et non de la puissance aux actionneurs. Il faut intercaler une interface de puissance entre l'Arduino et la charge :

Arduino ----signal de commande---- Interface de puissance ------ Charge
                                             |
                                     Alim. charge Vcc 
Certes, on pourrait augmenter la résistance en série de la LED pour réduire le courant absorbé entre 6 et 8 mA (voir le calcul de la résistance). Une LED rouge 5mm que l'on retrouve dans les kits pour débuter s'allumera quand même, mais elle sera un peu moins lumineuse. Si on veut lui redonner un peu de pêche sur une Arduino Uno R4, une interface de puissance à transistor pour amplifier le courant est une solution.


Transistor NPN BC547 en boîtier TO92

Par exemple, avec un transistor NPN BC547, la charge étant une LED rouge standard 5mm (IF = 20 mA recommandé, tension de seuil VF = 2 V), le schéma du montage est le suivant :


Le transistor doit fonctionner en commutation, en régime saturé. Pour calculer la résistance RB (à la base du transistor) et celle de la charge RC reliée au collecteur, il faut étudier la datasheet du BC547. Et le graphique ci-dessous qui en est extrait nous donne tous les renseignements en régime saturé dans le cas particulier IC / IB =10 :


Pour un rapport IC / IB = 10, et une intensité IC de 20 mA qui traverse la LED et qui rentre dans le collecteur (soit un courant qui rentre dans la base IB = 2 mA) :
  • VCE(sat) = 60 mV, et VBE(sat) = 800 mV.

En conjuguant la loi des mailles et la loi d'Ohm dans les deux mailles du schéma :
  • RC = (5 - 2 - 0,06) / 20.10-3 = 147 Ω, ou 2 V est la tension de seuil VF de la LED ;
  • RB = (5 - 0,8) / 2.10-3 = 2100 Ω.

Une simulation sur circuitlab.com avec les valeurs de résistance que l'on trouve dans les catalogues, et proches des valeurs calculées, confirme les prévisions :


Et voici ce qui se passe en pratique :


La LED la plus à droite, moins brillante que celle de gauche, est traversée par un courant de 6,5 mA seulement.
La LED de gauche est pilotée par un transistor.
On mesure le courant de base IB = 1,83 mA, et le courant qui traverse la LED IC = 18,50 mA.

Remarque : le fabricant du transistor donne des caractéristiques en régime « sursaturé ». Avec une résistance RB = 4,7 kΩ, le courant de base mesuré est IB = 0,85 mA, et le courant qui traverse la LED se maintient, IC = 18,45 mA. Soit une amplification d'un facteur 20 environ.

Le transistor joue bien son rôle d'amplificateur de courant, et pour conduire une LED à 15-20 mA, ce genre de composants redevient nécessaire avec une Arduino Uno R4. Le transistor BC547 (mais il y a plein d'autres références) en commutation convient bien pour amplifier des courants jusqu'à plusieurs dizaines de milliampères pour de faibles puissances (Pc < 0,5 W). Si votre montage doit comporter plusieurs transistors, songez à un ULN2803A/ULN2804A et son réseau de 8 transistors (quelques centaines de milliampères par transistor, mais pas plus de 2 W au total). Pour plus de courant et de puissance, envisagez un transistor à effet de champ (MOSFET).

Et voilà pour ce billet, encore et toujours des LED... Mais quitte à allumer une LED, autant le faire bien

Une erreur dans cette actualité ? Signalez-nous-la !