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); } } }
ま、こんな感じですね。
今作ったのもありますが、これからちょっぴりずつサンプルをあげていきますね