Kommunikation mit einem Mikrocontroller

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von chaluf.

    Kommunikation mit einem Mikrocontroller

    Von hier ausgelagert: Verbindung zu zweiter serieller Schnittstelle nicht möglich ~Thunderbolt

    Hallo zusammen,
    habe mir vor kurzem auch eine Kommunikation via serielle Schnittstelle (USB) über einen Mikrocontroller an eine elektrische Steuerung zusammengebastelt. Alles funktioniert einwandfrei. Ich habe nur eine Frage, die ich einfach nicht beantworten kann.

    Wenn ich den "COM4" als Anschluss definiere und ich den Controller jedoch woanders stecke, funktioniert es trotzdem.
    Schließe ich meine Steuerung an einen anderen PC an funktioniert es auch sofort.

    Meine Frage ist:

    Warum muss ich dann den Port-Namen definieren ? -UND-
    Wenn ich zwei dieser Steuerungen anschließe, woher weiß mein Betriebssystem dann, welche Daten an welche Schnittstelle soll.

    Hier mein Quellcodeausschnitt zur Verbindung:

    VB.NET-Quellcode

    1. SerialPortArduino.PortName = "COM4" 'Der verwendete Anschluss
    2. SerialPortArduino.BaudRate = 9600
    3. SerialPortArduino.DataBits = 8
    4. SerialPortArduino.Parity = Parity.None
    5. SerialPortArduino.StopBits = StopBits.One
    6. SerialPortArduino.Handshake = Handshake.None
    7. SerialPortArduino.Encoding = System.Text.Encoding.Default


    und hier ein Beispiel zur Kommunikation:

    VB.NET-Quellcode

    1. SerialPortArduino.Open()
    2. SerialPortArduino.Write("1") 'Byteübergabe an den Arduino
    3. daten = SerialPortArduino.ReadByte
    4. SerialPortArduino.Close()


    Ich würde mich sehr über eure Hilfe freuen.


    Gruß Chaluf

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Thunderbolt“ ()

    Willkommen im Forum. :thumbup:

    chaluf schrieb:

    Port-Namen definieren
    Das Betriebssystem mappt den USB-Anschluss zu einem SerialPort. Dieses kann nur mit einem gültigen Namen angesprochen werden, die möglichen Namen stellt das System bereit:

    VB.NET-Quellcode

    1. Dim names() = IO.Ports.SerialPort.GetPortNames

    chaluf schrieb:

    welche Daten an welche Schnittstelle sol
    Das musst Du wissen.
    Das eine Port heißt per Default SerialPort1, das nächste SerialPort2. Du kannst ihnen dann Namen Deiner Wahl geben.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo und vielen Dank für deine schnelle Antwort.
    Ich dachte die definition meiner Schnittstelle wäre wie folgt:

    VB.NET-Quellcode

    1. SerialPortArduino.PortName = "COM4"


    Wenn ich im VB-Code COM4 definiere und das Gerät aber in mein COM3 oder anderes anschließe, funktioniert es trotzdem.
    Oder verstehe ich das falsch

    chaluf schrieb:

    funktioniert es trotzdem.
    Das sollte nicht funktionieren, Du kannst ja mehrere Ports am Rechner haben, die musst Du alle fein säuberlich unterscheiden.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke für deine Antwort. Und genau so wie du es schilderst macht es auch nur sinn.

    Ich habe das Programm an einem Rechner für den COM4 definiert.
    Wenn ich beispielsweise das RFID-Kartenlesemodul an einem anderen Rechner anschließe (Egal welchen USB-Anschluss) funktioniert es direkt ?(

    chaluf schrieb:

    für den COM4 definiert
    Kommt "COM4" in diesem Array vor?

    RodFromGermany schrieb:

    VB.NET-Quellcode

    1. Dim names() = IO.Ports.SerialPort.GetPortNames

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!