Valeur de résistance

Bonjour à tous,
Je me suis lancé récemment dans la programmation avec arduino et il
m'est venu une question, assez simple mais dont je ne ne trouve de
réponse nulle part: comment savoir quelle(s) résistance(s) utiliser dans
un montage?
J'avais par exemple réalisé un programme qui fait s'alumer une LED et
s'éteindre une autre lorsque l'on appuie sur un bouton-poussoir. J'ai
donc fait le montage, mais sans mettre de résistance. Résultat: j'avais
une LED qui restait allumée constamment et l'autre éteinte, quoi que
je fasse.
J'ai donc rajouté une résistance de 220 Ohms a chacune des cathodes des
LEDs et une de 10 kOhms à celle du bouton-poussoir, comme c'est le cas
dans des exemples du livre de projet Arduino, et là ça marchait!
Je connais la loi d'Ohm, j'ai fait de l'électronique mais pouvez, s'il
vous plaît, m'expliquer ce qui fait cette différence de résultat selon
qu'il y a des résistances ou pas et également comment savoir choisir
la résistance adéquate.
Je vous remercie d'avance.

Un petit tuto sur le calcul de R pour allumer une LED en 5V
http://www.instructables.com/id/Beginner-Arduino/step3/Turn-on-LED-with-5V/

La résistance de 10kOhms est une résistance de rappel. Elle a une très grande valeur car on veut être sur que lorsque le bouton est fermé,(presque) aucun courant ne circule. Le principe est de mettre en parallèle du bouton la résistance et dire que:

  • Lorsque l'on appui sur le bouton, sa valeur est égale à 0 ohm et on shunt la résistance, tes 5v arrive donc à ton entrée.
  • Lorsque tu n'appuis pas sur le bouton, celui à une valeur "infinie", donc ce n'est pas le 5V mais la masse (le 0V) qui, au travers de la résistance de 10 kOhms, arrive sur ton entrée.

La résistance de 220 Ohms sert à limiter le courant au travers de ta LED. Celui ci étant en général limité à 20mA et ta LED ayant une chute de tension d'environ 1.2V. Lorsque tu alimentes ton montage en 5V, le calcul de la résistance se fait par:

R = (5-1.2)/0.02 = 190 Ohms

Pour avoir une intensité de 20mA, tu dois donc mettre une résistance de 190 Ohms en série. En général les résistance de 220 ohms sont plus courantes, et cela laisse une marge de manoeuvre.

J'ai rédiger un petit article (que je dois encore améliorer) sur cela:

N'hésites pas à me donner ton avis la dessus.

Bon article! que j'ai mis en favori notamment pour les exemples.
Mais comment savoir quels sont le courant et la tension avec lesquels un composant doit être alimenté et donc connaître la valeur de la résistance? Car ce n'est indiqué nulle part, il faut pourtant le connaître? J'imagine qu'il faut se référer aux datasheets mais il n'y en a pas dans le kit de départ arduino.
Autre question: quelle est la différence entre courant de charge et courant hors charge?

La tension de sortie des pins de l'arduino est de 5 V

Bonjour,

Juste un petit bémol, il y a eu des arduino PRO (et peut être d'autres ?) en 3,3V et les "nouveaux" arduino DUE et ZERO sont aussi en 3,3v.

Pierre

Bonjour,

Schildkrote:
Autre question: quelle est la différence entre courant de charge et courant hors charge?

Hors charge, pas de charge, pas de courant.
Le courant de charge est le courant normal qui circule dans la charge. Pour une led qui accepte 10 mA, il sera nécessaire d'intercaler une résistance pour limiter le courant à cette valeur.

Ensuite, les courants maximaux admissibles sur les sorties sont fonction du circuit choisi https://www.arduino.cc/en/Main/Products

une de 10 kOhms à celle du bouton-poussoir

Pas nécessaire avec l'instruction INPUT_PULLUP

Schildkrote:
Mais comment savoir quels sont le courant et la tension avec lesquels un composant doit être alimenté et donc connaître la valeur de la résistance? Car ce n'est indiqué nulle part, il faut pourtant le connaître? J'imagine qu'il faut se référer aux datasheets mais il n'y en a pas dans le kit de départ arduino.

les leds 5 mm, 3 mm et cms n'ont pas de marquage difficile de trouver datasheet, sauf si le vendeur donne le type et la marque ou directement le Vf et If
pour le calcul d'une résitance en serie avec une led : R= Ualim-vf / if
une indication approximative suivant la couleur : led
aux temps anciens de l'apparation des leds il fallait 50 ma pour qu'elle s'éclaire un peu...

aux temps anciens de l'apparation des leds il fallait 50 ma pour qu'elle s'éclaire un peu...

Oui mais maintenant on en trouve qui s'éclaire parfaitement avec seulement 5 mA, donc méfiance.

Avec une Del que tu ne connais pas tu fais quelques test préalables.
Surtout ne pas utiliser une carte arduino, une alim (pile, chargeur de téléphone, etc), une résistance, une Del et un multimètre suffisent amplement.

Câblage :
alim 5V , résistance d'environ 400 à 500 ohms et Del en série.

  1. mesurer la tension aux bornes de la Del
  2. Calculer le courant -> c'est simple il est égal à la tension aux bornes de la résistance divisé par la valeur de la résistance (bête application de la loi d'Ohm).

Si la Del ne s'éclaire pas assez diminuer la valeur de la résistance, si elle s'éclaire trop augmenter sa valeur.

Ensuite, les courants maximaux admissibles sur les sorties sont fonction du circuit choisi https://www.arduino.cc/en/Main/Products

Surtout pas, ce ne sont que des conneries écrites par des personnes qui ne savent pas lire une datasheet.
La seule information sérieuse se trouve dans la datasheet du micro-contrôleur.

Il existe 4 niveaux de courant limite :

  1. 40 mA par sortie : c'est une "absolute maximum rating" en aucun cas un service permanent
  2. 20 mA par sortie : c'est la valeur utilisable en service permanent à condition de respecter les points 3 et 4.
  3. 100 mA ou 150 mA (sink/source) par PORT (un port regroupe jusqu'à 8 entrée/sortie)
  4. 200 mA max sur le Vcc ou la masse (GND)

Si on applique ces règles on ne peut pas faire débiter 20 mA à plus de 9 sorties simultanément en mode sink ou en mode source.
On peut, en faisant très attention, faire débiter simultanément 20 mA à 9 sorties en mode sink et à 9 autres en mode source. Mais c'est un exercice de funambule.

Les joyeux réveurs de chez Arduino proposent allègrement 40 mA par sortie sans aucune restriction.
Dans un Atmega328p il y a 19 sorties possibles cela donnerait 19*40mA = 0,76 A.
Avec un tel courant les bondings de Vcc et GND de l'Atmega fondent instantanément.
D'un autre coté c'est la vente de cartes qui leur rapporte du pognon ............

68tjs:

  1. 40 mA par sortie : c'est une "absolute maximum rating" en aucun cas un service permanent

Merde, tu es sur de ça?

Pour mon site je me suis basé sur la doc d'arduino.cc (donc 40mA par sortie). Si on ne peut plus faire confiance à la doc officiel ça craint!

Pour rappel le site dit:

"DC Current per I/O Pin: 40 mA"

Sur le net je voyais beaucoup de monde par de 20mA par sortie, je pensais simplement que c'etait la version R3 du UNO qui avait été améliorée pour sortir 40mA constant en sortie (comme suggéré dans la doc.)

La doc arduino n'est en aucun cas une doc officielle !
C'est un mélange d'amateurisme, de bling bling et de doc commerciale.

La seule doc officielle est celle du fabricant du micro-controleur c'est à dire ATMEL.
Quelque soit le composant, pour faire une carte, on applique avec plus ou moins de succès les consignes du fabricant du composant.

Il faut toujours lire les datasheets des produits qu'on utilise

J'ai finalement trouvé la doc de certains composants du starter kit arduino: Arduino - Home . Il y a donc la doc d'une LED jaune si je ne me trompe pas (LEDY-L-7113YT) et on y voit Vf=2.1 V. Donc R=(5-2.1)/0.02=145 Ohms. Est-ce que cela vous paraît normal?

Si j'ai bien compris: il ne faudrait donc pas qu'il y ait plus de 20 mA qui "retourne" dans le GND de l'arduino?

Le Ground accepte 200mA comme l'a noté 68tjs.

Et il y a 2 grounds, donc 400mA si on réparti le circuit entre les 2 pins.

Et il y a 2 grounds, donc 400mA si on réparti le circuit entre les 2 pins.

C'est assez théorique car rien ne prouve que les deux GND sont reliés à l'intérieur de la puce.
Cela peut surprendre certains mais c'est une pratique assez répandue.
La raison : la couche métallique qui forme la masse à l'intérieur de la puce est très fine et donc résistive.
Avec une masse résistive on a ce qu'on appelle des couplages de masse.
Ce n'est pas systématique mais souvent les "ilots de masse" sur la puce sont interconnectés "en externe" par l'intermédiaire du plan de masse du circuit imprimé qui est de meilleur qualité.

On trouve un bon exemple de ce que je viens d'écrire avec le CI du Zero/M0 le SAM21.
Dans la datasheet, Atmel à jugé nécessaire d'indiquer la correspondance Port avec les Vcc et Gnd dédiés aux port.

Il n'y a aucune indication pour le 328p, mais avant de passer à 400 mA je m'assurerais avec un ohmètre que les GND sont reliés entre eux sur la puce, idem pour les Vcc.

Schildkrote:
J'ai finalement trouvé la doc de certains composants du starter kit arduino: arduino.org/kitdatasheets . Il y a donc la doc d'une LED jaune si je ne me trompe pas (LEDY-L-7113YT) et on y voit Vf=2.1 V. Donc R=(5-2.1)/0.02=145 Ohms. Est-ce que cela vous paraît normal?

c'est ecrit If= 20 ma (0.02 A) dans la doc ? ton calcul est exact, juste que 20 mA me parait beaucoup pour une led moderne, avec 10 milli il n'y aura pas beaucoup de différence d'éclairement

En fait, If=20 mA est la "Test Conditions" dans laquelle la tension Vf=2.1 V a été trouvé. De plus, il est indiqué que la LED peut supporter jusqu'à 30 mA. Mais je me suis renseigné, et effectivement 10 mA est bien assez. Du coup, avec une résistance on aurait un courant d'environ 13 mA. Ça reste bien il me semble? (Je crois que je fais des progrès :wink: )

Schildkrote:
Du coup, avec une résistance on aurait un courant d'environ 13 mA. Ça reste bien il me semble? (Je crois que je fais des progrès :wink: )

tu n'as pas donné la valeur de la résistance, pas grave, oui c'est tres bien
n'oublie pas que dans un produit fini sur piles ou accus on cherche la consommation la plus basse possible, une led temoin de mise en marche n'a pas besoin de briller de mille feux le plus souvent
par exemple sur mon lecteur dvd dans la chambre j'ai du occulter la led de temoin veille tellement elle éclaire dans le noir .......quand je coupe le lecteur avec la tcde...

Oui pardon, je voulais dire une résistance de 220 Ohms ^^'
En tout cas merci beaucoup à tous pour votre aide et le temps que vous m'avez consacré. :slight_smile: