某月某日,突发奇想买来一个树莓派做点东西,先准备用树莓派做一个LED呼吸灯,因为这学期学的JAVA所以决定用JAVA来写这个程序。
PI4J安装教程不再赘述,网上有很多教程。程序代码如下:
import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinPwmOutput;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;
public class Main {
static void run(){
try{
GpioController gpio = GpioFactory.getInstance();
GpioPinPwmOutput pin = gpio.provisionPwmOutputPin(RaspiPin.GPIO_26, "MyLED", 50);
pin.setShutdownOptions(true, PinState.LOW);
while(true) {
for(int i=0; i<=50; i++) {
pin.setPwm(50-i);
Thread.sleep(50);
}
for (int i=0; i<=50; i++) {
pin.setPwm(i);
Thread.sleep(50);
}
}
}
catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args){
Main.run();
}
}
效果
LED小灯泡出现呼吸灯效果
注意
- 在本程序里,程序控制GPIO26端口连接的LED闪烁。程序中setPwm最高可以设置成100。
- 树莓派并非所有GPIO端口都可以进行PWM操作(虽然说可以使用软件模拟PWM)但是对于这个程序来说,想要LED灯实现渐变需要连接到特定的端口。
26针——GPIO.1
40针——GPIO.1 GPIO.23 GPIO.24 GPIO.26