Adaptateur Tension : Donne les Résistances d'un Pont

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

MSG
Raspinaute
Messages : 119
Enregistré le : ven. 26 déc. 2014 18:31

Re: Adaptateur Tension : Donne les Résistances d'un Pont

Message par MSG » jeu. 20 févr. 2020 19:27

Bien sûr qui si , le pont va être déséquilibré lorsqu'on aura branché une charge en sortie Vout .

Je reprends pour expliquer à Artemus24 :
l'équilibre étant ... 2 / 3 = 4 / 6

2 représente Vin
3 représente Vout
4 représente Rtotal
6 représente la valeur R2 calculée sans rien de branché en Vout (pont à vide) .

Électriquement parlant c'est absurde , mais mathématiquement c'est logique .
1°) Vout ne pourra jamais être supérieur à Vin
2°) la puissance : P = U² / R
2 x 2 / 4 = 1 W au total consommé .
3 x 3 / 6 = 1,5W sur la résistance de sortie .
On produit plus d'énergie que l'on consomme , c'est bon on arrête les centrales nucléaires et on tourne sur piles ou batteries et pont de résistances .
Ou alors pour être logique électriquement ....
4 représente Vin
2 représente Vout
6 représente Rtotal
3 représente R2
Ce qui donne un pont diviseur par 2 .
Vin / Vout = 4 / 2 = 2
Rtotal / R2 = 6 / 3 = 2
1°) La tension : Vin > Vout .
2°) la puissance : P = U² / R
4 x 4 / 6 = 2,666W
2 x 2 / 3 = 1,333W consommé par R2
2,666 - 1,333 = 1,333 consommé par R1
Rien d'anormal sauf qu'il va falloir prendre une marge de 25 à 50% de plus sans quoi on les crame , comptons large , prenons des 2W .
Jusque là , on a réalisé un simple radiateur électrique chauffant d'un peu moins de 3W avec des résistances d'une puissance maxi de 4W .

Tout est (pour moi) en équilibre .

ET si on branche quelque chose sur Vout , ça fait quoi ?
On va créer un couplage parallèle qui va diviser la valeur de R2 .
La nouvelle valeur de R2 sera plus petite que la plus petite des deux valeurs !
Ça veut dire quoi ?

- Si je branche un appareil sur Vout et la masse , dont la résistance interne est proche d'un court-circuit , donc consomme beaucoup de courant :
la nouvelle valeur de R2 sera proche de zéro ohms et donc proche de zéro volts aux bornes de R2 , toute la tension basculera aux bornes de R1.
on va donner R2 à 0,1 ohm par exemple :
Vout = Vin x R2 / Rtoatl = 4 x 0.1 / (6 + 0.1) = 0,065V
et encore , je suis gentil , j'aurais pu mettre R2 = 0,0001 ohms , consomme encore plus de courant .

Sur le pont d'Avignon on y danse , on y danse , sur le pont d'Avignon , on ne traverse plus (plouf le pont) !
https://a.travel-assets.com/findyours-p ... rtment.jpg

- Si je branche un appareil sur Vout et la masse , dont la résistance interne est égale à R2 , et donc qui consommera autant que R2 .
la nouvelle valeur de R2 vaudra :
Req = R2 * R2 / (R2 + R2)
Req = R2 x R2 / 2 x R2
Req = R2 / 2
On divise donc R2 de moitié . R2 étant plus petite maintenant que R1 , elle va retenir moins de tension , c'est donc R1 qui va en retenir le plus .
Vout = U2 = 4 x (3/2) / 6 = 1V
U1 = 4 - 1 = 3V
Le pont ne divise plus par 2 mais par 4 (Vin / Vout)

- Si je branche un appareil sur Vout et la masse , dont la résistance interne et très faible , on va dire 100 fois R2 , et donc consommera beaucoup moins que R2.
La nouvelle valeur de R2 vaudra :
Req = R2 x R2 x 1000 / (R2 + R2 x 1000)
Req = 3 x 3 x 1000 / (3 + 3 * 1000) = 2,997 ohms
donc une résistance à peine plus faible que R2 d'origine .

