2016-11-27 4 views
0

Javaプログラミング言語を使用してLinux UbuntuのCOMポート経由で変数をArduino UNOに送信する必要があります。ライブラリJSSCまたはRXTX。Javaを使用してubuntuのArduino COMポートに変数を送信する

String text = "turn_on"; 
write(text); 

など:

int num = 1; 
write(num); 

私のArduinoのコードは次のようである:同様

include <SoftwareSerial.h> 

void setup() { 
    pinMode(9, OUTPUT); 
    Serial.begin(57600); 
} 
int st; 
void loop() { 
    st = Serial.read(); 
    if(st == 1){ 
    digitalWrite(9, 1); 
    } 

} 

私はこのコードを試してみました:

import jssc.SerialPort; 
import jssc.SerialPortEvent; 
import jssc.SerialPortEventListener; 
import jssc.SerialPortException; 

public class Test { 

    private static SerialPort serialPort; 

    public static void main(String[] args) { 

     serialPort = new SerialPort("/dev/ttyUSB2"); 
     try { 

      serialPort.openPort(); 

      serialPort.setParams(SerialPort.BAUDRATE_57600, 
           SerialPort.DATABITS_8, 
           SerialPort.STOPBITS_1, 
           SerialPort.PARITY_NONE); 

      serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_RTSCTS_IN | 
              SerialPort.FLOWCONTROL_RTSCTS_OUT); 

      serialPort.addEventListener(new PortReader(), SerialPort.MASK_RXCHAR); 

      serialPort.writeInt(1); 
     } 
     catch (SerialPortException ex) { 
      System.out.println(ex); 
     } 
    } 

    private static class PortReader implements SerialPortEventListener { 

     public void serialEvent(SerialPortEvent event) { 
      if(event.isRXCHAR() && event.getEventValue() > 0){ 
       try { 

        String data = serialPort.readString(event.getEventValue()); 

        serialPort.write(1); 
       } 
       catch (SerialPortException ex) { 
        System.out.println(ex); 
       } 
      } 
     } 
    } 
} 

それを行うには?

+2

あなたがすでに試したことと研究の結果を説明してください。 (あなたはそれを求める前にあなたの問題の解決法を探しましたか?そうではありませんか?)Stack Overflowは基本的な検索技術を置き換えるものではありません。 – MikeJRamsey56

+0

ああ...すみません。私は私の質問を書き換えます。今すぐ見ることができます –

答えて

0

シリアルポートへの書き込み後にスリープ状態にしてください。フロー制御のためにArduinoを設定してください。最初に通常の読み書きが動作しているかどうかを確認し、eventListenerへのアプローチ方法はjavaがarduinoに書き込み、arduinoがarduinoとjava側からデータを読み込んで読み込むことができるはずです。これは多くの可能性を排除します。さらに、SerialPunditやgithubのfazecastのような他のライブラリを並行して試してみてください。

関連する問題