Outils Electronique

Programmation d'applications complexes
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Outils Electronique

Message par boddhi »

Nouvelle version : 1.31 (29/09/2023)
 
Utilitaire permettant de calculer un certain nombre de lois électriques (Puissance, loi d'Ohm, lois de Joule, consommation énergétique, résistance ohmique en série et en parallèle), de traduire les codes couleurs des résistances classiques et d'interpréter les codes des résistances CMS, DIP et SIP).

Image

Version 1.10 : Gestion de l'UI via la lib Dialog
Version 1.20 : Ajout des lois de résistance ohmique
                       Ajout du décodage des résistances CMS/DIP/SIP (E3 à EIA-96)
                       Modifié : Les formules acceptent des nombres décimaux
                       Corrigé : Un bug empêchant le calcul de la 2e loi de Joule
Version 1.25 : Possibilité de choisir la langue d'utilisation (Français/Anglais) vie les icônes situées au bas de l'appli
                       Correction du bug relatif au calcul des résistances en série
Version 1.26 : Correction d'un bug affectant l'affichage des libellés de la loi d'Ohm
Version 1.30 : Correction des calculs liés à la consommation d'énergie
                       Correction de certaines traductions anglophones
                       Ajout des équivalences en kW de la consommation d'énergie
                       Amélioration significative de portions de code
Version 1.31 : Correction d'un bogue d'affichage du 3e anneau (Unité) de la résistance classique
                       Changement des graphismes de la résistance classique
Note importante : Il convient de garder à l'esprit que le travail avec des nombres flottants peut impliquer des écarts d'arrondis, ceux-ci n'étant pas directement liés aux calculs mais au FPU. J'ai tenté au mieux de minimiser ces imprécisions.

Application 100% non malveillante et sans virus !
Comme d'hab, n'hésitez pas à me faire part de bogues ou de vos commentaires ou suggestions :wink:
If anyone is interested in translating the app into languages other than French and English, please let me know.

Télécharger la version 1.31 (Windows x64)

[EDIT 09/09/23 : Modification du lien de téléchargement]
[EDIT 25/09/23 : Ajout version 1.20]
[EDIT 26/09/23 : Ajout versions 1.25 & 1.26]

[EDIT 28/09/23 : Ajout version 1.30]
[EDIT 29/09/23 : Ajout version 1.31]
Dernière modification par boddhi le sam. 30/sept./2023 10:38, modifié 12 fois.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Outil électronique

Message par Ar-S »

Merci.
Il y a effectivement un soucis d'affichage avec la hauteur des stringgadget du fait des Dpi, du zoom des textes sous windows.

Image
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Outil électronique

Message par boddhi »

Version 1.10
Ar-S a écrit :Il y a effectivement un soucis d'affichage [...]
Salut Ar-S

Pardon de ne pas t'avoir répondu plus tôt (comme je te l'ai écrit, je suis sur un autre projet en ce moment :wink:).
Bon, j'ai repris le code et remplacé l'ancienne UI par une nouvelle gérée par la lib Dialog (😓, ce ne fut pas des plus simples :) ).
Je l'ai testée sous différentes valeurs de mise à l'échelle et elle semble maintenant s'afficher correctement.

