self en tore

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
chercheacomprendre
Messages : 72
Inscription : dim. 15/févr./2009 10:59

self en tore

Message par chercheacomprendre »

bonsoir à tous, j'aimerai sur mon petit code de calcul pouvoir soit entrer une valeur du nombre de spires et avoir la valeur de L calculée, oubien l'inverse, c'est à dire mettre la valeur de L et calculer la valeur de N du nombre de spires. ici dans le cas présent : si je mets nombre de spires 12 j'ai valeur théorique de la self 0.82 µH
mais comment faut-il procédé ?...
merci de me répondre.
yves.
mon code:

Code : Tout sélectionner

;calcul de la valeur de l'inductance L en µH  sur tore amidon type T68-2

;code du 05 mai 2009 purebasic 4.30

Global  L.F, AL, N.D 
Procedure Open_Window() 
  OpenWindow(21, 0, 0, 255, 70, "tore Amidon type T68-2", $CF0001) ; fenetre principale 
  TextGadget(11, 0, 10,   200, 30, "  nombre de spires bobinées  ") ;N 
  TextGadget(12, 0, 40,  200, 30, "  valeur théorique de la self en µH :  ") ;L 
   
  
  
  StringGadget(1, 200, 5,   50, 30, "") ;position N
  StringGadget(2, 200, 35,  50, 30, "") ;position L
    
  
EndProcedure 
Procedure calcul() 
  
  N.D = ValD(GetGadgetText(1) ) 
  L.f = ValD(GetGadgetText(2) )  
  
   AL= 57 ; valeur  AL pour un tore de T68-2
    
    
    L = AL*N*N/10000
    N = 100*Sqr(L/AL)
    
    
    SetGadgetText(2, StrF(L,2) ) 
    
    
EndProcedure 

Open_Window() 
Repeat 
  Event = WaitWindowEvent() 
  GadgetID = EventGadget() 
  EventType = EventType() 
  If EventType = #PB_EventType_Change 
    calcul() 
    EndIf 
Until Event = 16 
kerkael
Messages : 97
Inscription : mer. 03/sept./2008 21:08

Message par kerkael »

On dirait de l'électronique.8O
Ça ne m'a pas tout de suite sauté aux yeux avec le titre du sujet :P
Que de bons souvenirs :roll:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: self en tore

Message par Backup »

chercheacomprendre a écrit :bonsoir à tous, j'aimerai sur mon petit code de calcul pouvoir soit entrer une valeur du nombre de spires et avoir la valeur de L calculée, oubien l'inverse, c'est à dire mettre la valeur de L et calculer la valeur de N du nombre de spires. ici dans le cas présent : si je mets nombre de spires 12 j'ai valeur théorique de la self 0.82 µH
mais comment faut-il procédé ?...
merci de me répondre.
yves.
heu on l'a pas déjà fait ça ? ou bien je suis entré dans une boucle temporel
qui me fait revivre les mêmes événements indéfiniment :)


de plus tu répond a ta question la :

Code : Tout sélectionner

  L = AL*N*N/10000
  N = 100*Sqr(L/AL) 
ou alors j'ai pas compris :)
chercheacomprendre
Messages : 72
Inscription : dim. 15/févr./2009 10:59

Re: self en tore

Message par chercheacomprendre »

Bonsoir Dobro et Kerkael, oui de l'électronique, oui j'ai la formule mais ça ne fonctionne que dans un sens j'aimerais que celà fonctionne dans les deux sens : de L vers N et de N vers L et là sais pas faire ...

yves
kerkael
Messages : 97
Inscription : mer. 03/sept./2008 21:08

Message par kerkael »

Salut,

Ayant donc toutes les formules à ta dispo, tu cherches comment faire interagir l'utilisateur qui pourra d'après un gadget entrer au choix L ou N et obtenir le résultat, au lieu d'imposer des constantes dans ton code ?

C'est ça ? :roll:
chercheacomprendre
Messages : 72
Inscription : dim. 15/févr./2009 10:59

Message par chercheacomprendre »

yes c'est ça
kerkael
Messages : 97
Inscription : mer. 03/sept./2008 21:08

Message par kerkael »

Les Gadgets, c'est beau !

Le StringGadget permet de demander à l'utilisateur d'entrer du texte.

Le TextGadget d'en afficher.

Mais tu le sais déjà.

Il faudrait donner une option, avec un Optiongadget selon ce que l'utilisateur veut entrer.
chercheacomprendre
Messages : 72
Inscription : dim. 15/févr./2009 10:59

Message par chercheacomprendre »

ah ok, mais cela va me compliqué le code j'en ai bien peur, tant pis merci quand meme ami Kerkael.

bonne soirée et encore merci.

Yves.
kerkael
Messages : 97
Inscription : mer. 03/sept./2008 21:08

Message par kerkael »

Remplace les TextGadget par des OptionGadget.
Décide du sens de calcul selon l'option cochée.
L'inconvénient est que l'eventgadget réagit à toute action, dont celle d'écrire dans le stringgadget ... Chaque caractère frappé entraîne un calcul. A toi de voir si c'est ce que tu veux.
J'associerais les OptionGadget à un bouton Calcul qui lance la procédure.
Sinon, pas d'OptionGadget, mais tester quel champ est modifié.



Global L.F, AL, N.D, MonSens.s
Enumeration
   #StringL
   #StringN
   #OptionL
   #OptionN
EndEnumeration
Procedure Open_Window()
   openwindow (21, 0, 0, 280, 70, "tore Amidon type T68-2" , $CF0001) ; fenetre principale
  
   stringgadget ( #StringN , 220, 5, 50, 30, "" ) ;position N
   stringgadget ( #StringL , 220, 35, 50, 30, "" ) ;position L
   optiongadget ( #OptionL , 10, 10, 200, 30, "valeur théorique de la self en µH" )
   optiongadget ( #OptionN , 10, 40, 200, 30, "nombre de spires bobinées" )
 
EndProcedure
Procedure calcul(sens.s)
  AL= 57 ; valeur AL pour un tore de T68-2
  L.f = vald ( getgadgettext ( #StringL ) )
  N.D = vald ( getgadgettext ( #StringN ) )
   Select sens
     Case "L2N"
      N = 100* sqr (L/AL)
       setgadgettext ( #StringN , strf (N,2) )
     Case "N2L"
      L = AL*N*N/10000
       setgadgettext ( #StringL , strf (L,2) )
   EndSelect
  
EndProcedure

Open_Window()


Repeat
   EventID = waitwindowevent ()
     If EventID = #PB_Event_Gadget
       Select eventgadget ()
         Case #OptionL
          MonSens= "N2L"
         Case #OptionN
          MonSens= "L2N"
         Default
          calcul(MonSens)
       EndSelect
     EndIf
Until EventID = 16
chercheacomprendre
Messages : 72
Inscription : dim. 15/févr./2009 10:59

Message par chercheacomprendre »

[quote="kerkael"]
ok oui je vais voir , je te remercie c'est sympa.

yves
kerkael
Messages : 97
Inscription : mer. 03/sept./2008 21:08

Message par kerkael »

Oops, le calcul est l'affichage est correct, mais j'ai inversé 2 fois le nom des variables.
Dans les options, j'ai indiqué OptionL en face de StringN (et réciproquement)

Et dans le select case, le choix est inversé N2L au lieu de L2N.

stringgadget ( #StringN , 220, 5, 50, 30, "" ) ;position N
stringgadget ( #StringL , 220, 35, 50, 30, "" ) ;position L
optiongadget ( #OptionL , 10, 40, 200, 30, "valeur théorique de la self en µH" )
optiongadget ( #OptionN , 10, 10, 200, 30, "nombre de spires bobinées" )

Case #OptionL
MonSens= "L2N"
Case #OptionN
MonSens= "N2L"
kerkael
Messages : 97
Inscription : mer. 03/sept./2008 21:08

Message par kerkael »

Pour imposer de modifier le String en face de l'option choisie, voici comment modifier la fin du code.


Repeat
   EventID = waitwindowevent ()
      If EventID = #PB_Event_Gadget
        Select eventgadget ()
          Case #OptionL
          MonSens= "L2N"
           setgadgetstate ( #StringL , 1)
           setgadgetstate ( #StringN , 0)
          Case #OptionN
          MonSens= "N2L"
           setgadgetstate ( #StringL , 0)
           setgadgetstate ( #StringN , 1)
          Default
          calcul(MonSens)
        EndSelect
      EndIf
Until EventID = 16
chercheacomprendre
Messages : 72
Inscription : dim. 15/févr./2009 10:59

Message par chercheacomprendre »

[quote="kerkael"]

oui j'ai vu , c'est pas grave, cela fonctionne bien y'a pas de souci.

c'est impec encore merci pour l'aide.
Yves;
Répondre