Vout = U2 = 4 x 2,997 / 6 = 1,998V
U1 = 4 - 1,998V = 2,002V
Une très faible partie de la tension s'est déportée sur R1 et l'équilibre du pont voulu au départ reste conservé .

Sur le Pont du Gard on y danse tous les soir . :D

Ouais , sauf que on veut du 12V en Vin .

Vin = 12V
Vout = ?
RTotal = 6 ohms
R2 = 3 Ohms

Et là c'est le drame !
Vout = 12 x 2,997 / 6 = 5,994V adieu les 2 vols de départ et 1,998V à l'arrivé .
P = U² / R = Vin x Vin / Rtotal = 12 x 12 / 6 = 24W
les deux résistances faisaient 4W maxi , une belle gerbe de fumée et d'étincelles .

Tu remarquera Bud , je ne passe pas Paris ! :mrgreen:

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Adaptateur Tension : Donne les Résistances d'un Pont

Message par Bud Spencer » jeu. 20 févr. 2020 21:22

MSG a écrit :
jeu. 20 févr. 2020 19:27
Bien sûr qui si , le pont va être déséquilibré lorsqu'on aura branché une charge en sortie Vout .
Bha non. Si tu avais pris de vrais cours d’électronique plutôt que de te contenter de quelques articles pour débutant sur le net, tu saurais que ce qui définit un diviseur de tension c’est le rapport de résultats des résistances en amont et en aval du point de mesure. Tu peux mettre autant de résistances en série ou en parallèle ou meme les 2 si ça t’amuse de part et d’autre du point de mesure et meme changer de point de mesure dans tout ce fouilli qu’il ni aura jamais de déséquilibre.

En plus tu l’as dit toi-même très justement :
MSG a écrit :
mer. 19 févr. 2020 18:51
Le rapport des tensions est égale au rapport des résistances !
Vin / Vout = Rtotal / R2
Et tu l’as confirmé très justement
MSG a écrit :
jeu. 20 févr. 2020 17:13
Électriquement parlant c'est absurde
Mais par simple esprit de contradiction et dans l'espoir d'essayer d’avoir raison tu essais de trouver autre chose (un peut comme avec tes codes quand on te propose des solutions pour faire plus simple et plus efficace)

Pourquoi vouloir embrouiller tout le monde avec tout un tas de calcul bateau et totalement inutiles ? P = U²/R en est l’exemple type. I = U/R est quand meme un peu plus simple explicite et il ni a pas besoin de se cacher derrière une autre valeur plus compliqué qui veut dire la meme chose. Juste pour info, meme si je n’ai absolument pas la prétention d’etre un pro dans ce domaine, j’ai quand plus de 30 ans d’électronique derrière moi, alors si tu veux me prouver des choses, il va falloir faire un très gros effort ;)

Continus tout seul si tu veux, moi je trouve que ça devient complètement ridicule (depuis un moment déjà, mais je suis patient )
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

MSG
Raspinaute
Messages : 119
Enregistré le : ven. 26 déc. 2014 18:31

Re: Adaptateur Tension : Donne les Résistances d'un Pont

Message par MSG » ven. 21 févr. 2020 09:48

Mais non , je ne cherche pas à te convertir ni à t'embrouiller (tiens, j'ai déjà entendu ça quelque part) , surtout après 30 années de pratique et de plus je n'ai pas les qualités d'enseignant .