Autre point : Ce recours à la lib Dialog a aussi implicitement entraîné une approche programmatique différente en lien avec les gadgets.
(D'ailleurs, si quelqu'un peut m'expliquer comment fonctionne le flag 'group' pour les gadgets de type <option> parce que j'ai essayé plusieurs trucs et rien n'a marché ! J'ai en conséquence dû gérer par le code le changement d'état des autres gadgets <option> après un clic sur l'un d'entre-eux.)

J'ai là aussi fait quelques tests pour vérifier que les résultats étaient bien ceux attendus. A priori, RAS. Mais je ne les ai pas poussés à fond...

Merci à toi et à tous ceux qui le voudront bien de me confirmer que tout est OK ou me signaler si il y a un problème.

PS : Anomalie connue : Une espèce de "flickering" lors du clic sur la coche "Toujours visible". Je n'arrive pas à l'expliquer. J'ai eu beau désactiver tous types de callback et pister l'exécution du code, je ne comprends pas pourquoi cet effet. D'autant plus, que sur d'autres projets avec plus ou moins les mêmes caractéristiques, je n'ai pas ce problème.
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Outil électronique

Message par Ar-S »

L'affichage est nickel.
Pour le "flickering" lors du clic sur la coche "Toujours visible" je le constate aussi.
J'ai eu beau désactiver tous types de callback et pister l'exécution du code, je ne comprends pas pourquoi cet effet.
Pourtant ça sent le soucis de callback c'est bizarre. Est-ce que ça ne lancerait pas un RefreshDialog quand tu coches la case qui générerait cela ?

Tout d'abord je n'ai jamais utiliser la lib dialog alors je peux dire des aneries..
Pour les Options, quand tu veux grouper X optionGadget, tu les mets dans un ContainerGadger que tu fermes avec CloseGadgetList()
Ainsi tu peux avoir des options à la suite mais chaque container va gérer ses propres options.

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 170, 210, "OptionGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ContainerGadget(100,0,0,170,49)
    OptionGadget(0, 30, 1, 160, 20, "Option 1")
    OptionGadget(1, 30, 27, 160, 20, "Option 2")
    CloseGadgetList()
    OptionGadget(2, 30, 50, 160, 20, "Option A")
    
    SetGadgetState(1, 1)   ; sélectionne la deuxième option
    
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Outil électronique

Message par boddhi »

Ar-S a écrit : Pourtant ça sent le soucis de callback c'est bizarre. Est-ce que ça ne lancerait pas un RefreshDialog quand tu coches la case qui générerait cela ?
Je ne fais appel à cette commande à aucun moment dans le source. De plus, le code associé au clic sur la coche ne consiste qu'à la simple instruction

Code : Tout sélectionner

StickyWindow(#FEN_PRINCIPALE,GetGadgetState(NoGadget))
On ne peut faire plus simple ! :D
Je me pencherai sur ce souci quand j'aurai un peu plus de temps. C'est un peu chiant mais ça n'empêche pas l'outil de fonctionner dans son ensemble :)
Ar-S a écrit : Pour les Options, quand tu veux grouper X optionGadget, tu les mets dans un ContainerGadger que tu fermes avec CloseGadgetList()
Ainsi tu peux avoir des options à la suite mais chaque container va gérer ses propres options.
Chaque groupe d'options (Centaine, dizaine, unité, etc.) possède déjà son propre conteneur. Le flag 'group' ne fonctionne pas quand même.
J'ai eu beau affecter 'group="1"' aux options du conteneur 'Centaine', 'group="2"' aux options du conteneur 'Dizaine', etc., ça ne marche pas.

Grosso modo, la construction graphique est la suivante :

Code : Tout sélectionner

<conteneur 'Centaine'>
  <vbox>
    </hbox>
      <option id="1" group="1">        			; sans libellé texte
      <text id="11" text="LibOption1"> 			; Libellé texte de l'option
    </hbox>
    </hbox>
      <option Id="2" group="1">        			; sans libellé texte
      <text id="12" text="LibOption2">		 	; Libellé texte de l'option
    </hbox>
    [etc.]
  </vbox>
</conteneur>
<conteneur 'Dizaine'>
  <vbox>
    </hbox>
      <option id="3" group="2">        			; sans libellé texte
      <text id="13" text="LibOption3"> 			; Libellé texte de l'option
    <hbox>
    </hbox>
      <option Id="4" group="2">        			; sans libellé texte
      <text id="14" text="LibOption4">		 	; Libellé texte de l'option
    <hbox>
      [etc.]
  </vbox>
</conteneur>
[etc.]
Je suis obligé de procéder ainsi (c.-à-d. ne pas saisir le flag 'text' pour les gadgets <option> et utiliser en lieu et place un gadget <text>) car PB ne gère pas la colorisation des gadgets de type OptionGadget().
J'aurais pu me contenter de simples libellés en noir (et peut-être que je n'aurais pas ce problème) mais je tiens à cette colorisation car je trouve qu'elle apporte, outre un aspect "esthétique" sympa à l'UI, un repère visuel pratique dans l'utilisation de l'outil.

Et je ne peux utiliser la technique du CloseGadgetList() car les gadgets sont définis via l'arbre XML et que ce type de commandes ne peut entre employé lors de son élaboration. Un SetGadgetAttribute() aurait peut-être pu être une solution mais elle n'est pas 'autorisée' pour un gadget de type OptionGadget()...
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Outil électronique

