我现在正在研究一个项目,我需要在java中读取raspberry pi上的pin的值。
我使用光传感器。根据它的价值,当它是白天,我什么也不做,如果是晚上,我需要打开一些LED。
我已经知道如何打开或关闭LED,因为引脚设置为输出,但我真的不知道如何从引脚读取值(设置为输入)。
我一直在寻找pi4j网站,使用这些例子,但我发现的唯一一件事是听一个事件。(这与我想要的并不相符,但我没有成功地将它改编为我的情况)。
我想恢复此引脚的值(高或低),以便能够比较它(如果状态==高,打开LED,否则什么都不做)。
感谢您的关注,如果您需要任何进一步的信息,请随时告诉我。
答案 0 :(得分:0)
我终于找到了一种方法来做我想做的事。
它不是很干净",但它有效。我在这里发布它,如果它可以帮助其他人。 最后这很容易......我希望它会有所帮助。
import com.pi4j.io.*;
import com.pi4j.wiringpi.Gpio;
import com.pi4j.wiringpi.GpioUtil;
public class Test {
public static void main(String args[]) throws InterruptedException {
// create gpio controller
final GpioController gpio = GpioFactory.getInstance();
Gpio.pinMode (3, Gpio.INPUT) ;
if (Gpio.digitalRead(3) == 0){ // it is day, so doesn't need LEDs
System.out.println("Day, LEDs are not switched on");
}else{ // it is night, LEDs are needed
System.out.println("Night, LEDs are switched on");
}
}
}
答案 1 :(得分:-1)
我认为从引脚读取值应该很容易实现。
检查RaspPi的规范,该规范描述了什么状态deasit计为HIGH。调整电气设置,在触发值上为该引脚提供足够的电压。所以基本上你必须缩放光敏仪表的输出电压,以匹配该引脚认为高电压的高电压。
或者您可以使用任何可用于Rpi的ADC电路,将模拟信号转换为数字信号。