オンラインで見つけたコードを使用して、ラズベリーパイでLEDライトを点滅させようとしています(知っています-最高ではありませんが、チュートリアルサイトでした)
次の python コードを実行すると、LED ライトが点滅します。
import RPi.GPIO as GPIO
import time
pinNum = 4
GPIO.setmode(GPIO.BCM) #numbering scheme that corresponds to breakout board and pin layout
GPIO.setup(pinNum,GPIO.OUT) #replace pinNum with whatever pin you used, this sets up that pin as an output
#set LED to flash forever
while True:
GPIO.output(pinNum,GPIO.HIGH)
time.sleep(0.5)
GPIO.output(pinNum,GPIO.LOW)
time.sleep(0.5)
同じことを行うはずの次のJavaコードを実行すると、コンソールに表示されるのは、追加した印刷ステートメントだけです-点滅するライトはありません
import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;
public class ControlGpioExample {
public static void main(String[] args) throws InterruptedException {
final GpioController gpio = GpioFactory.getInstance();
final GpioPinDigitalOutput ledPin = gpio.provisionDigitalOutputPin(RaspiPin
.GPIO_04, "MyLED", PinState.LOW);
System.out.println("Started");
try
{
while(true)
{
System.out.println(ledPin==null);
System.out.println("Looping pin now");
ledPin.high();
System.out.println("Set high called");
Thread.sleep(2000);
ledPin.low();
System.out.println("Set low called");
Thread.sleep(2000);
}
}
catch(Exception ex)
{
gpio.shutdown();
ex.printStackTrace();
}
}
}
これがなぜなのか誰か知っていますか?論理的には同じことをするべきだと思います-両方ともpiから同じGPIOピン番号を使用しています
ご協力いただきありがとうございます