- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 5 von 5

Thema: Visual Basic und atmega 32 (rs232)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    06.01.2007
    Beiträge
    52

    Visual Basic und atmega 32 (rs232)

    Anzeige

    Praxistest und DIY Projekte
    Hallo zusammen

    habe ein Problem und zwar baue ich gerade an einem Projekt welches ich "Room Control" getauft habe. Ich kann bi jetzt sämtliche Lampen und meine Heizung in Abhängigkeit der Temperatur steuern sowohl über Infrarot (rc-5) als auch über ein Programm am Rechner.
    Da ich in VB (Visual Studio) leider nicht so bewandert bin hab ich mir dieses Programm aus Codeschnipseln zusammen gebastelt. Ich sende per Knopfdruck ein "a" und der mC verarbeitet dies dann und schaltet die Lampe etc.
    Mein Programm empfängt auch die Temperatur eines kty über den einfachen Printbefehl. (Print Temp)
    Jetzt mein Problem:
    Ich habe mehrere Temp fühler und würde gerne alle in meinem Programm anzeigen können und zwar ohne auf einen Button zu drücken. Also mit einem Timer.
    Jetzt ist mein Problem aber das der Print befehl ja nicht zielgerichtet ist und mein Programm nicht weiss von welchem Temp. Fühler nun die Daten kommen und in welchem Label er sie anzeigen soll.
    Das ist der Code der die Daten empfängt:

    Code:
    Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
            SetText(SerialPort1.ReadExisting)
        End Sub
        Private Sub SetText(ByVal [text] As String)
    
            ' InvokeRequired required compares the thread ID of the
            ' calling thread to the thread ID of the creating thread.
            ' If these threads are different, it returns true.
    
            If InvokeRequired Then
                Dim d As New SetTextCallback(AddressOf SetText)
                Me.Invoke(d, New Object() {[text]})
            Else
                lblkty1.Text = [text] & " °C "
            End If
    
        End Sub
    Das Promm muss also irgendwie erkennen von welchem Fühler nun die Daten kommen.
    Hoffe man kann mein Problem verstehen und mir vielleicht auch helfen

  2. #2
    Du könntest mit dem Microcontroller anstatt "print temperatur" einfach "print temperatur sensor1" senden.
    In VB überprüfst du dann mit einer IF Abfrage welcher Sensor im String steht und gibst es auf dass ensprechende Label aus.

    mfG
    tippo

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    06.01.2007
    Beiträge
    52
    Hört sich schonmal sehr gut an nur wie bewerkstelli9ge ich das.
    Vielleicht ein kleines bsp zur Hand?
    Wie gesagt bin in VB nicht sehr bewandert.

  4. #4
    Auswendig weiß ich es leider auch nicht, aber google einfach mal nach "VB String" oder ähnlich, da findest sicher etwas.

    mfG
    Tippo

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    06.01.2007
    Beiträge
    52
    Ich danke dir vielmals hab es mit deinen Hinweisen Lösen können für alle die es noch interessiert:
    Code:
    If InStr(text, "kty1:") = 1 Then
                lblkty1.Text = [text]
            ElseIf InStr(text, "kty2:") = 1 Then
                lblkty2.Text = [text]
            End If
    wobei "text" die Variable ist, die von der Seriellen schnitstelle beschrieben wird.
    Gruß Bastian07

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen