2016-11-27 9 views
0

Java 프로그래밍 언어를 사용하여 Linux 우분투의 COM 포트를 통해 변수를 Arduino UNO에 보내야합니다. 라이브러리 JSSC 또는 RXTX. 마찬가지로 :자바를 사용하여 우분투의 Arduino COM 포트에 변수를 보냄

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

과 같은 :

int num = 1; 
write(num); 

내 아두 이노 코드는 다음과 같다 :

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

어떻게 그것을 할 : 나는이 코드를 시도

include <SoftwareSerial.h> 

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

} 

?

+2

이미 시도한 내용과 연구 결과를 설명하십시오. (질문하기 전에 문제에 대한 해결책을 찾지 않았습니까? Stack Overflow는 기본적인 검색 기술을 대체하기위한 것이 아닙니다.) – MikeJRamsey56

+0

아 ... 미안합니다. 나는 내 질문을 다시 써. 이제보실 수 있습니다. –

답변

0

직렬 포트에 기록한 후에 절전 모드를 시도하십시오. 흐름 제어를 위해 Arduino를 구성하십시오. 먼저 정상적인 읽기 및 쓰기가 작동하는지 확인한 다음 eventListener 접근 방식으로 이동하면 java가 arduino에 쓰고 arduino가 arduino 및 java 측면에서 데이터를 읽을 수 있으면 읽을 수 있어야합니다. 이것은 많은 가능성을 제거 할 것입니다. SerialPundit이나 github의 fazecast와 같은 다른 라이브러리를 병렬로 사용해보십시오.