2017-12-28 23 views
0

JavaでGUIを記述したいと思います。ここにはボタンがあります。ボタンを押すとArduinoに接続されたダイオードが点灯します。私はRXTXcomm.jarライブラリを使用しています。Javaを使ってArduino Mega Diodeをどのように点灯させますか?

今のところ、私はArduinoがどのように接続されているのかということで、COM21ポートを表示するコードを書いています。コードは次のとおりです。

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

ここで、ピン1に接続されたダイオードをどのように点火するかについて聞きたいと思います。どのような方法を使用するのですか?私はArduinoメガを使用します。私はこの問題に関するいくつかの記事を見つけました。残念ながら、私の問題に合った具体的な答えはありませんでした。私は、あらゆる助け、材料、またはリンクに感謝します。

答えて

1

これを行うには、2つのプログラムが必要であることを理解してください。最初はあなたのJavaプログラムに似ています。しかし、2番目のプログラムは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ボーに接続します。あなたのJavaコードは通信速度のような通信パラメータを設定していないので、それを更新する必要があります。 RXTXのシリアル通信パラメータを設定するためのリンクがいくつか見つかりました。

幸運 - 最初はとても気に入っていたようですが、それほど悪くはありません。

関連する問題