WiFaRi - Widerstandsfarbringe umwandeln in Widerstandswert

    • Offizieller Beitrag

    Hallo!

    Ich bin neu hier im Forum.
    Mit AutoIt beschäftige ich mich seit etwa 6 Wochen. Ich interessiere mich so nebenbei
    sehr für Elektronik (Hobbymäßig). Deshalb habe ich das mal zum Anlaß genommen,
    ein Script in AutoIt zu schreiben.
    Damit kann man den Widerstandscode auf elektrischen Widerständen in (für Menschen
    lesbare) Werte umwandeln.
    Benötigt werden einige Grafiken, die ich als ZIP-Archiv gepackt habe. Das "gfx"-Verzeichnis
    in diesem Archiv muß einfach im gleichen Verzeichnis liegen, wie das Script.

    Ich hoffe es gefällt euch.


    Ich habe die Version jetzt nochmal überarbeitet und die Vorschläge von snoozer umgesetzt.
    Man kann die Farben jetzt entweder über die [+] und [-] Buttons auswählen oder indem man
    auf einen der ersten drei Farbringe klickt.


    Wieder gibt es eine neue Version (1.3), bei der ich einiges geändert habe:

    - Grafiken sind jetzt alles Icons. Damit klappt das mit der Transparenz (also unbedingt auch das
    neue "gfx.zip" mit downloaden und ins Script-Verzeichnis entpacken).
    - Der vierte Ring (Toleranz) ist jetzt ebenfalls änderbar.
    - Anzeige der Toleranz (als Prozentwert und in Ohm).

    Edit: ( 13.09.08 ) Ich habe mein Script mal an die neue AutoIt-Version angepasst, sodass es damit lauffähig ist. Es gibt also Version 1.4 im ZIP-Archiv aus dem Dateianhang.

    Nochmals Danke an Euch (Bernd670 + snoozer)!

  • Zitat

    Original von derda
    hmmm

    bei mir kommt immer das

    fehler


    mfg


    yo dann musste die zip datei downloaden und ins scriptverzeichnis entpacken^^
    also finde das script eigentlich ganz coool^^ jemand aus meiner klasse hatte das auch mal programmiet alles aber webbased...so ich hab eigentlich nur zwei vorschläge ansonsten kann ich nur staunen dass so ein erstes script aussehen kann echt *daumen hoch* weiter so ;)
    so nummer 1:
    du hast extra nen info.icon in deinem ornder drinn...brauchste nicht...es gibt die möglichkeit das von windows mitgelieferte icon zu laden..wenn du damit leben kannst dass es ein wenig pixelig ist...kannste das so in etwa in dein script einbinden:

    [autoit]

    GUICreate("")
    GUICtrlCreateIcon(@SystemDir & "\shell32.dll",-222,10,10,50,50)
    GUISetState()
    While 1

    WEnd

    [/autoit]


    und zweitens wärs cool wenn man auf den widestandsring klicken könnte und dann direkt nen "widerstand" auswählen könnt...mit + und - ist das ganze doch ein wenig nervend geht aber auch in ordnung ;)

    so das wars vorerst von mir super script geht bis jetzt einwandfrei ;) mach weiter so!

    snoozy

    • Offizieller Beitrag

    Naja, ich hatte das Ganze auch schonmal in Javascript erstellt. Aber jetzt wollte ich halt mal
    AutoIt ausprobieren.
    Der Tip mit dem Windows-SystemIcon ist ja klasse. Das habe ich gleich mal geändert. Vielen Dank!

    Und das mit der Farbe direkt auswählen werde ich auch mal in Angriff nehmen.
    <!--StartFragment--> smile <!--EndFragment-->

    MfG. Oscar

    • Offizieller Beitrag

    Hallo und :willkommen:,

    erst mal muss ich sagen schönes Programm! :rock:


    Ein paar Tipps/Verbesserungsvorschläge habe ich noch für dich.

    • Wenn Du mit der ControllID's arbeitest wie hier z.B.

      Spoiler anzeigen
      [autoit]

      Func Button()
      Local $ausw = @GUI_CTRLID
      Switch $ausw
      Case 7; [+] Button vom 1.Ring
      If $RingAkt[0] < $RingMax[0] then
      $RingAkt[0] += 1
      GUICtrlSetImage ($Ring[0], $widerstand[$RingAkt[0]])
      EndIf
      :
      :
      :

      [/autoit]

      dann ist es sinnvoll über die Variable zuzugreifen

      Spoiler anzeigen
      [autoit]

      Func Button()
      Local $ausw = @GUI_CTRLID
      Switch $ausw
      Case Button[0]; [+] Button vom 1.Ring
      If $RingAkt[0] < $RingMax[0] then
      $RingAkt[0] += 1
      GUICtrlSetImage ($Ring[0], $widerstand[$RingAkt[0]])
      EndIf
      :
      :
      :

      [/autoit]


      ansonsten kann es passieren, wenn Control-Elemente hinzufügt werden, das sich die ID ändert und alle Funktionen geändert werden müssen in denen die ControlID direkt eingetragen ist.

    • Es gibt noch eine andere art zur Bestimmung welches der erste oder letzte Farbring ist, wenn der erste oder letzte Farbring gleich weit vom Widerstandsende entfernt sind ist der Toleranzring meist etwas breiter und Abstand vor dem Toleranz größer!
    • Der 3. Ring kann auch Silber (* 0,01) sein!
    • Es wäre schön wenn man die Toleranz auch auswählen könnte und der Widerstandswert mit Toleranzwert ausgeben wird z.B. 1MOhm +/- 0,2 MOhm oder 1MOhm - Wertebereich 0,8 MOhm - 1,2 MOhm
    • Eine Erweiterung, das man auch Widerstande mit 6 Farbringen berechnen kann, wäre auch hilfreich.
    • Offizieller Beitrag

    Hallo!

    Ich bin jetzt ein wenig verwirrt. Deinen Hinweis mit der ControllID habe ich nicht ganz verstanden.
    Ich benutze doch die Variable bei Switch (in dem Beispiel). Oder meinst Du etwas anderes?

    X-) Alles klar. Button[x]. Ok, verstanden!

    Ja, das mit Silber beim 3. Ring ist mir schon bewußt, aber das silberne Gif sieht immer so kaputt
    aus, weil die Hälfte davon transparent dargestellt wird. Irgendwie habe ich das mit transparenten
    Gifs in AutoIt noch nicht verstanden. Gibt's da vielleicht schon einen Thread (mit der Suche konnte
    ich nichts finden)?

    Der Rest kommt auf die ToDo-Liste. Danke!

    MfG. Oscar

  • Zitat

    Original von Oscar
    Damit kann man den Widerstandscode auf elektrischen Widerständen in (für Menschen lesbare) Werte umwandeln.


    Haha x)
    Ich als Elektroniker bin also kein Mensch, weil ich die Farbcodes auswendig kann? xD
    Werde das Prog ma zuhause runterladen und testen wenn ich Zeit habe.

    Dieser Beitrag wurde 9521 mal editiert, zum letzten Mal von Blubkuh: Morgen, 02:28.

    [autoit]

    If Not $Elephant Then $Irelephant = True

    [/autoit]
  • naja wenn man damit oft konfrontiert wird ist das kein Problem, ich musste das auch mal lernen, durfte dann aber ne Tabelle verwenden XD