LED über Serielle Schnittstelle (Druckerport) ansteuern(Button A - An und Button B - Aus)

  • VB.NET

Es gibt 32 Antworten in diesem Thema. Der letzte Beitrag () ist von fraju.

    LED über Serielle Schnittstelle (Druckerport) ansteuern(Button A - An und Button B - Aus)

    Hallo, wie steuere ich den Druckerport in VB an und mache so eine LED an oder aus?
    Google hat zwar eingies geliefert, aber wirklich durchgeblickt hab ich auch nicht.

    In sachen Schnittstellenprogrammierung bin ich auch absuluter Anfänger.

    Wenn sich jmd. findet, der mir einen kompletten Code dafür posten könnte, wäre ich diesen wirklich sehr dankbar... Vielen Dank!


    Liebe grüße
    Marvin
    hmm das Prog. sieht ja ganz nett aus, aber da muss man soviel einstellen.. Sacht mir mal bitte jmd. was genau? Und wie belege ich dann die zwei Pins für die LED? (+ und -)
    so das diese an bzw. aus geschaltet werden kann?


    danke
    Marvin

    MG-Soft schrieb:

    aber da muss man soviel einstellen

    Ja, das nennt man programmieren... Und VB ist schon eine Hochsprache, höher Sprache als C++. Eine noch höhere Sprache wäre dann wohl mit dieser Syntax:

    VB.NET-Quellcode

    1. dim x
    2. set x=new.spiel.egoshootermitgeilergrafik
    3. load x
    4. while x
    5. wend
    6. end



    - ist GND.
    + ist der jeweilige Datapin.

    Am besten LowCurrent LEDs mit geeignetem Vorwiderstand verwenden. Die Portspezifikation legt 3mA fest. 08/15 LEDs brauchen meist 20. Bei vielen Mainboards läuft es auch so, aber riskieren möchte ich es nicht.
    Ein Programmbeispiel habe ich nicht, da ich hauptsächlich in VB6 für den PC progge. Aber im Prinzip ist es total einfach, da die Deklarationen schon vorhanden sein dürften.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Hmm nicht wirklich... Weißt Du sie aus dem Kopf? - Bzw. was muss ich genau bei dem Prog. einstellen? leider sind die buttons auch nicht wirklich benannt.. daher weiß man, wenn man den Code nicht wirklich versteht(und an diesem Punkt bin ich gerade:D^^, Sonst mach ich halt auch nur Anwendungen dirket für den PC) für was welche da sind...

    LG
    MARVIN
    bitte helft mir^^
    Also Du meinst die Zeichnung, die direkt eingebunden ist? - da blick ich nicht gaanz durch. ganz rechts sehe ich die sachen für die LEDs, aber warum geht das ganze nur an GND (masse) ? Brauch doch auch noch nen zweiten pinn, oder?

    Und warum steht oben drüber was von treiber?

    kann mir jmd. de Zeichnuing machen, nur für die LED zum Port

    DANKE!
    LG
    Marvin
    es gibt noch rote und blau Punkte.

    noch einfacher Rot oder Blau-Diode- Widerstand- Masse(25)
    R->3K-Ohm.
    peterfido hat es auch schon benannt.

    Mache mal eine kleine Zeichn. wie du es anschließen würdest?

    Gruß

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „fraju“ ()

    ähh ja, kla^^

    Also, nen Freund hat mir jetz folgendes Prog. geschrieben:
    die form:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private lpt As New LPT()
    3. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    4. lpt.D1 = True
    5. lpt.SendData()
    6. End Sub
    7. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    8. lpt.D1 = False
    9. lpt.SendData()
    10. End Sub
    11. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    12. End Sub
    13. End Class


    Und die LPT_Klasse:

    VB.NET-Quellcode

    1. Public Class LPT
    2. Enum ePort
    3. LPT1 = &H378
    4. LPT2 = &H278
    5. End Enum
    6. Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer
    7. Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
    8. Private LPT_Port As ePort = ePort.LPT1 'Adresse des LPT Port1(Standard)
    9. Private Bytes() As Integer = {0, 1, 2, 4, 8, 16, 32, 64, 128}
    10. Private m_D1 As Boolean
    11. Private m_D2 As Boolean
    12. Private m_D3 As Boolean
    13. Private m_D4 As Boolean
    14. Private m_D5 As Boolean
    15. Private m_D6 As Boolean
    16. Private m_D7 As Boolean
    17. Private m_D8 As Boolean
    18. Property D1() As Boolean
    19. Get
    20. Return m_D1
    21. End Get
    22. Set(ByVal value As Boolean)
    23. m_D1 = value
    24. End Set
    25. End Property
    26. Sub SendData()
    27. Dim tmpData As Integer = 0
    28. If m_D1 Then tmpData += Bytes(1)
    29. If m_D2 Then tmpData += Bytes(2)
    30. If m_D3 Then tmpData += Bytes(3)
    31. If m_D4 Then tmpData += Bytes(4)
    32. If m_D5 Then tmpData += Bytes(5)
    33. If m_D6 Then tmpData += Bytes(6)
    34. If m_D7 Then tmpData += Bytes(7)
    35. If m_D8 Then tmpData += Bytes(8)
    36. Out(LPT_Port, tmpData)
    37. End Sub
    38. End Class


    Aber das Problem ist: es funzt nicht:D Also die Ports sind "dauer_offen" und liefern 4.20V
    auch wenn Das Programm zu ist. Aber es sollte doch mindestens das "Zu machen" funktionieren...


    Danke für euere Hilfe..
    LG
    MARVIN


    EDIT: Was mir gerade noch aufgefallen ist: Wenn ich auf 'AN' (Button1) klicke, erhöht sich die Spannung von 4.19V auf 4.20V.... Wenn ich auf 'Aus' drücke, das genaue Gegenteil... Aber es passiert nur was bei einem klick(Also wenn ich 2,3,4usw. mal auf 'AN' klicke geht Die Spannung NICHT weiter hoch, bleibt dann bei 4.20V, umgekert genauso)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „MG-Soft“ ()

    Hallo

    Wenn bei allen 4,3V ansteht müßte doch die Diode leuchten.
    ...leuchtet aber nicht,R ist viel zu groß.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Out(LPT_Port, 1)
    3. End Sub
    4. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    5. Out(LPT_Port, 0)
    6. End Sub



    Zum Test nimm doch ein Para Testprog.
    Erst muß die Hardware funzen.

    Gruß
    COM ist soweit ich weiß, um einiges schwerer, weil dort in Bytes gesendet wird... Das heißt Du musst auf deiner Hardware noch einen Microcontoller aufsetzen, der das quasi übersertzt, denn eine LED, oder ein Relais versteht keine Bits und Bytes^^

    Genau so ist es beim USB Port


    LG
    MARVIN