我已经能够从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没有任何反应。
有人可以帮忙吗?
答案 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");
}
}
}