RaspBerryPi3로 LED를 PWM으로 빛내기 (Pi4j)
8555 단어 RaspberryPiPWMRaspberrypi3Pi4J
1, LED의 밝기를 조정!
LED를 PWM으로 빛내는 것으로 밝기를 조정할 수있는 것 같습니다.
주의
・나는 전자 기기에 대해서는 전압=저항×전류가 아는 정도의 전혀 아마추어입니다.
2, 주제
(1) 접속
220Ω의 저항기와 LED를 접속하고 있습니다.
①전체 화상
②상세
(2) Raspberry pi 설정
직렬을 활성화하면 핀을 제어 할 수 있습니다.
(3) 실행 프로그램
TestPwmLed.javaimport com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinPwmOutput;
import com.pi4j.io.gpio.Pin;
import com.pi4j.io.gpio.RaspiPin;
import com.pi4j.util.CommandArgumentParser;
public class TestPwmLed {
public static void main(String[] args) throws InterruptedException {
pwm(args);
}
/**
* 100Hzで出力
* @param args
* @throws InterruptedException
*/
public static void pwm(String[] args) throws InterruptedException{
final GpioController gpio = GpioFactory.getInstance();
Pin pin = CommandArgumentParser.getPin(
RaspiPin.class,
RaspiPin.GPIO_00,
args);
GpioPinPwmOutput pwm = gpio.provisionSoftPwmOutputPin(pin);
pwm.setPwmRange(100);//出力時間を100分割
int sleep = 1000;
for(int i = 0 ;i<10;i++){
//常にON
pwm.setPwm(100);//デューティー比100
System.out.println("PWM rate is: " + pwm.getPwm());
Thread.sleep(sleep);
//半分ON
pwm.setPwm(50);//デューティー比50
System.out.println("PWM rate is: " + pwm.getPwm());
Thread.sleep(sleep);
//一瞬ON
pwm.setPwm(10);//デューティー比10
System.out.println("PWM rate is: " + pwm.getPwm());
Thread.sleep(sleep);
//常にOFF
pwm.setPwm(0);//デューティー比0
System.out.println("PWM rate is: " + pwm.getPwm());
Thread.sleep(sleep);
}
gpio.shutdown();
System.out.println("pwm end");
}
}
(4)실행 결과
훌륭하게 4단계의 밝기를 PWM으로 만들어내는데 성공했습니다.
3, 결론
사실은 하드 PWM을 사용하고 싶었지만 어쩌면 잘 작동하지 않았습니다.
java로부터 제어가 되어 있지 않은 것 같아요. 권한의 문제입니까?
의사적이지만, PWM을 조종할 수 있었으므로, 다음은 모터를 제어하고 싶습니다.
참고
거친 ftPw 메 MP. 자바
참고로 프로그램 작성했습니다.
Reference
이 문제에 관하여(RaspBerryPi3로 LED를 PWM으로 빛내기 (Pi4j)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/otesho1/items/164b331d4f0e20e1b320
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
(1) 접속
220Ω의 저항기와 LED를 접속하고 있습니다.
①전체 화상
②상세
(2) Raspberry pi 설정
직렬을 활성화하면 핀을 제어 할 수 있습니다.
(3) 실행 프로그램
TestPwmLed.java
import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinPwmOutput;
import com.pi4j.io.gpio.Pin;
import com.pi4j.io.gpio.RaspiPin;
import com.pi4j.util.CommandArgumentParser;
public class TestPwmLed {
public static void main(String[] args) throws InterruptedException {
pwm(args);
}
/**
* 100Hzで出力
* @param args
* @throws InterruptedException
*/
public static void pwm(String[] args) throws InterruptedException{
final GpioController gpio = GpioFactory.getInstance();
Pin pin = CommandArgumentParser.getPin(
RaspiPin.class,
RaspiPin.GPIO_00,
args);
GpioPinPwmOutput pwm = gpio.provisionSoftPwmOutputPin(pin);
pwm.setPwmRange(100);//出力時間を100分割
int sleep = 1000;
for(int i = 0 ;i<10;i++){
//常にON
pwm.setPwm(100);//デューティー比100
System.out.println("PWM rate is: " + pwm.getPwm());
Thread.sleep(sleep);
//半分ON
pwm.setPwm(50);//デューティー比50
System.out.println("PWM rate is: " + pwm.getPwm());
Thread.sleep(sleep);
//一瞬ON
pwm.setPwm(10);//デューティー比10
System.out.println("PWM rate is: " + pwm.getPwm());
Thread.sleep(sleep);
//常にOFF
pwm.setPwm(0);//デューティー比0
System.out.println("PWM rate is: " + pwm.getPwm());
Thread.sleep(sleep);
}
gpio.shutdown();
System.out.println("pwm end");
}
}
(4)실행 결과
훌륭하게 4단계의 밝기를 PWM으로 만들어내는데 성공했습니다.
3, 결론
사실은 하드 PWM을 사용하고 싶었지만 어쩌면 잘 작동하지 않았습니다.
java로부터 제어가 되어 있지 않은 것 같아요. 권한의 문제입니까?
의사적이지만, PWM을 조종할 수 있었으므로, 다음은 모터를 제어하고 싶습니다.
참고
거친 ftPw 메 MP. 자바
참고로 프로그램 작성했습니다.
Reference
이 문제에 관하여(RaspBerryPi3로 LED를 PWM으로 빛내기 (Pi4j)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/otesho1/items/164b331d4f0e20e1b320
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(RaspBerryPi3로 LED를 PWM으로 빛내기 (Pi4j)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/otesho1/items/164b331d4f0e20e1b320텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)