每天学点儿树莓派(二)——光敏控制LED

一、光敏电阻的接法

我这里使用到的光敏电阻就是我们最常见的光敏电阻模块

你手里如果有光敏电阻,估计也和我的差不多,如果你是用的是红外光敏,用法也应该是大同小异。
光敏电阻模块有三个引脚,分别是VCC、GND和DQ,其工作电压应为3.3V-5V,所以在树莓派上接3.3和接5V都是正确的,接法如下:

光敏电阻树莓派
VCC5V
GNDGround
DQGPIO_0

PS:有关小灯的接法,昨天已经上过图了,这次我将小灯接在了GPIO_1上面,利用光敏读取数值控制小灯亮灭。

二、编写程序

这里依然使用pi4j库来写这个程序。

import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPin;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.GpioPinDigitalInput;
import com.pi4j.io.gpio.PinDirection;
import com.pi4j.io.gpio.PinMode;
import com.pi4j.io.gpio.PinPullResistance;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;

public class GuangMin{
    public static void main(String[] args) throws InterruptedException {
        final GpioController gpio=GpioFactory.getInstance();
        final GpioPinDigitalInput pin=gpio.provisionDigitalInputPin(RaspiPin.GPIO_00, "photo-resistor", PinPullResistance.PULL_DOWN);
        final GpioPinDigitalOutput led=gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01, "led", PinState.LOW);
        //Read Pin State
        while(true){
            PinState photoResistorState = pin.getState();
            //System.out.println("photo resistor's reader is "+photoResistorState.getValue());
            if(photoResistorState.isHigh()){
                led.high();
            }else{
                led.low();
            }
        }
    }
}

使用如下命令编译:

javac -classpath .:classes:/opt/pi4j/lib/'*' -d . GuangMin.java

使用如下命令运行程序:

sudo java -classpath .:classes:/opt/pi4j/lib/'*' GuangMin

三、观察结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值