Je ne t'apprends rien , ces formules existent , c'est juste que tu ne veux pas toutes les utiliser , ni les mémoriser (j'en suis incapable) .
Image

Tu as ta façon de faire , elle marche et tu t'y tiens , et c'est tout à fait normal .

J'ai appris comme toi , méthode classique , bête et discipliné (prof très rigoureux = 0 pointé si ça ne lui convenait pas) !
Et puis , j'ai suivis une formation de remise à niveau avec un excellent prof de math-physique , très agréable et très souple dans sa vision de voir les choses , ça m'a permis de décupler mes capacités de mémorisation simplement en associant et en tournant les formules (chose que je n'arrivais pas à faire avant , tout appris pas cœur et la plupart oublié) ,

Comme il me disait : "il n'y a pas de mauvais élèves ,il n'y a que des mauvais profs !"

J'ai pondu une méthode mémo-technique pour simplifier l'apprentissage des formules en cercle pour les convertir en Pyramide (cité dans les messages précédents) .
Elle vaut ce quelle vaut , je m'en sert et ça me va très bien !
Je ne suis ni électronicien Pro , ni programmeur Pro , j'ai les bases et je me dépatouille .

Pour ce qui est des programmes , c'est deux approches différentes
- la méthode classique qu'on enseigne en calculant systématiquement le courant .
- la mienne , par une recherche par valeur réelle des composants et utilisation d'une formule déduite (non enseignée).
Le but n'est pas de savoir qui à la meilleur méthode , c'est juste qu'on est dans la rubrique programmation Python et que j'essaie de programmer tout en montrant d'autres façons de faire , avec explication si besoin .

Comme on dit , "Tous les chemins mènent à Rome" et l'essentiel "sans se perdre en chemin !"
Méthode du fil d'Ariane ou du petit Poucet ... tout est bon !

MSG
Raspinaute
Messages : 119
Enregistré le : ven. 26 déc. 2014 18:31

Re: Adaptateur Tension : Donne les Résistances d'un Pont

Message par MSG » ven. 21 févr. 2020 18:19

Ha oui , je vois où je renseigne sans le vouloir le courant " i " .
Le multiplicateur M qui n'est autre que ' 1 / i '

1 / 1000 Ω = 0,001 A

T'avais raison Bud . ;)


J'ai trouvé la commande Python pour saisir les valeurs au clavier au lieu de les mettre dans le programme .

Code : Tout sélectionner

Vin = float( input( "Vin (V) = " ))
Vout = float( input( "Vout (V) = " ))
VinVout( Vin, Vout )
Ça servira toujours à quelqu'un . ;)

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Adaptateur Tension : Donne les Résistances d'un Pont

Message par Bud Spencer » ven. 21 févr. 2020 21:31

MSG a écrit :
ven. 21 févr. 2020 18:19
Ha oui , je vois où je renseigne sans le vouloir le courant " i " .
Le multiplicateur M qui n'est autre que ' 1 / i '

1 / 1000 Ω = 0,001 A
Perdu !

Ce que tu appelles M dans ton programme c'est juste un multiplicateur que tu choisi pour ta plage de résistance. Analysons donc juste ce M :
Tu dis 3 qui correspond a "Orange' et que tu exposes sur 10 pour avoir 1000. Jusque la, pas d'objection, ca me va.

Sauf que (Hypothese E24,Vin 5, Vout 3.3):
(C'est un copié collé de ton code ou j'ai juste épuré pour l'exemple et ou j'ai ajouté quelques var de comptage)
rz1.png
rz1.png (125.26 Kio) Vu 4921 fois
Ca limite les valeurs des résistances que tu tests (on ne peux malheureusement pas parler de recherche par calcul) de 1000 à 9100 homs, ce qui rend ton programme inutilisable si la valeur Vout est trop éloigné de Vin.
En plus tu fais la connerie de systématiquement calculer Rx avec Mc que tu redivises par 100. Ce qui fondamentalement en plus de calculer 308 fois U2, tu fais 328 + 24 - 18 (soit 334) divisions qui ne serve absolument à rien puisque qu'il suffisait de passer cette division après l'évaluation (if). Tout ca pour trouver seulement 18 résultats sur 32 possible (et uniquement avec ce multiplicateur …).
Pour couronner le tout, les valeurs de résistances ne corresponde pas a la catégorie du multiplicateur Orange. En effet, il aura sauté au yeux de n'importe quel amateur pratiquant l'électronique a loisir que la couleur du diviseur de 1k à 9.9K est le rouge (sur une 4 anneaux classique) et non pas le Orange.

Bon, j'imagine qu'il y a une explication à tout ca, mais la, comme ca, je vois pas laquelle … ;) :lol:

PS : SI tu veux qu'on passe en revue ton code pour faire une petite synthèse de tout ce qui ne vas pas, c'est jouable (et si je le fais, c'est uniquement a titre didactique et collectif , et non pas pour te nuire), mais si c'est pour me sortir une explication tordue a chaque fois, ce n'est meme pas la peine. A toi de voir si tu veux apprendre et en faire profiter les autres ou si tu veux rester coincé dans ta bulle …
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

MSG
Raspinaute
Messages : 119
Enregistré le : ven. 26 déc. 2014 18:31

Re: Adaptateur Tension : Donne les Résistances d'un Pont

Message par MSG » lun. 24 févr. 2020 13:37

Bonjour ,

Je fais plusieurs choses à la fois , je commence tout et ne fini rien , donc forcément je passe à travers d'erreurs évidentes (que dire d'autre) :roll: .

Oui , c'est plus simple par recherche croissante des résistances .

J"avais voulu faire une recherche par liste inversée afin de n'afficher que la première combinaison de valeur inférieure ou égale à Vout (d'où le BREAK dans la seconde boucle) .
Manque de pot , je tombais avec des valeurs parfois un peut trop éloignées du Vout souhaité , c'est pour cela que je suis partie sur une recherche par plage (marge) .
Vout_mini et Vout_Maxi dans ma version finale .

Je pense qu'il n'y a plus de bug (il ne faut jamais dire jamais) . ;)

