我现在从事一个项目,我需要在java中读取raspberry pi上的一个引脚的值。
我用光感应器工作。取决于它的价值,当它是白天,我什么都不做,如果是晚上,我需要打开一些LED。
我已经知道如何打开或关闭LED,因为引脚被设置为输出,但我不知道如何从引脚(它被设置为输入)读取值。
我一直在看pi4j的网站,用那里的例子,但我发现唯一的事情是听一个事件。(这离我想要的不远,但我没有成功地使它适应我的情况)。
我想恢复这个引脚的价值(高或低),以便能够比较它(如果状态==高,打开发光二极管,否则什么都不做)。
谢谢你的关注,如果你需要更多的信息,请告诉我。
发布于 2014-08-13 14:42:37
我终于找到了做我想做的事的方法。
这不是很“干净”,但它是有效的。如果能帮到别人的话,我就把它贴在这里。最后很容易..。我希望这会有所帮助。
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");
}
}}
发布于 2014-08-12 12:53:44
那么,我假设从引脚上读取值应该很容易实现。
检查任何教程
检查RaspPi的规范,该规范描述了什么状态deasit是高的。调整您的电气装置,以提供足够的电压在该引脚上的触发值。因此,基本上,你必须缩放输出电压的光敏计,以匹配高电压被认为是高的那个引脚。
或者,您可以使用任何可用于Rpi的ADC电路来将模拟信号转换为数字信号。
https://stackoverflow.com/questions/25262509
复制相似问题