Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.pi4j.io.gpio.GpioController;
- import com.pi4j.io.gpio.GpioFactory;
- import com.pi4j.io.gpio.GpioPinDigitalInput;
- import com.pi4j.io.gpio.PinPullResistance;
- import com.pi4j.io.gpio.RaspiPin;
- import com.pi4j.io.gpio.event.GpioPinListener;
- import com.pi4j.io.gpio.event.GpioPinDigitalStateChangeEvent;
- import com.pi4j.io.gpio.event.GpioPinListenerDigital;
- /**
- * This example code demonstrates how to setup a listener
- * for GPIO pin state changes on the Raspberry Pi.
- *
- * @author Robert Savage
- */
- public class ListenGpioExample
- {
- public static void main(String args[]) throws InterruptedException
- {
- System.out.println("<--Pi4J--> GPIO Listen Example ... started.");
- // create gpio controller
- GpioController gpio = GpioFactory.getInstance();
- // provision gpio pin #02 as an input pin with its internal pull down resistor enabled
- GpioPinDigitalInput myButton0 = gpio.provisionDigitalInputPin(RaspiPin.GPIO_16, "MyButton-0", PinPullResistance.PULL_UP);
- GpioPinDigitalInput myButton1 = gpio.provisionDigitalInputPin(RaspiPin.GPIO_00, "MyButton-1", PinPullResistance.PULL_UP);
- GpioPinDigitalInput myButton2 = gpio.provisionDigitalInputPin(RaspiPin.GPIO_01, "MyButton-2", PinPullResistance.PULL_UP);
- GpioPinDigitalInput myButton3 = gpio.provisionDigitalInputPin(RaspiPin.GPIO_02, "MyButton-3", PinPullResistance.PULL_UP);
- GpioPinDigitalInput myButton4 = gpio.provisionDigitalInputPin(RaspiPin.GPIO_03, "MyButton-4", PinPullResistance.PULL_UP);
- GpioPinDigitalInput myButton5 = gpio.provisionDigitalInputPin(RaspiPin.GPIO_04, "MyButton-5", PinPullResistance.PULL_UP);
- GpioPinDigitalInput myButton6 = gpio.provisionDigitalInputPin(RaspiPin.GPIO_05, "MyButton-6", PinPullResistance.PULL_UP);
- GpioPinDigitalInput myButton7 = gpio.provisionDigitalInputPin(RaspiPin.GPIO_06, "MyButton-7", PinPullResistance.PULL_UP);
- // create and register gpio pin listener
- myButton0.addListener(new GpioExampleListener());
- myButton1.addListener(new GpioExampleListener());
- myButton2.addListener(new GpioExampleListener());
- myButton3.addListener(new GpioExampleListener());
- myButton4.addListener(new GpioExampleListener());
- myButton5.addListener(new GpioExampleListener());
- myButton6.addListener(new GpioExampleListener());
- myButton7.addListener(new GpioExampleListener());
- System.out.println(" ... complete the GPIO #02 circuit and see the listener feedback here in the console.");
- // keep program running until user aborts (CTRL-C)
- for (;;)
- {
- Thread.sleep(500);
- }
- }
- }
- /**
- * This class implements the GPIO listener interface
- * with the callback method for event notifications
- * when GPIO pin states change.
- *
- * @see GpioPinListener
- * @author Robert Savage
- */
- class GpioExampleListener implements GpioPinListenerDigital
- {
- @Override
- public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event)
- {
- // display pin state on console
- System.out.println(" --> GPIO PIN STATE CHANGE: " + event.getPin() + " = "
- + event.getState());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement