2014-01-26 3 views
1

I2c를 통해 라즈베리 PI에서 Arduino로 데이터를 보내려고합니다.
독립 실행 형 Java 응용 프로그램에서 코드를 실행하면 아무런 문제없이 데이터를 보내고받을 수 있습니다. 코드에서 원하는 결과를 얻습니다. 부두 Pi4J I2C 오류 oppening/dev/i2c-1

public static void main(String[] args) throws Exception { 

    // get I2C bus instance 
    final I2CBus bus = I2CFactory.getInstance(I2CBus.BUS_1); 
    I2CDevice arduino = bus.getDevice(0x04); 

    byte[] buffer = new byte[1]; 
    buffer[0] = 1; 
    arduino.write(buffer, 0, buffer.length); 

    Thread.sleep(100); 
    buffer[0] = 0; 
    int number = arduino.read(buffer, 0, 1); 
} 

그런 다음 나는 동일한 코드를 시도하지만,이 시간은은 라즈베리 파이에 부두를 사용하여, 서블릿 내부에, 나는 다음과 같은 오류 얻을 :

java.io.IOException: Cannot open file handle for /dev/i2c-1 got -1 back. 
    at com.pi4j.io.i2c.impl.I2CBusImpl.<init>(I2CBusImpl.java:96) 
    at com.pi4j.io.i2c.impl.I2CBusImpl.getBus(I2CBusImpl.java:70) 
    at com.pi4j.io.i2c.I2CFactory.getInstance(I2CFactory.java:56).. 

사람이있을 수 있습니다 알고 있나요을 사고?

감사합니다,

답변

1

가 하나의 경우에 대비하여 프로세스가 sudo는 권한을 가지고 있으며, 다른 경우에는하지 않는 것이있을 수 있을까요?

0

대답은 버스는 그래서이 시도 반전, 어떤 경우에는

I2CFactory.getInstance(I2CBus.BUS_0); 

, 나는 거기 :)

+0

도움이되기를 바랍니다. 나는 대답을했다. 대답이라고 생각하지 않는다면 주석이므로 삭제하십시오. – Drew

+0

몇 가지 설명을 추가하십시오. –