-
Notifications
You must be signed in to change notification settings - Fork 0
/
Blinklicht_mit_Schalter.java
64 lines (52 loc) · 2.01 KB
/
Blinklicht_mit_Schalter.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalInput;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinPullResistance;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;
import com.pi4j.io.gpio.event.GpioPinDigitalStateChangeEvent;
import com.pi4j.io.gpio.event.GpioPinListenerDigital;
import com.pi4j.io.gpio.trigger.GpioSetStateTrigger;
public class Blinklicht_mit_Schalter {
static boolean status;
public static void main(String[] args) throws InterruptedException {
// create gpio controller
final GpioController gpio = GpioFactory.getInstance();
// Pin #1 als Ausgang definieren
final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01, "MyLED", PinState.HIGH);
// Pin #4 als Eingang definieren mit Pull-Down Widerstand
final GpioPinDigitalInput input = gpio.provisionDigitalInputPin(RaspiPin.GPIO_04, PinPullResistance.PULL_DOWN);
status=false;
//Listener zum Überprüfen der Spannung an Pin #4
input.addListener(new GpioPinListenerDigital() {
@Override
public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event) {
//System.out.println(event.getPin() + " = " + event.getState());
status=!status;
if (status==true) {
System.out.println("an"); //Schreibe "an", wenn Spannung anliegt
} else {
System.out.println("aus");//Schreibe "aus", wenn keine Spannung anliegt
}
}
});
Thread.sleep(500);
while(true) {
while(status==false) {
// Pin #1 deaktivieren
pin.low();
Thread.sleep(500);
// Pin #1 wieder aktivieren
pin.high();
Thread.sleep(500);
/*
Alternative wäre:
pin.pulse(500,true);
Thread.sleep(500);
*/
}
Thred.sleep(500);
}
}
}