mardi 24 janvier 2017

Tracer la courbe caractéristique d'une diode grâce à Arduino

Je vous explique aujourd'hui comment j'ai utilisé une carte Arduino Uno pour tracer la courbe caractéristique du courant en fonction de la tension (I = f(U)) pour plusieurs types de diodes en polarisation directe.

Tout d'abord, un tout petit peu de théorie

Comme vous le savez probablement, une diode est un composant qui laisse circuler le courant dans une direction, mais le bloque dans l'autre direction.

Mais en polarisation directe, une tension minimale est nécessaire pour que la diode conduise le courant:  c'est la tension de seuil.  Aussi longtemps que la tension de la diode est inférieure à la tension de seuil, le courant demeure négligeable.

La courbe caractéristique d'une diode montre comment se comporte le courant traversant la diode pour différentes tensions.

La méthode traditionnelle pour obtenir cette courbe consisterait à construire un circuit constitué d'une source de tension variable, d'une diode et d'une résistance.  Au moyen d'un multimètre, on mesure le courant dans le circuit et la tension aux bornes de la diode à mesure qu'on augmente la tension de la source.

J'ai choisi d'automatiser le processus en utilisant une carte Arduino qui sert à la fois de source de tension variable et d'appareil de mesure.

Le circuit utilisé

La partie la plus compliquée consiste à produire au moyen de l'Arduino une tension continue pouvant prendre différentes valeurs entre 0 et 5 V.  Heureusement, nous avions déjà traité ce sujet par le passé, et deux fois plutôt qu'une:  sortie PWM associée à un filtre passe-bas et un réseau R2R.

J'ai opté pour une sortie PWM associée à un filtre passe-bas, puisque ça nécessite moins de composants qu'un réseau R2R de 16 résistances.

