Pi4JでRaspberry pi3でのプッシュボタン認識サンプル
Raspberry piの Javaのサンプルをいろいろ作っていますが、今回初ですな。
今回は、ボタンを認識する方法はどうしようかなぁぁーなんて思って調査してみました。
ソースはこちら : https://github.com/wataru775/sample-p4j-button
回路図は…

ここから拝借 : https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/robot/buttons_and_switches/
3Vを開閉しているので下かな。抵抗も10kΩ , 1kΩをそんな感じですね。
package org.mmpp.sample.pi4j;
import com.pi4j.io.gpio.*;
import com.pi4j.io.gpio.event.GpioPinDigitalStateChangeEvent;
import com.pi4j.io.gpio.event.GpioPinListenerDigital;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
private static GpioController gpio;
private static GpioPinDigitalInput button;
private static void initialize() {
gpio = GpioFactory.getInstance();
// gpio pin #02 as an input pin with its internal pull down resistor enabled
button = gpio.provisionDigitalInputPin(RaspiPin.GPIO_02, PinPullResistance.PULL_DOWN);
// set shutdown state for this input pin
button.setShutdownOptions(true);
// create and register gpio pin listener
button.addListener(new GpioPinListenerDigital(){
@Override
public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event)
{
// display pin state on console
System.out.println(" Switch change detected: " + event.getPin() + " = " + event.getState());
}
});
}
public static void main(String[] args) throws Exception {
System.out.println("<--Pi4J--> GPIO Listen Example ... started.");
initialize();
// keep program running until user aborts (CTRL-C)
while(true) {
Thread.sleep(1500);
}
}
}
ま、こんな感じですね。
今作ったのもありますが、これからちょっぴりずつサンプルをあげていきますね
