![JAR search and dependency download from the Maven repository](/logo.png)
io.silverspoon.bulldog.devices.led.Led Maven / Gradle / Ivy
package io.silverspoon.bulldog.devices.led;
import io.silverspoon.bulldog.core.gpio.Pwm;
import io.silverspoon.bulldog.core.gpio.util.PwmController;
import io.silverspoon.bulldog.core.util.easing.Easing;
import io.silverspoon.bulldog.core.util.easing.EasingOptions;
import io.silverspoon.bulldog.core.util.easing.SineEasing;
public class Led {
private Pwm pwm;
private PwmController pwmController;
private Easing defaultEasing;
public Led(Pwm pwm) {
this(pwm, new SineEasing());
}
public Led(Pwm pwm, Easing defaultEasing) {
this.pwm = pwm;
this.defaultEasing = defaultEasing;
this.pwmController = new PwmController();
pwm.setFrequency(10000.0);
pwm.setDuty(0.0);
pwm.enable();
}
public void fadeOut(int milliseconds) {
fadeOut(milliseconds, defaultEasing);
}
public void fadeOut(int milliseconds, Easing easing) {
pwmController.dutyTransition(pwm, 0.0, milliseconds, easing, EasingOptions.EaseOut);
}
public void fadeIn(int milliseconds) {
fadeIn(milliseconds, defaultEasing);
}
public void fadeIn(int milliseconds, Easing easing) {
pwmController.dutyTransition(pwm, 1.0, milliseconds, easing, EasingOptions.EaseIn);
}
public void fadeToBrightness(int milliseconds, double toBrightness, Easing easing) {
pwmController.dutyTransition(pwm, toBrightness, milliseconds, easing, EasingOptions.EaseIn);
}
public void fadeToBrightness(int milliseconds, double toBrightness) {
fadeToBrightness(milliseconds, toBrightness, defaultEasing);
}
public void setBrightness(double brightness) {
pwm.setDuty(brightness);
}
public void on() {
pwm.enable();
}
public void off() {
pwm.disable();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy