2016-05-11 21 views
-1

ich bin neu in dieser Community, und ich habe ein großes Interesse an Programmierung sowie Elektronik. Also habe ich ein Problem mit der Kommunikation zwischen Arduino und C# Windows-Anwendung. Ich weiß, wie man Daten von der seriellen Schnittstelle in der Konsolenanwendung automatisch aktualisiert, aber in der Formanwendung für mich ist es ziemlich schwierig. Also .. in arduino habe ich eine grundlegende Skizze zum Lesen eines analogen Signals von einem Potentiometer, und in einer C# -Anwendung habe ich eine ComboBox für die Auswahl eines Ports und eine CheckBox, die eine while-Schleife macht. In einer while-Schleife habe ich Befehle, um das Signal zu lesen und einem Benutzer anzuzeigen. Und sorry für mein Englisch, ich bin es nicht sehr gut .. Code:Arduino Kommunikation mit C#

Namespace arduinoRead { public partial class Form1: Form { public Form1() { InitializeComponent(); }

private void Form1_Load(object sender, EventArgs e) 
    { 

     string[] ports = SerialPort.GetPortNames(); 
     serialPort1.PortName = ports.ToString(); 
     comboBox1.Items.AddRange(ports); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     string Selected1 = comboBox1.SelectedItem.ToString(); 
     MessageBox.Show(String.Format("Jūs esat izvēlējies: '{0}' Portu", Selected1)); 
     serialPort1.PortName = Selected1; 
     serialPort1.Open(); 
    } 

    private void button3_Click(object sender, EventArgs e) 
    { 
     Form2 f2 = new Form2(textBox1.Text); 
     f2.Show(); 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     while (checkBox1.Checked) 
     { 
      label1.Text = serialPort1.ReadLine(); 
     } 
    } 
} 

}

+0

1. Ich kann keine while-Schleife sehen. 2. Was bedeutet "es schwierig"? Sie sollten etwas Code zur Verfügung stellen, wie weit Sie haben und sicher ein bisschen mehr Details über 'was ist falsch '. – C4u

+0

Abgesehen davon, was zu tun ist: Wenn es über die serielle Schnittstelle funktioniert, was ist der Deal mit einer Forms-App? Sie können die Konsole in einer Formular-App genauso gut in einer Konsolen-App verwenden !? – C4u

+0

Sie müssen eine bestimmte Frage mit Codebeispielen stellen. Es gibt hier nicht wirklich viel, mit dem man zusammenarbeiten kann, um dir zu helfen. Sie können auch http://arduino.stackexchange.com/ – asawyer

Antwort

1

ich denke, es wäre besser, wenn Sie Ihren Code schreiben. Im Allgemeinen sollten Sie in C# Form Anwendung benötigen eine Instanz von seriell Port

 SerialPort COM = new SerialPort("COM3", 115200); 
     COM.Open(); 

Dazu COM.Write Bytes lesen zum Hafen, und COM.Read senden verwenden zu erstellen. Auf der Arduino-Seite verwenden Sie Serial.begin(115200) (stellen Sie sicher, dass die Geschwindigkeit übereinstimmt) und dann Serial.read und Serial.print.

Sie können auch einen Blick auf Windows Remote Arduino Projekt, mit dem Sie Eingänge/Ausgänge von Arduino von C# Programm auf natürliche Weise steuern können. Sie müssen Firmata Skizze auf Ihrem Arduino, und dann Windows Remote Arduino-Bibliothek behandelt alle seriellen Kommunikation. Siehe das Beispielprojekt here.

+0

nach dem Spielen um den Code, ich habe es nahe genug an die Echtzeit gemacht, und jetzt funktioniert alles so, wie ich wollte. :) Vielen Dank! – equin0xy

+0

@ equin0xy Ich bin froh, dass es hilfreich war. Ich schlage vor, dass Sie die Antwort auch als richtige Antwort markieren, damit sie für andere besser sichtbar und hilfreich ist. –

Verwandte Themen