Я пытаюсь получить код на Arduino для связи с моей программой на C#, чтобы включить и выключить встроенный светодиод (контакт 13). Это код, который я загрузил в Arduino:Включение Arduino LED
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();
}
}
Я нашел и скачал this code и получил светодиод работать! (Hooray!)
Я попытался перепроектировать код в свой собственный, с простым OnButton и OffButton, но это не сработает. Может кто-то, пожалуйста, взгляните на приведенный ниже код и скажите мне, не хватает ли я чего-то очевидного.
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();
}
Любая помощь была бы принята с благодарностью. Я вижу, когда я нажимаю кнопки C#, на которые Ardiuno получает какую-то команду, и он работает с кодом, который я загрузил в ссылке выше ... Я вытягиваю свои волосы ...
Сколько раз вы на самом деле установление соединения, что вы не завершающие? –
К сожалению, забыли ввести строку Terminate. Я тестировал это без него. –
Я только что добавил в полный код, включая terminateConnection(); –