0
Offline
Newbie
Karma: 0
Posts: 3
Arduino rocks
|
 |
« on: November 14, 2010, 03:24:29 pm » |
Hallo,
ich habe ein Programm in VB2010, mit dem ich die Ports auf meinem Board ansteuern kann. Das funktioniert auch super...nun würde ich gerne die Daten die ich an einem Port auslese an mein VB Programm schicken! Den Port zum auslesen habe ich bereits vorbereitet, d.h. das Funktioniert auch, aber ich habe keine Ahnung wie ich den Code schreiben soll, der dann die ausgelesenen Daten an das VB Prog schickt.
Und ich wollte dann die ausgelesenen Daten im VB-Prog in einer Text Box anzeigen lassen...
Hier der Code für's Board:
int LED=13; int IO_5=5; int input=0; int pin2=2; int value;
void setup() { Serial.begin(9600); pinMode(LED,OUTPUT); pinMode(IO_5,OUTPUT); pinMode(pin2,INPUT); }
void loop() {
input=Serial.read(); value=digitalRead(pin2); switch(input) { case 10: digitalWrite(LED,HIGH); break; case 20: digitalWrite(LED,LOW); break; case 30: digitalWrite(IO_5,HIGH); break; case 40: digitalWrite(IO_5,LOW); break; case 50: Serial.println(value) case 100: digitalWrite(LED,LOW); digitalWrite(IO_5,LOW); break; }
}
hier der Code vom VB-Prog:
Imports System.IO.Ports.SerialPort
Public Class Form1
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If SerialPort1.IsOpen Then SerialPort1.Write(ChrW(100)) End If End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Verfügbare Comports suchen Dim ports As String() = GetPortNames() Dim Port As String
'Combobox richtig sortieren ComboBox_Comport.Items.Clear()
If ports.Length > 0 Then
' für alle COM-Nr. < 10 ein Leerzeichen einfügen For ii As Integer = 0 To (ports.Length - 1) If CInt(ports(ii).Substring(3)) < 10 Then ports(ii) = "COM " & ports(ii).Substring(3) End If Next
Array.Sort(ports)
' das Leerzeichen in "COM x" wieder entfernen For ii As Integer = 0 To (ports.Length - 1) ports(ii) = "COM" & ports(ii).Substring(3).Trim Next
End If
'In die Combobox übernehmen For Each Port In ports ComboBox_Comport.Items.Add(Port) Next Port
'Buttons setzen Button_Disconnect.Enabled = False Button_Connect.Enabled = False
End Sub
Private Sub ComboBox_Comport_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox_Comport.SelectedIndexChanged
'Comport auswählen If ComboBox_Comport.SelectedItem <> "" Then Button_Connect.Enabled = True End If
End Sub
Private Sub Button_Connect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Connect.Click
'Comport verbinden Try
'Buttons freigeben-/ sperren Button_Connect.Enabled = False Button_Disconnect.Enabled = True ComboBox_Comport.Enabled = False
'Comport Einstellungen SerialPort1.PortName = ComboBox_Comport.Text SerialPort1.BaudRate = 9600 SerialPort1.Open()
Timer1.Enabled = True
Catch ex As Exception
'Fehlermeldung MessageBox.Show("Achtung die Schnittstelle konnte nicht geöffnet werden! " + e.ToString _ , "Ausnahmefehler", MessageBoxButtons.OK, MessageBoxIcon.Error) Button_Connect.Enabled = True Button_Disconnect.Enabled = False ComboBox_Comport.Enabled = True
End Try
End Sub
Private Sub Button_Disconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Disconnect.Click
'Verbindung trennen SerialPort1.Write(ChrW(100)) Timer1.Enabled = False Button_Connect.Enabled = True Button_Disconnect.Enabled = False ComboBox_Comport.Enabled = True SerialPort1.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If SerialPort1.IsOpen Then SerialPort1.Write(ChrW(10)) End If End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If SerialPort1.IsOpen Then SerialPort1.Write(ChrW(20)) End If End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If SerialPort1.IsOpen Then SerialPort1.Write(ChrW(30)) End If End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click If SerialPort1.IsOpen Then SerialPort1.Write(ChrW(40)) End If End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click If SerialPort1.IsOpen Then SerialPort1.Write(ChrW(50))
End If TextBox1.Text = SerialPort1.ReadLine
End Sub End Class
Vielleicht kann mir ja jemand helfen, bin halt noch newbee auf dem Gebiet :-)
Danke im Voraus
Gruß SilentForce
|