La sortie 11 de l'Arduino est donc reliée à un filtre passe-bas constitué d'une résistance de 15 kΩ et d'un condensateur de 1 µF.  Sans trop de surprise, un amplificateur opérationnel branché en suiveur de tension s'est révélé nécessaire pour isoler la source de tension du reste du circuit (j'ai opté pour un lm358 alimenté par une source de tension externe de 10 V).


La sortie 11 de l'Arduino peut ainsi fournir une tension continue pouvant prendre n'importe quelle valeur entre 0 et 5 V.

Cette tension servait ensuite à alimenter un circuit constitué d'une diode (dont on cherchait à mesurer les caractéristiques) en série avec une résistance (dont la valeur était choisie de façon à ne pas trop s'approcher du courant maximal de 40 mA pouvant être supporté par une entrée/sortie de l'Arduino).

Il ne reste plus qu'à mesurer la tension à deux endroits dans le circuit:  à la sortie de l'amplificateur opérationnel et entre la résistance et la diode.

Si vous préférez la version Fritzing:



Le sketch

Le sketch est plutôt simple:  il produit une tension modulée en largeur d'impulsion (PWM) à la sortie numéro 11, avec un rapport cyclique de plus en plus élevé à chaque passage dans la boucle principale. Grâce à notre filtre, cette tension deviendra une tension continue qui augmente progressivement à chaque passage dans la boucle principale.

La tension aux bornes de la diode et la tension aux bornes de la résistance sont ensuite affichées dans le moniteur série (pour la résistance, on soustrait les deux tensions mesurées de part et d'autre).

Ces données demeurent sous forme brute (c'est à dire une valeur entière située entre 0 et 1023). J'avais d'abord fait un sketch qui faisait la conversion en volts et en ampères, mais les valeurs comportant un point décimal n'étaient pas compatibles avec ma version française d'Excel.


La saisie de données commence automatiquement, et s'interrompt lorsque la tension fournie par la pin 11 est de 5 V.  Il s'agit d'appuyer sur le bouton "reset" ou d'afficher la fenêtre du moniteur série pour reprendre une nouvelle série de mesures.


Traitement des données dans Excel

Puisque les deux tensions sont séparées par une tabulation, il s'agit de copier le contenu entier du moniteur série et de le coller dans Excel pour qu'elles se répartissent automatiquement sur deux colonnes.

Il ne reste plus qu'à convertir en volts la tension de la diode, et à appliquer la loi d'Ohm à la résistance pour connaître le courant en milliampères.

Tension de la diode en volts = (valeur de la colonne 1) * 5 / 1024

Courant à travers la diode = (valeur de la colonne 2) * 5 *  1000/ (1024 * 270 Ω)

Les résultats

D'abord, la courbe d'une diode au silicium 1N4003.  Un faible courant devient perceptible à partir d'une tension d'environ 0,5 V,  et la tension plafonne ensuite aux abords de 0,7 V peu importe la valeur du courant.   La tension de seuil est d'environ 0,7 V, tel que prévu



Maintenant, une diode Schottky 1N5817:  la tension de seuil est beaucoup plus faible que pour la diode au silicium:  environ 0,3 V.


Essayons maintenant quelques diodes électroluminescentes.  Plus la longueur d'onde émise est faible, plus la tension de seuil est grande.

Donc une LED infrarouge a une tension de seuil bien inférieure à 1,5 V:



... alors que la tension de seuil d'une LED rouge se situe entre 1,5 V et 2,0 V.

Pour une LED jaune, ça tourne autour de 2,0 V:


On dépasse un peu 2 V pour une LED verte:



Et puisque chaque photon de couleur bleue doit transporter beaucoup d'énergie, la tension de seuil dépasse nettement 3 V pour une LED bleue.


Terminons par un résultat qui m'a surpris:  une diode au germanium 1N34A commence à conduire à une tension beaucoup plus faible qu'une diode au silicium, mais ensuite la courbe est beaucoup moins abrupte que pour tous les autres types de diode.  Le graphique n'est pas très éloigné de la droite qu'on obtiendrait pour une résistance!:

Yves Pelletier   (TwitterFacebook)

8 commentaires:

  1. Bonjour, je me demandais pourquoi on ne peut pas tout simplement brancher la diode d'un côté en PWM et de l'autre sur un pin de lecture (j'étais partie en lecture digital avec un programme moins ambitieux, juste verifier qu'on est au dessus ou en dessous de la tension de coupure), genre comme ça :
    9~ (PWM) ------- [diode] -----------pin13
    et après on applique sur le pin9 0 à 1023 et on reçoit au début 0 puis 1 sur le pin13. Bon, en vrai ça marche pas... mais pourquoi ?

    RépondreSupprimer
    Réponses
    1. Je ne vois pas en quoi il serait utile de soumettre une diode à un signal PWM de 5 V.

      Supprimer
  2. Pour tes problémes de compatibilités au niveau de ton excel Français. Tu as 2 solutions
    Tu copie les données avec le point et excel le reconnait comme un texte. Puis tu fait remplacer "." par "," et les données redeviennent du numérique

    Autre solution au niveau de windows, tu choisi dans les paramétres de nationalisation le point comme séparateur décimal et ton excel français reconnait des chiffres au format internationnal

    Enfin si tu travaille en Libre office, c'est au niveau de calc que tu peux choisir le type de séparateur décimal

    RépondreSupprimer
  3. Ta remarque concernant la diode au Germanium
    Certes dans le sens direct le courant est presque proportionel comme une resistance.
    Mais en sens inverse, il est nul. Cela reste une diose. Donc c'est ce qui explique qu'on a pu utiliser des dioses germanium quand on était enfant à la place du Galéne et justement l'absence se seuil était là un avantage

    RépondreSupprimer
  4. Bonjour
    J'ai réalisé votre traceur de courbes, c'est un excellent travail, j'aimerais avoir le code avec la conversion de la tension et du courant, je suivrais la réponse de Mr Christian concernant le point décimal.
    Voici mon adresse mail
    "catehy.tassart@sfr.fr"
    Bien cordialement
    Patrick HERLIN

    RépondreSupprimer
  5. Bonjour, je decouvre votre blog, moi même etant debutant en electronique, et microcontrôleurs... cet article est fichtrement interressant car au final il va bien me servir...
    Pour ce qui d'excel, une simple fonction en vba resoudra le probleme sans se casser la tete la prochaine fois !

    RépondreSupprimer
  6. La différence entre Germanium (Ge) et Silicium (Si) s'explique très facilement.
    Si et Ge sont des semiconducteurs avec des largeurs de bande interdite différentes (1.1eV pour le Si contre 0.65eV pour le Ge). idéalement un diode Si devrait avoir une tension de seuil de 1.1V et le Ge devrait être à 0.65eV.
    Les procédés de fabrication ne permettent pas pour de multiples raisons d'obtenir ce maximum théorique mais le Si aura toujours une tension de seuil supérieur au Ge en raison de la largeur de la bande interdite.
    Pour le point "ça ressemble à une resistance", il s'agit encore d'un autre phénomène de perte :
    Théoriquement une diode ne passe pas de courant en dessous de la tension de seuil et en fait passer énormément après cette tension, sauf si les phénomènes resistifs sont important (mauvaise resitance d'une des électrodes par ex).
    Dans le cas de ta diode Ge, la Rs est surement plus élevée que la Rs de la diode Si, expliquant que la pente "parait constante" (généralement même sur les diode on doit retrouver un loi d'ohm au fortes tension (coté +)).
    Compare ces caractéristiques en prenant la valeur absolue du courant et en le tracant en echelle semilog (y en log).
    Voilou !

    RépondreSupprimer