Message par boddhi »

Nouvelle version 1.20
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Outil électronique

Message par cage »

Bonjour boddhi,

Ton application me rappelle de bon souvenirs de l'époque ou je passais beaucoup de temps a dépanner tout matériel électronique qui me tombait sous la main.
J'ai commencé ma carrière après avoir obtenu mon bac F2 (Electronique) et j'ai migré vers les réseaux informatique et la programmation a la fin des années 80.

Belle application que j'apprécie en temps que connaisseur averti et je te remercie du partage de ton travail.

Juste une question, dans l'onglet Formules, je ne comprends pas le fonctionnement de 'Résistances ohmique'

Toutes les entrées R2 a R8 restent grisées et n'acceptent aucune valeur. Seule l'entrée R1 permet d'entrer une valeur.

cage
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Outil électronique

Message par boddhi »

Salut cage
cage a écrit : Belle application que j'apprécie en temps que connaisseur averti et je te remercie du partage de ton travail.
Merci d'avoir pris le temps de tester l'appli ainsi que pour le compliment que j'apprécie d'autant plus qu'il vient d'un connaisseur alors que je suis un total novice en la matière !:wink:
Ma seule réalisation fut un variateur de lumière, à l'occasion d'une initiation à l'électronique en cours d'EMT, il y a très très très longtemps.
J'avais kiffé grave mais les aléas de la vie ont fait que je n'ai pas pu poursuivre dans cette voie mais ça m'a toujours botté !
Et comme toi, je me suis tourné vers l'informatique de loisir peu de temps après et j'y suis resté sans avoir jamais pris le temps (pu faute de temps) de revenir à ce premier coup de coeur. :cry:

J'ai bien tenté pendant le covid en achetant un kit Arduino mais j'ai un peu lâché l'affaire. C'est, comme je l'ai déjà écrit sur un autre topic, à cette occasion que j'avais commencé à développer ce petit outil...
Juste une question, dans l'onglet Formules, je ne comprends pas le fonctionnement de 'Résistances ohmique'
Toutes les entrées R2 a R8 restent grisées et n'acceptent aucune valeur. Seule l'entrée R1 permet d'entrer une valeur.
Oupps, je pensais que ce serait intuitif mais il semble que non. Il suffit de valider la saisie d'un champ par <Entrée> ou <Tab> pour débloquer le suivant.

N'hésite pas à me dire si ce n'est pas un bon choix...
De même, je compte, dans la limite de mes possibilités, enrichir cet "outil" et je serai ravi de recevoir tes suggestions sur des formules ou autres qui te paraissent essentielles et qui mériteraient d'y figurer.

Cdlt.
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Outil électronique

Message par cage »

De mon coté, je crois que ma plus belle réalisation a été de réaliser un décodeur C+ avant même sa sortie officielle lors des tests qu'ils faisaient sur une chaine pour permettre aux revendeurs de tester la réception. Aujourd'hui, tout ça n'a plus de sens alors qu'il suffit d'un abonnement pirate pour recevoir toutes les chaines existantes ou presque. J'ai connu l'époque faste des radios et télévisions a tubes (Noval, Octal,...) et des équipements américains qu'on pouvait commander via des revues comme Le Haut-Parleur. J'ai découvert l'électronique vers mes 14 ans alors que j'étais plutôt passionné par la mécanique moto et que je faisais du moto-cross a ne plus pouvoir tenir debout a la fin de la journée.

J'ai testé avec Tab et Entrée et c'est OK pour entrer les valeurs des résistances et si le calcul parallèle semble fonctionner correctement, le calcul série me donne toujours comme résultat une valeur erronée. De plus, pour obtenir le résultat, il me faut passer par Résistances en parallèle puis re-sélectionner Résistances en série, le champ Résistance totale ne se mettant pas a à jour automatiquement. Idem pour le calcul Résistances en parallèle, ou il faut cliquer sur Résistances en série puis cliquer sur Résistances en parallèle.

cage
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Outil électronique

Message par boddhi »