Je pense qu'il est possible d'améliorer ce programme , le rendre plus efficace , mais c'est pas le but , on est dans la rubrique Python et je me fais plaisir à programmer . ;)

Pour ceux que ça intéresse , le site ou je trouve mes infos pour me former à la programmation Python3 :
https://www.tutorialspoint.com/python3/index.htm

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Adaptateur Tension : Donne les Résistances d'un Pont

Message par Bud Spencer » mar. 25 févr. 2020 08:55

MSG a écrit :
lun. 24 févr. 2020 13:37
... je me fais plaisir à programmer . ;)
Tout à fait, je l’ai bien compris et je trouve ça très bien. Moi tu sais, je ne fais donner des conseils. Ca en agace certains (et je m'en fout totalement) parce que forcement j'apporte un regard critique, mais n'en déplaise, c'est toujours constructif et toujours avec pour seul but d'essayer de relever un peu le niveau.

Un bon petit exercice pour aller plus loin serait de sortir les couleurs des bagues de résistances trouvées (et pourquoi pas en faire une application graphique).
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Adaptateur Tension : Donne les Résistances d'un Pont

Message par Bud Spencer » mer. 26 févr. 2020 19:53

Bud Spencer a écrit :
mar. 25 févr. 2020 08:55
Un bon petit exercice pour aller plus loin serait de sortir les couleurs des bagues de résistances trouvées ...
Je te confirme que c'est un exercice très intéressant et pas si simple que ca . Comme j'ai du prendre le train aujourd'hui et que j'avais mon portable, je m'y suis amusé pour faire passer le temps. Je suis resté sur la base de calcul du code que j'avais mis précédemment (que j'ai converti en poo) qui me permet de calculer un diviseur de n'importe quel tension en allant d'une résistance de 0.1 ohm à l'infini (du moins d'un double sur un sys 64 bits ...) en Mhoms et j'y ais ajouté la conversion en bande de couleur suivant la norme choisi. J'adore ce genre de petit 'Quiz' parce que ca parait très simple au départ mais finalement, c'est truffé de pièges. J'ai réussi la fonction qui me retourne le tableau de couleur (string[]) avec seulement 17 lignes de code (C#), 2 ternaires, aucune fonction lambda ni aucun 'if' ou 'select' ou 'switch' . A l'occase, je convertirais ca en python et je mettrais le code ici (a moins que tu ne le fasse avant moi ;) )
rudiv_c.png
rudiv_c.png (19.77 Kio) Vu 4860 fois
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

MSG
Raspinaute
Messages : 119
Enregistré le : ven. 26 déc. 2014 18:31

Re: Adaptateur Tension : Donne les Résistances d'un Pont

Message par MSG » jeu. 27 févr. 2020 13:14

Bonjour ,

Voilà ce que j'avais en tête au départ avant de changer de méthode de recherche .

Au passage , je me rend compte que j'ai plus de solutions avec cette version qu'avec l'autre (reste des bugs / blocages).
Le souci est au niveau du passage à la tranche multiple au dessus (1000) .

Code : Tout sélectionner

#!/usr/bin/python3

'''
=> BUT du programme :
Trouver dans la liste de résistances E (ci dessous) , les paires 
de résitances qui se rapprochent le plus du rapport de division souhaité (Vin Vout) .


'''

# Résistances Serie E
E12 = ( 100,120,150,180,220,270,330,390,470,560,680,820)

E24 = ( 100,110,120,130,150,160,180,200,220,240,270,300,\
        330,360,390,430,470,510,560,620,680,750,820,910)

E48 = ( 100,105,110,115,121,127,133,140,147,154,162,169,\
        178,187,196,205,215,226,237,249,261,274,287,301,\
        316,332,348,365,383,402,422,442,464,487,511,536,\
        562,590,619,649,681,715,750,787,825,866,909,953)

E96 = ( 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,200,205,210,215,221,226,232,\
        237,243,249,255,261,267,274,280,287,294,301,309,\
        316,324,332,340,348,357,365,374,383,392,402,412,\
        422,432,442,453,464,475,487,499,511,523,536,549,\
        562,576,590,604,619,634,649,665,681,698,715,732,\
        750,768,787,806,825,845,866,887,909,931,953,976)

Unite = lambda n : \
    n >1e9      and str( n )                                    or\
    n//1e6      and str( n/1e6)  [:5].rjust( 5, " " )   + " M"  or\
    n//1e3      and str( n/1e3)  [:5].rjust( 5, " " )   + " K"  or\
    n//1e0      and str( n/1e0)  [:5].ljust( 5, "0" )   + "  "   or\
    n//1e-3     and str( n*1e3)  [:5].ljust( 5, "0" )   + " m"  or\
    n//1e-6     and str( n*1e6)  [:5].ljust( 5, "0" )   + " µ"  or\
    n//1e-9     and str( n*1e9)  [:5].ljust( 5, "0" )   + " n"  or\
    n//1e-12    and str( n*1e12) [:5].ljust( 5, "0" )   + " p"  or\
    n <1e-12    and str( n )



def Pont (Vin, Vout, E) :   # Fonction de recherche des associations de résistances
    U1 = Vin - Vout
    U2 = Vout
    # Rapport des tensions U
    if U1 > U2 :            # sélectionne le rapport multiplicateur
        RU = U1 / U2
        Rapport ='U1/U2'
    else :
        RU = U2 / U1
        Rapport ='U2/U1'

    #affichage des paramètres 
    print ('')
    print ("Vin=%.1f" % Vin )
    print ("Vout=%.1f" % Vout )
    print ("U1=%.1f" % U1 )
    print ("U2=%.1f" % U2 )
    print ("Serie E%i" % len(E))
    print ("Rapport multiplicateur %s = %f\n" % (Rapport, RU) )
    
    print (\
        "                                                     \n"+\
        "          ┌────────┐         ┌────────┐       │      \n"+\
        "Vin ──────┤ R1 (Ω) ├────┬────┤ R2 (Ω) ├───>───┤ Masse\n"+\
        "          └────────┘    │    └────────┘ I (A) │      \n"+\
        "            U1 (V)      │      U2 (V)         │      \n"+\
        "                        │<────── Vout ────────│      \n")
    
    
    E = E + (1000,)          # ajoute une valeur finale au tableau E
    
    
    # Boucles de recherche
    Ra = 0
    i_Ra = 0                # index Ra
    while Ra < 1000 :       # pour chaque valeur du tableau E
        Ra = E[ i_Ra ]      # valeur à l'index dans le tableau E
        Ri = RU * Ra        # calcule la valeur R idéale à associer 
        
        # réduction Ri à 3 digits
        e = 0                   # exposant
        while Ri >= 1000 :      # tant que Ri trop grand 
            Ri /= 10            # divise par 10 
            e += 1              # incrémente l'exposant
        
        Rb = 0
        i_Rb = 0                # index Rb
        while Rb < 1000 :       # pour chaque valeur du tableau E
            Rb = E[ i_Rb ]      # valeur à l'index dans le tableau E
            if Rb >= Ri :       # teste si valeur Ri dépassée (trouvé)
                if Rapport is 'U2/U1' :     # U2 > U1 (rapport multiplicateur)
                    R1 = Ra                 # petite tension , petite résistance 
                    R2 = Rb * 10** e        # grosse tension , grosse résistance
                    # Si R2 diminue , V2 diminue et V1 augmente , R2a = (E[i_Rb-1)
                    # Vout < Vout souhaité
                    R2a = E[i_Rb-1] * 10** e    # Resistance acceptable
                    Ri = Ri * 10** e            # Redonne sa valeur calculée
                    
                    if i_Ra == 0 :
                        aff  = (34 *' ')
                        aff += ('#  Vout => f (R2a)                ')
                        print (aff)

                    aff  = ("R1=%4i , "  % R1  )
                    aff += ("R2a=%4i , " % R2a )  # R2 acceptable 
                    aff += ("R2i=%7.2f"  % Ri  )  # R2 idéale
                    
                    # Vout => f (R2a)
                    V1 = Vin * R1 / (R1 + R2a)
                    V2 = Vin * R2a / (R1 + R2a)                    
                    I = V2 / R2a
                    aff += ("  #  ")
                    aff += ("V1=%f , "  % V1)
                    aff += ("V2=%f , "  % V2)
                    aff += ("I=%sA"     % Unite(I))

                    
                elif Rapport is 'U1/U2' :   # U1 > U2 (rapport multiplicateur) 
                    R1 = Rb * 10** e        # grosse tension , grosse résistance
                    R2 = Ra                 # petite tension , petite résistance
                    # Si R1 augmente , V1 augmente et V2 diminue  , R1a = (E[i_Rb)
                    # Vout < Vout souhaité
                    R1a = E[i_Rb] * 10** e      # résistance acceptable
                    Ri = Ri * 10** e            # Redonne sa valeur calculée
                    
                    if i_Ra == 0 :
                        aff  = (37 *' ')
                        aff += ('#  Vout => f (R1a)                ')
                        print (aff)

                    aff  = ("R1a=%6i , "   % R1a )   # R1 acceptable
                    aff += ("R1i=%8.2f , " % Ri  )   # R1 idéale
                    aff += ("R2=%4i"       % R2  )
                    
                    # Vout => f (R1b)
                    V1 = Vin * R1a / (R1a + R2)
                    V2 = Vin * R2 / (R1a + R2)
                    I = V2 / R2
                    aff += ("  #  ")
                    aff += ("V1=%f , " % V1)
                    aff += ("V2=%f , " % V2)
                    aff += ("I=%sA" % Unite(I))
                    
               
                # affichage ligne aff
                print (aff)
                Rb = 1000    # équivalent à un 'break' de boucle
            i_Rb += 1   # passe à l'index suivant
        i_Ra += 1   # passe à l'index suivant
    return              # fin de foncion 


            
 
#
#   MAIN
#

# Appelle la fonction Pont 
Pont (5, 3.3, E12)
Pont (50,3.3, E12)
Image

Le programme chercher les valeurs à associer par multiples de la table E choisie .
J'ai pris une petite et une grande tension Vin (5V et 50V) avec une tension de sortie identique (3,3V) .

Tu remarqueras dans la première rechercher (Vin = 5V) ...
le courant de la première résistance R (100 Ω) => i = 17,85mA et la dernière R (1000 Ω) => i = 1,785mA
Rapport inverse pour une même tension de sortie (V1=1.785714 , V2=3.214286) .

Même phénomène sur le seconde recherche , courant 10 fois moindre quand R est multipliée par 10 .

Ne pas oublier les risques électriques avec des tensions élevées : >25Vac ou >50Vcc , peut être dangereux , voir mortel dans certaines conditions (lieux humides) !!!

Bud Spencer
Raspinaute
Messages : 1089
Enregistré le : lun. 15 août 2016 21:38

Re: Adaptateur Tension : Donne les Résistances d'un Pont

Message par Bud Spencer » ven. 28 févr. 2020 21:11

Bien ca. Tu définis un objectif et tu charognes jusqu’à y arriver. Le problème, c’est que ça fait beaucoup beaucoup de code et ça devient complètement illisible en plus de perdre toute flexibilité. Dans l’absolu, c’est normal. Tu découvres la programmation et tu ne peux bien évidement pas en connaitre toutes les subtilités du jour au lendemain, d’autant qu’il y a aussi la syntaxe du langage qui n'est pas forcement évidente. Tu as au moins le mérites d’arriver à ce que tu veux avec le peu d’instructions que tu connaisses et c’est déjà très bien. Ça prouve que tu es convaincu que c’est possible (et tu as tout a fait raison) et tu fini par y arriver (bravo \o/). Tu verras que petit à petit, naturellement, tu réaliseras les mêmes choses avec de moins en moins de code, et c’est ce qui te permettra de mesurer ta propre progression.

En espérant que cela te serve (et pourquoi pas a d’autres aussi), sans aucun esprit de compétition (ce serait malhonnête de ma part) ou de donneur de leçon (je dis ça pour ceux que ça em****de …), voilà comment moi je ferais la synthèse du problème et comment je programmerais ça (vite fait à la louche, je ne suis pas boulot …). Je ne prétends pas avoir la méthode ultime et si d’autre veulent s’y amuser, ce serait avec grand plaisir (je n’y crois pas de trop) et ils seraient les bienvenus. Je précise que je ne suis pas du tout un expert en python et que je n'ais aucune certification avec ce langage. Je l'ai laissé tomber depuis au moins 2 décennies et à part pour quelques scripts de déploiement sous linux ou ici pour m’amuser, je ne l’utilise quasiment jamais. Ceci dit, le langage n’est qu’une méthode syntaxique, ce qui ne change en rien à l’énoncé du problème et le choix de la méthode pour le résoudre.

Donc si je résume, on a une liste de valeur de résistances normalisées (E12 pour l’instant, c’est bien).
On veut définir un diviseur de tension (on ne va pas revenir là-dessus après 4 pages …) en cherchant dans cette norme la résistance R2 la plus adaptée pour s’approcher le plus possible de vout sans dépassement pour chacune des Résistance R1 issue de la meme norme. On se fout pour l’instant du courrant et de la dissipation des R, ce que l’on veut, c’est juste des valeur ‘ohm’ (tu me rediras si j’ai bien exposé le problème).

Ramenons ça a un programme informatique (ou pas d’ailleurs).
p1.png
p1.png (19 Kio) Vu 4817 fois
On connait Vin, Vout et R1 par itération sur le tableau de norme, donc le problème se résume à :
-Pour chaque valeur R1, trouver R2 théorique
-Trouver la valeur la plus proche de R2t dans la norme sans ou en la dépassant(sinon, le résultat de vout serait supérieur à la valeur vout de départ)
Le reste n'est que broderie (affichage, calcul de base loi d'ohm ...)

Je tape la suite et je reviens ...
Modifié en dernier par Bud Spencer le sam. 29 févr. 2020 12:21, modifié 2 fois.
Le premier ennemi de la connaissance n’est pas l’ignorance, c’est l’illusion de la connaissance (S. Hawking).

Répondre

Retourner vers « Python »