2009-08-29 7 views
3

나는 Arduino Duemilanove USB를 가지고 있습니다. 나는 하나의 LED가 하나의 포트에 연결되어있다. 이 LED를 켜기 위해 C#을 사용하고 싶습니다. 이 작업을 수행하는 방법에 대한 간단한 예가 있습니까? 가장 기본적인 on/off 코드는 내가 찾고있는 코드입니다.C#을 사용하여 단일 Arduino 포트를 켜는 방법은 무엇입니까?

참고로, Arduino와 .NET 통신을 위해 작성된 라이브러리가 있다는 것을 알고 있습니다. 내가 찾은 모든 것들은 Firmata을 사용하며, 나는 Arduino에서 Firmata 라이브러리를 전혀 사용할 수 없으므로 원시 직렬 명령만을 사용하여 간단한 예제를 찾고있다.

+0

를 사용하는 이유 C#을? 그리고 사용하는 컴파일러는 무엇입니까?왜 그것과 함께 기본 언어 (C 변형)를 사용하지 않는가? – Dan

+0

기존 .NET 응용 프로그램과 통합하려고하기 때문에. Arduino IDE 나 언어에 의존하고 싶지 않습니다. –

+0

저는 .NET과 Arduino 언어 간의 인터페이스가 매우 쉽다는 것을 확신합니다. 전에 마이크로 컨트롤러를 프로그래밍 했습니까? – Dan

답변

0

동영상 C# with Arduino이 (가) 도움이 될 수있는 정확한 정보를 제공하고 있으며 소스 코드도 있습니다.

-2

나는 Firmata 프로젝트가 당신이 찾고있는 것이라고 생각합니다.

Firmata은 호스트 컴퓨터의 소프트웨어에서 마이크로 컨트롤러와 통신하기위한 일반 프로토콜입니다. 모든 호스트 컴퓨터 소프트웨어 패키지로 작업하기위한 것입니다. 지금은 여러 언어로 일치하는 개체가 있습니다. 이 프로토콜을 사용하는 다른 소프트웨어에 대한 객체를 쉽게 추가 할 수 있습니다. 기본적으로이 펌웨어는 호스트 소프트웨어에서 Arduino와 통신하기위한 프로토콜을 설정합니다. 목표는 사람들이 호스트 컴퓨터의 소프트웨어에서 Arduino를 완전히 제어 할 수있게하는 것입니다.

또한 자료 :

Firmata.Net Project

Arduino/firmata library for Visual C# .NET

+0

자동 생성 된 응답입니까? 나는 팔타타가 Arduino와 전혀 작동하지 않는다고 말했다. – mrduclaw

+0

Firmata가 언급되었지만 OP가 작동하지 못해 해결책을 무효화하지 못했기 때문에. 내 대답은 참고 용일 뿐이며 mrduclaw가 아니라면 다른 사람들에게 유용 할 수 있습니다. – Andrew

+1

@Andrew, OP의 질문에 답하려고하는 대신에, 연극 효과에 대해 언급 한 모든 것을 다시 말하면됩니다. 죄송 합니다만, OP가 실제로이 문제를 해결하는 일반적인 방법으로 언급 한 사실을 감안할 때 여전히이 답변의 유용성을 알 수 없습니다. 그래서 다른 사람이 비슷한 문제가 있다면, 그들은 모두 그의 질문에서이 대답을 얻을 준비가되었습니다. 게다가 여기에있는 질문에 대해서도 대답하지 않으려 고합니다. – mrduclaw

1

대신 기본 115200의 57600으로 전송 속도를 설정해보십시오, 그리고 그 희망 Firmata이 Duemilanove와 함께 작업을 진행해야한다. 솔직히 여전히 Python 용 Firmata 라이브러리를 선택하여 프로토콜을 사용하는 방법을 알기 때문에 Arduino를 인터페이스로 사용하지 않는 프로젝트에서 직선 직렬 통신을 통해 사용할 수 있습니다.

그러나 이것은 Firmata가 작동하는 것을 의미합니다 (저항이 가장 적은 경로).

0

PC 측에서는 COM 포트와 통신하는 것이 매우 간단합니다. 당신이 필요로하는 것입니다 : 아두 이노에 그런

System.IO.Ports.SerialPort port = new SerialPort("COM4"); //COM4 is my port. You can use yours. 
port.Write(new byte[]{1},0,1); 
port.Close(); 

: 그래서

if (Serial.available() > 0) 
    { 
     val = Serial.read(); 
     if(val==1) 
     { 
      //LED ON 
     } 
     if(val==0) 
     { 
      //LED OFF 
     } 
    } 

, 당신은 LED 것 점등 포트 1을 작성하고이 0 인 경우에 LED가 꺼집니다있다.

-1

사용 Zelectro .NET 래퍼 아두 이노

예 : 시스템을 사용하여 ; using System.Threading; Zelectro를 사용하는 ;

namespace ZelectroDemo 
{ 
    public class Test3Program : ArduinoProgram 
    { 
     private LED led; 

     public override void setup() 
     { 
      led = new LED(Pin.PWM11); 
     } 

     public override void loop() 
     { 
      led.Blink(50); 
     } 
    } 
} 

https://github.com/d3n4/Zelectro

+0

스택 오버플로에 오신 것을 환영합니다. 이것이 자기 홍보 인 경우 [그렇게 말하십시오] (http://meta.stackexchange.com/questions/57497/limits-for-self-promotion-in-answers/59302#59302). – michaelb958

관련 문제