cage a écrit : De mon coté, je crois que ma plus belle réalisation a été de réaliser un décodeur C+ avant même sa sortie officielle [...]
Ca force le respect ! :) Si tu savais comme j'aurais aimé avoir de telles compétences ! Ca m'aurait évité de griller qq cartes mères d'Amiga 500 sur lesquelles je soudais, dé-soudais, re-soudais des cartes d'extensions mémoires parce qu'il n'y avait pas de slot prévu pour... :mrgreen:

Tu connais probablement la chaîne YT "Deus ex silicium", je regarde de temps en temps ses vidéos et c'est vraiment le genre de niveau que j'aurais voulu avoir :)
Vu qu'aujourd'hui quasiment tous nos objets sont bourrés d'électronique, avoir ce genre de compétences, ça dépanne vraiment et que ça aide à faire de sacrées économies !!!! :lol:
cage a écrit : le calcul série me donne toujours comme résultat une valeur erronée.
Mea culpa est ! J'ai commis une grosse bourde dans le code :oops: Je vais mettre à dispo une nouvelle version corrigée...
cage a écrit : le champ Résistance totale ne se mettant pas a à jour automatiquement.
Alors oui et non ! Tout comme pour l'activation des champs R2...R8, pour que le calcul s'effectue, il faut une sortie via <Entrée> ou <Tab> de l'un des champs saisis. Comme le montre l'exemple ci-dessous :
Image
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Outils Electronique

Message par boddhi »

Nouvelle version 1.25

[Edit : Version reportée]
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Outils Electronique

Message par boddhi »

Nouvelle version 1.26
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Outils Electronique

Message par cage »

C'est bon pour le calcul de Résistance ohmique.

Par contre, il y a une erreur dans:
Image
100 volts aux bornes d'une résistance de 100 ohms donne 1 ampère (Formule U=RI, si U=100 et R=100, alors I=1)
La formule P = Résistance (R) x Tension (U) n'est pas correcte.
Plus la valeur de la résistance augmente, plus la puissance dissipée diminue.
Un court-circuit équivaut a une résistance R=0 => puissance dissipée maximum => incendie très probable. :lol:
J'ai vu que tu as mis une protection dans ton application et on ne peut entrer la valeur 0 pour (R).
J'aurais pu griller mon PC. :wink:

cage
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Outils Electronique

Message par boddhi »

Merci cage pour ton retour :wink:
cage a écrit : La formule P = Résistance (R) x Tension (U) n'est pas correcte.
Je t'avouerais que c'est une information que j'ai collectée il y a maintenant 3 ans.
Non pas que je mette en doute ce que tu dis, loin de là, mais j'ai tenté de retrouver la source de mon information afin de comprendre où j'avais pu merder et pouvoir corriger en conséquence ces formules. Hélas, sans résultat.
Pire, je me suis retrouvé, au gré de mes recherches, sur de multiples sites qui me donnent des terminologies et des formules diverses et variées à tel point que je finis par ne plus savoir à quel saint (ou sein selon les esprits :mrgreen: ) me vouer et ne plus y comprendre grand chose ! :oops:

Aurais-tu une source d'info fiable et intelligible qui me permette d'y voir un peu plus clair ? D'avance, merci.
Avatar de l’utilisateur
cage
Messages : 604
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Outils Electronique

Message par cage »

Bonjour,

Quelques liens qui parlent de la loi d'ohm :

la-loi-d-ohm-s1164
la-relation-entre-la-puissance-et-l-energie-elec-s1169
loi d'Ohm
qu-est-ce-que-la-loi-d-ohm

Je n'ai conservé ni mes supports de cours ni mes bouquins scolaires dont j'ai fais dons a un collègue de travail pour ses enfants ainsi que mes bouquins références des transistors, circuits intégrés et bien d'autres bouquins encore.
En fait, je me suis débarrassé de tout ce qui avait traits avec l'électronique, le radio amateur, toutes mes revues mensuelles, tout mon matériel de radio amateur, de modélisme (télécommande, moteur super tigre, K&B, avions, voitures,...). J'ai fais table rase de tout et surtout des heureux a qui j'ai donné tout mon matériel.

Alors, je n'ai aucune source fiable sur le problème indiqué, mais il coule de source que la puissance ne peut-être égale au produit de la résistance par la tension qui contredirais la première formule de ton application qui indique que P = U x I qui elle est vrai.

Comment P = U x I peut-être aussi égal a P = U x R ???

cage
■ Win10 Pro 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.12 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Répondre