Les séries de résistances électriques Crédits [1] Généralités Dans un circuit électronique, les résistances ont pour rôle de limiter l’intensité du courant électrique en s’opposant, plus ou moins, à son passage selon leurs valeurs exprimées en ohms (→ Ω). Cet obstacle au passage du courant occasionne l’apparition d’une tension aux bornes de la résistance ainsi qu’une production de chaleur (→ effet Joule). Dans un but de normalisation, les résistances électriques fixes disponibles dans le commerce n’existent que pour un certain nombre de valeurs qui sont réparties dans des séries (→ E12, E24, E48 …). Ces séries ont été conçues de façon à pouvoir couvrir la majorité des besoins des concepteurs. Chaque série se caractérise par : un nombre plus ou moins importants de valeurs disponibles. Ex. : 12 valeurs dans les tranches (→ décades) de 1Ω à 10Ω, de 10Ω à 100Ω, de 100Ω à 1kΩ … pour la série E12 mais 24 valeurs par décade pour la série E24 une précision garantie sur la valeur réelle de chaque résistance de la série Ex. : ±10% pour la série E12, ±5% pour la série E24, ±2% pour la série E48 … Cette précision est déterminée de façon à ce que la valeur réelle d’une résistance de la série ne “déborde” pas (ou peu) sur la valeur que peut prendre une de ses voisines dans la série. Ex. pour une résistance de 220Ω qui est entourée par les valeurs 180Ω et 270Ω dans la série E12 (→ ±10% de précision) 220Ω + 10% = 242Ω ⇒ c’est bien inférieur à 270Ω - 10% = 243Ω 220Ω - 10% = 198Ω ⇒ c’est bien supérieur — ou égal dans ce cas-là — à 180Ω + 10% = 198Ω Les valeurs disponibles dans une série E12, E24 … sont déterminées à partir d’une suite géométrique de raison n√10m où ‘n’ représente le n° de la série et ‘m’ le rang de la résistance dans la décade. Au final, la formule générale qui permet d’obtenir la valeur théorique d’une résistance dans une décade d’une série est : R = 10d . n√10m avec : d le rang de la décade (0 ⇒ [0, 10[, 1 ⇒ [10, 100[, 2 ⇒ [100, 1000[ …) n le n° de la série (6 ⇒ E6, 12 ⇒ E12, 24 ⇒ E24 …) m le rang de la résistance dans la décade (0 ⇒ 1ère résistance, 1 ⇒ 2èmerésistance, 2 ⇒ 3èmerésistance…) La racine nème d’un nombre équivaut à ce nombre élevé à la puissance 1/n ⇒ n√x = x1/n Application : Quelle est la valeur de la 5ème résistance (→ rang 4) dans la décade [10, 100[ de la série E12 ? R[4] = 101 * 12√104 = 101 * (104/12) = 10 * (2,15443469…) = 21,5443469…Ω R[4] ≈ 22Ω Le calcul des valeurs théoriques d’une série ne mène par forcément aux valeurs normalisées. Ces dernières sont parfois ajustées par rapport aux valeurs théoriques. Ex. dans la série E12 : La valeur théorique de la 6ème résistance (→ rang 5) de la décade [100, 1000[ dans la série E12 est 100 * 12√105 = 261,016 ≈ 260Ω. Or, la valeur normalisée est 270Ω Cet ajustement est appelé processus de rationalisation. Une explication assez détaillée de cette rationalisation figure dans la discussion Why does the E12 resistor sequence use 27 and 33 instead of 26 and 32? Valeurs normalisées des séries E3, E6, E12, E24, E48 et E96 Valeurs normalisées de la série E3 Centaine dans la décade Valeurs de la série E3 (±20%) 1 100 2 220 3 Aucune valeur 4 470 5 à 9 Aucune valeur Valeurs normalisées de la série E6 Centaine dans la décade Valeurs de la série E6 (±10%) 1 100, 150 2 220 3 330 4 470 5 Aucune valeur 6 680 7 à 9 Aucune valeur Valeurs normalisées de la série E12 Centaine dans la décade Valeurs de la série E12 (±10%) 1 100, 120, 150, 180 2 220, 270 3 330, 390 4 470 5 560 6 680 7 Aucune valeur 8 820 9 Aucune valeur Valeurs normalisées de la série E24 Centaine dans la décade Valeurs de la série E24 (±5%) 1 100, 110, 120, 130, 150, 160, 180 2 200, 220, 240, 270 3 300, 330, 360, 390 4 430, 470 5 510, 560 6 620, 680 7 750 8 820 9 910 Valeurs normalisées de la série E48 Centaine dans la décade Valeurs de la série E48 (±2%) 1 100, 105, 110, 115, 121, 127, 133, 140, 147, 154, 162, 169, 178, 187, 196 2 205, 215, 226, 237, 249, 261, 274, 287 3 301, 316, 332, 348, 365, 383 4 402, 422, 442, 464, 487 5 511, 536, 562, 590 6 619, 649, 681 7 715, 750, 787 8 825, 866 9 909, 953 Valeurs normalisées de la série E96 Centaine dans la décade Valeurs de la série E96 (±1%) 1 100, 102, 105, 107, 110, 113, 115, 118, 121, 124, 127, 130, 133, 137, 140, 143, 147, 150, 154, 158, 162, 165, 169, 174, 178, 182, 187, 191, 196 2 200, 205, 210, 215, 221, 226, 232, 237, 243, 249, 255, 261, 267, 274, 280, 287, 294 3 301, 309, 316, 324, 332, 340, 348, 357, 365, 374, 383, 392 4 402, 412, 422, 432, 442, 453, 464, 475, 487, 499 5 511, 523, 536, 549, 562, 576, 590 6 604, 619, 634, 649, 665, 681, 698 7 715, 732, 750, 768, 787 8 806, 825, 845, 866, 887 9 909, 931, 953, 976 ✎ Travail n° 1 Détermination d’une résistance avec la calculatrice Windows Calculer les valeurs théoriques des résistances suivantes : 11ème résistance dans la décade [100, 1000[ de la série E12 2ème résistance dans la décade [1000, 10000[ de la série E24 19ème résistance dans la décade [100, 1000[ de la série E48 Solution 102 x 12√1010 = 681,29 ≈ 680Ω 103 x 24√101 = 1100,69 ≈ 1.1kΩ 102 x 48√1018 = 237,14 ≈ 237Ω Vérifier par calcul que la 3ème résistance d’une décade quelconque de la série E6 correspond à la 5ème résistance de la série E12 et à la 9ème de la série E24. Solution Ce qu’il faut prouver : 10n x 6√102 = 10n x 12√104 = 10n x 24√108 10n x 6√102 = 10n x 12√104 = 10n x 24√108 ⇔ 10n x 102/6 = 10n x 104/12 = 10n x 108/24 ⇔ 10n x 102/2 x 1/3 = 10n x 104/4 x 1/3 = 10n x 108/8 x 1/3 ⇔ 10n x 101/3 = 10n x 101/3 = 10n x 101/3 ∎ Déterminer les intervalles de valeurs réelles que peuvent prendre les résistances suivantes selon la précision de leur série. Rappel : Série Précision E12 ±10% E24 ±5% E48 ±2% Ex. : Pour une résistance de 100Ω : 90Ω (100x0.9) ≤ RE12 = 100Ω ≤ 110Ω (100x1,1) R=180Ω dans la série E12 R=220Ω dans la série E12 R=270Ω dans la série E12 R=560Ω dans la série E24 R=620Ω dans la série E24 Solution 162Ω ≤ RE12 = 180Ω ≤ 198Ω 198Ω ≤ RE12 = 220Ω ≤ 242Ω 243Ω ≤ RE12 = 270Ω ≤ 297Ω 532Ω ≤ RE24 = 560Ω ≤ 588Ω 589Ω ≤ RE24 = 620Ω ≤ 651Ω Les exemples choisis montrent qu’il n’y a pas de recouvrement des plages de valeurs possibles pour des résistances successives d’une série mais ce n’est pas toujours le cas. 💻 Travail n° 2 Détermination d’une valeur de résistance avec Python Compléter le script Python suivant qui doit calculer la valeur nominale théorique d’une résistance et l’intervalle des valeurs réelles qu’elle peut prendre — avec une précision de 2 chiffres après la virgule — à partir d’informations saisies par l’utilisateur : La série Ex. : ‘12’ pour la série 12, ‘14’ pour la série E14… Le rang de la résistance dans la décade Ex. : ‘3’ pour la 4ème résistance dans la décade La décade Ex. : ‘1’ pour [10, 100[, ‘2’ pour [100, 1000[, … l’opérateur d’exposant est ** en Python → 2**3 donne 8 l’arrondi s’effectue avec la fonction standard round() (cf Fonctions natives ) Code Python à compléter import math # Saisir les valeurs nécessaires au calcul serie = float(input("Saisir la série désirée (3,6,12,24,48,96) : ")) # float car 'serie' utilisée dans une division non entière rang = int(input("Saisir le rang de la résistance (0...serie-1) : ")) decade = int(input("Saisir le n° de décade désiré (0...n) : ")) # Contrôler les valeurs saisies if serie not in {3, 6, 12, 24, 48, 96} : print("N° de série non valide\nBye !") quit() if rang not in range(0,int(serie)) : print("rang non valide poour la série considérée\nBye !") quit() # Déterminer la précision à partie du n° de la série if(serie == 3) : precision = 0.5 elif(serie == 6) : precision = 0.2 elif(serie == 12) : ... <A COMPLETER> ... else : precision = math.nan # Calculer la valeur nominale théorique de la résistance r = <A COMPLETER> # Calculer les valeurs min et max de la résistance en fonction de la # précision de la série rmin = <A COMPLETER> rmax = <A COMPLETER> # Afficher les valeurs nominales, min et max théoriques de la résistance print("=> Valeur théorique résistance de rang " + str(rang), end='') print(" dans décade [" + str(10 ** decade) + "," + str(10 ** (decade+1)), end='') print("[ de série E" + str(int(serie)) + " : ", end='') print(str(r) + "Ω (" + str(rmin) + "Ω → " + str(rmax) + "Ω)") Tester le programme avec les résistances de rang 2, 6 et 10 des 4 premières décades de la série E12 en vérifiant que les résultats sont conformes aux valeurs de la série E12 reportées dans le tableau ci-dessous : décade série E12 1 … 1.5 1,35→1,65 … 3.3 2,97→3,63 … 6.8 6,12→7,48 2 … 15 13,5→16,5 … 33 29,7→36,3 … 68 61,2→74,8 3 … 150 135→165 … 330 297→363 … 680 612→748 4 … 1500 1350→1650 … 3300 2970→3630 … 6800 6120→7480 … Exemple de résultat attendu Saisir la série désirée (3,6,12,24,48,96) : 12 Saisir le rang de la résistance (0…serie-1) : 4 Saisir le n° de décade désiré (0…n) : 3 ⇒ Valeur théorique résistance de rang 4 dans décade [1000,10000[ de série E12 : 2154.43Ω (1938.99Ω → 2369.87Ω) Faire évoluer le script pour qu’il affiche toutes les valeurs théoriques d’une décade dans une série. La série et la décade seront toutes les 2 saisies par l’utilisateur. Pour répéter un traitement dans un programme informatique, on utilise des boucles. En Python, les instructions for et while permettent de faire des boucles. Voir par exemple for Statements pour des exemples d’utilisation de for combinés ou non avec la fonction range(). Exemple de code Python utilisant une boucle : # Affiche les puissances de 2 de 2^0 à 2^8 for i in range(0, 9) : pow = 2**i print("2^" + str(i) + " = " + str(pow)) 💻 Travail n° 3 Choix d’une résistance parmi les valeurs normalisées On veut faire un script Python qui détermine la valeur normalisée la plus proche d’une valeur de résistance quelconque saisie par l’utilisateur. Le script doit proposer la valeur normalisée la plus proche dans l’ensemble des séries E12, E24. Vous allez élaborer ce script étape par étape. Étudier et exécuter le script Python suivant qui fait usage d’une liste et d’une fonction pour afficher le minimum d’un ensemble de mesures de températures import math def getMinimum(listeNombres) : (3) min = math.inf # valeur spéciale Python qui vaut +∞ for elt in listeNombres : if (elt < min) : min = elt return min mesuresTemperature = [15.3, 22.7, 12.8, 25.1, 8.3, 18.9] (1) temperatureMin = getMinimum(mesuresTemperature) (2) print("Température min relevée : " + str(temperatureMin) + "°C") 1 On définit une liste Python contenant un ensemble de valeurs qui correspondent à des relevés de température fictifs. 2 On appelle la fonction getMinimum() en lui passant en argument la liste mesuresTemeratures. Cette fonction est une fonction définie par l’utilisateur (→ lignes 3 à 8 du listing). La valeur retournée par cette fonction est stockée dans la variable temperatureMin 3 Définition de la fonction getMinimum(). Le corps de cette fonction (→ lignes 4 à 7) détermine la valeur minimale (→ min) de l’ensemble des valeurs qui lui est passé en argument (→ listeNombre) et la retourne (→ return, ligne 8) au code appelant (→ ligne 11) Python propose des structures de données — comme les listes (→ list) ou également les ensembles (→ set) — qui permettent de stocker des ensembles de valeurs. Voir Lists et Sets pour plus de détails sur l’utilisation de ces structures de données Pour structurer un code informatique, on déporte souvent les traitements répétitifs dans des fonctions : ceci facilite la lecture du code ainsi que sa maintenance. Voir Defining Functions pour plus de détails sur l’utilisation des fonctions en Python. S’inspirer du code précédent pour compléter le script Python suivant en codant le corps de la fonction findNearest() pour que celle-ci retourne la valeur normalisée la plus proche (→ variable nearest), dans la décade [1, 10[, de la résistance passée en 1er argument (→ rUser) dans la série passée en 2ème argument (→ eSerie). L’algorithme de la fonction est le suivant : nearest ← NaN Δmin ← +∞ POUR valESerie DANS eSerie FAIRE | Δ ← écart entre rUser et valESerie | SI Δ < Δmin ALORS | | nearest ← valESerie | | Δmin ← Δ | FINSI FINPOUR Retourner nearest import math def findNearest(rUser, eSerie) : nearest = math.nan # Valeur spéciale Python qui signifie Not A Number # -> peut être utilisée pour signaler une valeur indéterminée <A COMPLETER> return nearest r = float(input("Saisir une valeur quelconque de résistance comprise entre 1 et 10Ω : ")) if( (r < 1) or (r >= 10)) : print("Valeur résistance hors limites.\nBye !") exit() E12=[1.0, 1.2, 1.5, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6, 6.8, 8.2] E24=[1.0, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.7, 3.0, 3.3, 3.6, 3.9, 4.3, 4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2, 9.1] rE12 = findNearest(r, E12) print("Valeur la plus proche dans la serie E12 : " + str(rE12)) rE24 = findNearest(r, E24) print("Valeur la plus proche dans la serie E24 : " + str(rE24)) Corriger le script si celui-ci affiche 8.2Ω pour la série E12 et 9.1Ω pour la série E24 lorsqu’on lui entre une valeur de résistance de 9.9Ω. En effet, dans ce cas, la valeur normalisée la plus proche n’est pas la dernière de la décade considérée mais plutôt la 1ère de la décade suivante (→ 10Ω ici) Faire évoluer le script pour qu’il retourne la valeur normalisée la plus proche de la résistance saisie par l’utilisateur, quelle que soit sa décade. Ex. : Si l’utilisateur saisit la valeur 2985Ω, le script doit afficher respectivement les valeurs 2700Ω et 3000Ω pour les séries E12 et E24 Une proposition pour mener à bien cette évolution consiste à : déterminer la décade de la valeur de résistance saisie par l’utilisateur. Ceci revient à trouver le nombre de digits de la partie entière : 1 digit ⇒ décade [0, 10[, 2 digits ⇒ décade [0, 100[ … Voilà ce que répond l’intelligence artificielle de Bing (le moteur de recherche de Microsoft) lorsqu’on lui pose la question : “comment trouver le nombre de chiffres d’un nombre” Cliquer pour agrandir ramener cette valeur dans la décade [0, 10[ utiliser le code des questions précédentes pour trouver la valeur normalisée la plus proche dans cette décade multiplier la valeur normalisée trouvée par la puissance de 10 qui permet de revenir dans la décade d’origine de la valeur saisie par l’utilisateur 1. Article ayant inspiré cette activité Les valeurs normalisées des séries de résistances 🞄 🞄 🞄 CIEL1IR/ER - Suites Suite de Syracuse