Tension, courant, puissance et résistance électriques

Soyez le premier à donner votre avis sur cette source.

Vue 2 088 fois - Téléchargée 402 fois

Description

Bonjour,

Voici un petit logiciel qui permet de calculer les valeurs électriques pour un circuit formé d'une seule résistance.

Il est basé sur la règle assez peu répandue qui dit que lorsque 2 des 4 valeurs P, U, I, R sont connues, on peut en calculer les 2 autres.

A l’aide des formules représentées sur l'image Formules.jpg, les deux valeurs modifiées précédemment (grises) sont utilisées pour calculer les deux autres (jaunes):
<!DOCTYPE html>
<html>
  <head>
    <style>
      p {font-size:20px}
      input {font-size:20px; step:'any'; text-align:center}
    </style>
    <title>Tension, courant, puissance et résistance électriques</title>
    <script type='text/javascript'>
      var u=0,i=1,p=2,r=3,sym=['U','I','P','R'],fix=[2,1,0,0],E=[4];

      function Color(n) {// Quelles sont les valeurs modifiées ?
        if (fix[n]==2) return;
        for (var k=0; k<4; ++k) if (fix[k]==1) {fix[k]=0; E[k].style.background='#FFFF77';}
        for (var k=0; k<4; ++k) if (fix[k]==2) {fix[k]=1; E[k].style.background='#DDDDDD';}
        fix[n]=2; E[n].style.background='#BBBBBB';
      }
      function Set(n,v) {E[n].value=v.toString();}
      function Get(n) {return parseFloat(E[n].value);}
      function Calcul() {
        if (fix[u]>0) {var U=E[u].value;
          if (fix[i]>0) {var I=E[i].value; Set(p,U*I); Set(r,U/I);}
          else if (fix[p]>0) {var P=E[p].value; Set(i,P/U); Set(r,U*U/P);}
          else {var R=E[r].value; Set(i,U/R); Set(p,U*U/R);}
        } else if (fix[i]>0) {var I=E[i].value;
          if (fix[p]>0) {var P=E[p].value; Set(u,P/I); Set(r,P/I/I);}
          else {var R=E[r].value; Set(u,R*I); Set(p,R*I*I)}
        } else {var R=E[r].value,P=E[p].value; Set(u,Math.sqrt(P*R)); Set(i,Math.sqrt(P/R));}
      }
      function Modif(n) {
        var s=E[n].value;
        if (isNaN(1.0*s)||(s<=0)) {E[n].value='Erreur'; return;}
        Color(n); Calcul();
      }
      function Ini() {
        for (var k=0; k<4; ++k) E[k]=document.getElementById('in'+sym[k]);
        E[u].style.background='#BBBBBB'; E[i].style.background='#DDDDDD';
        E[p].style.background='#FFFF77'; E[r].style.background='#FFFF77';
      }
    </script>
  </head>
  <body style='font-size:12px' onload='Ini()'>
    <p><img src='UIPR.jpg'></p>
    <span style='background:#FFBBBB'>
      Lorsque deux des quatre valeurs P, U, I, R sont connues, on peut calculer les deux autres:
    </span>
    <p><span style='padding-left:52px'> Tension: U = </span>
    <input type='text' id='inU' value='6' onchange='Modif(0)'>
    <span>V</span></p>
    <p><span style='padding-left:58px'> Courant: I = </span>
    <input type='text' id='inI' value='2' onchange='Modif(1)'>
    <span>A</span></p>
    <p><span style='padding-left:40px'> Puissance: P = </span>
    <input type='text' id='inP' value='12' onchange='Modif(2)'>
    <span>W</span></p>
    <p><span style='padding-left:30px'> Résistance: R = </span>
    <input type='text' id='inR' value='3' onchange='Modif(3)'>
    <span>Ω</span></p>
    <p><span style='background:#CCCCCC; padding:0 8px 0 8px'>Gris: valeurs données</span>
    <span style='background:#FFFFAA; padding:0 8px 0 8px'>Jaune: valeurs calculées</span></p>
    <span style='padding:0 8px 0 220px'>Feb 2016, William Voirol, Switzerland</span>
  </body>
</html>

Dans la fonction Calcul() {...}, je me suis efforcé de choisir les noms des variables de telle manière à y déceler les formules utilisées.

Merci d'avance pour vos remarques ou suggestions, ainsi que de m'indiquer d'éventuels erreurs.


Testé avec les dernières versions des navigateurs:
Chrome, Firefox, IE, Opera, Safari


Bon calcul ...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
261
Date d'inscription
mardi 12 décembre 2006
Statut
Membre
Dernière intervention
10 juin 2019

Bonjour,

Pour éviter les problèmes de mise en page dus à l'interprétation imprécise de l'espace insécable nbsp à l'écran, j'ai refait une version qui n'utilise pas ce caractère, mais les styles comme padding et margin.
Messages postés
261
Date d'inscription
mardi 12 décembre 2006
Statut
Membre
Dernière intervention
10 juin 2019
>
Messages postés
261
Date d'inscription
mardi 12 décembre 2006
Statut
Membre
Dernière intervention
10 juin 2019

Bonjour,
Question au modérateur:
J'ai remplacé le zip par une nouvelle version.
Sous CODES SOURCES "voir", Electric.html correspond maintenant à cette nouvelle version: utilisation des 'padding' dans 'body'.
Par contre, lorsque je télécharge le projet, le zip en contient toujours l'ancienne version.
Que dois-je faire ?
Merci d'avance.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.