2017-12-28 66 views
0

Java로 GUI를 작성하고 싶습니다. 거기에는 버튼이 있습니다. 버튼을 누르면 Arduino에 연결된 다이오드가 켜집니다. RXTXcomm.jar 라이브러리를 사용하고 있습니다.Java를 사용하여 Arduino 메가 다이오드를 어떻게 밝 힙니 까?

지금은 Arduino가 연결되어있는 방식이므로 COM21 포트를 표시하는 코드를 작성했습니다. 여기 코드는 다음과 같습니다

지금 예를 들면 핀 1에 연결된 다이오드를 점화하는 방법을 부탁드립니다
private String name; 
private String portName; 
private CommPortIdentifier portIdentifier = null; 
private boolean staPort; 
private void getPorts() throws PortInUseException { 
    List <String> list = new ArrayList(); 
    CommPortIdentifier serialPortId; 
    Enumeration enumComm; 
    enumComm = CommPortIdentifier.getPortIdentifiers(); 
    while (enumComm.hasMoreElements()) { 
     serialPortId = (CommPortIdentifier) ​​enumComm.nextElement(); 
     name = serialPortId.getName(); 
     if ("COM21" .equals (name)) { 
      if (serialPortId.isCurrentlyOwned()) { 
       System.out.println ("Port is open"); 
      } Else { 
       serialPortId.open (name, WIDTH); 
      } 
     } else { 
      System.out.println ("error"); 
     } 
    } 
} 

? 어떤 방법을 사용합니까? 나는 Arduino Mega를 사용한다. 불행히도 내 문제와 일치하는 특정 답변이 주제에 대한 몇 가지 게시물을 찾았습니다. 도움, 자료 또는 링크에 감사드립니다.

답변

1

이 작업을 수행하려면 두 가지 프로그램이 필요하다는 점을 이해하십시오. 첫 번째는 Java 프로그램과 유사합니다. 그러나 두 번째는 Arduino 자체에서 실행되는 프로그램입니다.

여기에 link은 아이디어를 제공합니다. 이 코드는 링크가 오래되면 다음과 같이 반복됩니다.

int led = 13; // Pin 13 

void setup() 
{ 
    pinMode(led, OUTPUT); // Set pin 13 as digital out 

    // Start up serial connection 
    Serial.begin(9600); // baud rate 
    Serial.flush(); 
} 

void loop() 
{ 
    String input = ""; 

    // Read any serial input 
    while (Serial.available() > 0) 
    { 
     input += (char) Serial.read(); // Read in one char at a time 
     delay(5); // Delay for 5 ms so the next char has time to be received 
    } 

    if (input == "on") 
    { 
     digitalWrite(led, HIGH); // on 
    } 
    else if (input == "off") 
    { 
     digitalWrite(led, LOW); // off 
    } 
} 

이것은 Arduino에서 실행해야하는 C 코드입니다. 이 경우, 보시다시피, 핀 13을 사용하고 있습니다.이 부분을 작동 시키려면 Arduino 개발 환경 설정이 필요합니다. Arduino IDE를 설정하는 방법은 Arduino Software 페이지를 참조하십시오. Netbeans IDE와는 다른 개념이지만 개념은 비슷합니다.

Arduino에 스케치를 업로드 한 후 Arduino 코드에 표시된대로 9600 보오드로 스케치를 연결합니다. 자바 코드는 통신 속도와 같은 통신 매개 변수를 설정하지 않으므로이를 업데이트해야합니다. RXTX에서 직렬 통신 매개 변수를 설정하기위한 몇 가지 링크를 찾았습니다.

행운을 빌어 요 - 처음에는 아주 좋아 보이지만별로 나쁘지는 않습니다.