2013-12-12 2 views
0

я был в состоянии получить «реакции» свет от моей Ardunio Uno из C# с помощью следующего кода:Arduino Blink Тестирование с C#

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

Я также установки кнопки «Off» с тем же, но с помощью WriteLine («a»).

У меня есть следующий код загружен на Ardunio Uno с по умолчанию программного обеспечения в ОС Windows Ardunio:

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, я ожидал, что это должно включить бортовой pin 13 LED включен и выключен, но ничего не происходит.

На плате Uno рядом с «TX» и «RX» появляется мигающий свет, когда нажимается кнопка (так что я знаю, что что-то посылается на доску ...). Но ничего не происходит с встроенным светодиодом.

Помогите пожалуйста?

ответ

1

Установка переменной, называемой LED, вообще не влияет на светодиод. Вам нужно настроить булавку в качестве вывода:

pinMode(LEDPin, HIGH); 

записи на булавку, чтобы включить его:

digitalWrite(LEDPin, HIGH); 

и выключение:

digitalWrite(LEDPin, LOW); 

Вот работающий светодиод мигает program

+0

Я немного смущен настройкой настройки pinMode в коде Ardunio. Не могли бы вы, пожалуйста, написать, что это будет для меня, пожалуйста? –

+0

Я написал три строки, которые вам нужны, и что они делают. Если вы замените строки в своем коде ими, это должно сработать. У вас, похоже, есть фундаментальное непонимание того, как работает код Arduino, поэтому я бы посоветовал вам найти некоторые базовые обучающие программы, чтобы ускориться. – TheEvilPenguin

0

Приравнивание светодиода к определенному номеру просто не работает. Сначала вам нужно настроить 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"); 
    } 
} 
} 
Смежные вопросы