使用C#进行Arduino闪烁测试

时间:2013-12-12 03:06:51

标签: c# arduino

我已经能够从C#的Ardunio Uno获得一个“反应”光,其代码如下:

using System.IO.Ports;

private void OnButton_Click(object sender, EventArgs e)
{
   SerialPort serial = new SerialPort("COM7", 9600)
   serial.Open();
   serial.WriteLine("A");
   serial.Close();
}

我还设置了一个“关闭”按钮,但是使用WriteLine(“a”)。

我使用默认的Windows Ardunio软件将以下代码上传到Ardunio Uno:

int message = 0;
int LEDPin = 13;
int LED = 0;

void setup()
{
 Serial.begin(9600);
}

void loop()
{
 if (Serial.available() > 0)
 {
  message = Serial.read();
  if (message == 'A')
  {
   LED = 255;
   Serial.println("LED on");
  }
  if (message == 'a')
  {
   LED = 0;
   Serial.println("LED off");
  }
 }
}

现在我已将Adrunio代码放入Uno设备,我希望这可以打开和关闭板载引脚13 LED,但没有任何反应。

在Uno板上,当按钮点击发生时,有一个小灯在“TX”和“RX”旁边闪烁(所以我知道有什么东西被送到了电路板......)。但是板载LED没有任何反应。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

设置名为LED的变量根本不会影响LED。您需要将引脚配置为输出:

pinMode(LEDPin, HIGH);

写入引脚将其打开:

digitalWrite(LEDPin, HIGH);

和关闭:

digitalWrite(LEDPin, LOW);

这是一个工作LED闪烁program

答案 1 :(得分:0)

将LED等同于某个数字不起作用。首先,您需要使用此功能将PIN配置为OUTPUT或INPUT。你基本上把这行代码放在setup()下。

pinMode(LED, HIGH);

pinMode(LED, LOW);

然后,您可以使用此功能使其亮起或不亮。这个通常在循环()下。

digitalWrite(LEDPin, HIGH);

digitalWrite(LEDPin, LOW);

你的LED变量在这里是没用的,除非你有一些想法使用它没有说明。

int message = 0;
int LEDPin = 13;
int LED = 0;

void setup()
{
 Serial.begin(9600);
 pinMode(LEDPin, OUTPUT);     
}

void loop()
{
 if (Serial.available() > 0)
 {
  message = Serial.read();
  if (message == 'A')
   {
   LED = 255;
   digitalWrite(LEDPin, HIGH);
   Serial.println("LED on");
  }
  if (message == 'a')
  {
   LED = 0;
   digitalWrite(LEDPin, LOW);
   Serial.println("LED off");
  }
 }
}