Drehen Auf Arduino-LED

Ich werde versuchen, code auf einem Arduino kontaktiert zu werden, von meinem C# - Programm, ein-und ausschalten der onboard-pin (13) GEFÜHRT. Dies ist der code, den ich geladen habe in den Arduino:

void setup()
{
 Serial.begin(9600);
 pinMode(13, OUTPUT);
}
void loop()
{
 if (Serial.available() > 0)
 {
  int b = Serial.read();
  if (b == 1)
  {
   digitalWrite(13, HIGH);
  }
  else if (b == 0)
  {
   digitalWrite(13, LOW);
  }
  Serial.flush();
 }
}

Habe ich gefunden und heruntergeladen dieser code und habe die LED an die Arbeit! (Hurra!)

Ich habe versucht, reverse Engineering den code in meinem eigenen, mit einem einfachen OnButton und OffButton, aber es wird nicht funktionieren. Kann mir bitte jemand einen Blick auf den code unten, und sagen Sie mir, wenn ich etwas fehlt offensichtlich.

using System.IO;
using System.IO.Ports;

public static System.IO.Ports.SerialPort serialPort1;
private delegate void LineReceivedEvent(string line);

private void establishConnection()
{
   System.CompnentModel.IContainer components = new System.ComponentModel.Container();
   serialPort1 = new System.IO.Ports.SerialPort(components);
   serialPort1.PortName = "COM7";
   serialPort1.BaudRate = 9600;
   serialPort1.DtrEnable = true;
   serialPort1.Open();
}
private void terminateConnection()
{
   serialPort1.Close();
}
private void OnButton_Click(object sender, EventArgs e)
{
   establishConnection();
   serialPort1.Write(new byte[] { Convert.ToByte("1") }, 0, 1);
   terminateConnection();
}
private void OffButton_Click(object sender, EventArgs e)
{
   establishConnection();
   serialPort1.Write(new byte[] {Convert.ToByte("0") }, 0, 1);
   terminateConnection();
}

Jegliche Hilfe würde sehr geschätzt werden. Ich kann sehen, wenn ich auf die C# - Tasten, die Ardiuno Empfang irgendeine Art von Befehl, und es funktioniert mit dem code, den ich heruntergeladen habe, in den link oben... ich ziehe mir die Haare aus...

  • Wie oft sind Sie eigentlich der Aufbau einer Verbindung nicht beenden?
  • Oops, vergessen haben, geben Sie in das Terminate-Linie gibt. Ich wurde getestet, mit heraus, es.
  • Ich habe gerade in den vollständigen code einschließlich terminateConnection();
  • ... so, jetzt sind Sie sich bewusst, dass Sie gerade schlecht reimplementiert eine using Aussage?
  • Brauche ich nicht das System.IO; wenn ich mit System.IO.Ports ?
  • msdn.microsoft.com/en-us/library/yh598w02.aspx
  • Tut mir Leid, ich verstehe nicht.
  • SerialPort implementiert IDisposable. Wenn du gehst, um eine Verbindung herzustellen in der Weise, die Sie derzeit tun, sollten Sie nicht haben eine serialPort1 Variablen auf Klassenebene sondern ändern Ihren code so, dass using (var serialPort = EstablishConnection()) { ... } arbeiten.
  • Versuchen Sie die Verbindung bereits geöffnet ist. In anderen Worten, bewegen Sie establishConnection(); außerhalb der Schaltfläche und terminateConnection(); in die form schließen.
  • DANKE FELICEM!!! Das klappte!

InformationsquelleAutor The Woo | 2013-12-12
Schreibe einen Kommentar