【问题标题】:Arduino Blink Testing With C#使用 C# 进行 Arduino 闪烁测试
【发布时间】:2013-12-12 03:06:51
【问题描述】:

我已经能够使用以下代码从 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 没有任何反应。

有人可以帮忙吗?

【问题讨论】:

    标签: c# arduino


    【解决方案1】:

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

    pinMode(LEDPin, HIGH);
    

    写入引脚以将其打开:

    digitalWrite(LEDPin, HIGH);
    

    然后关闭:

    digitalWrite(LEDPin, LOW);
    

    这是一个工作 LED 闪烁 program

    【讨论】:

    • 我对在 Ardunio 代码中设置 pinMode 有点困惑。请你写出对我来说应该是什么?
    • 我写出了你需要的三行代码以及它们的作用。如果您用它们替换代码中的行,它应该可以工作。不过,您似乎对 Arduino 代码的工作原理有一个根本性的误解,所以我建议您找一些基本教程来加快速度。
    【解决方案2】:

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

    pinMode(LED, HIGH);
    

    pinMode(LED, LOW);
    

    然后您可以使用此功能使其点亮或不点亮。这个通常在 loop() 下。

    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");
      }
     }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多