Skip to main content

AnalogActor

Generic analog (PWM) output actor (LED, motor speed, etc.) Non-blocking animations: blink, fadeTo, fadeIn/out, pulse (fade up/down)

Used by: LED (Dimmable), Vibration Motor (Dimmable).

C++
#include "blokdots.h"

#Constructors

C++
AnalogActor(uint8_t pin, bool invert = false, uint16_t startValue = 0);
AnalogActor(EventBus& bus, uint8_t pin, uint8_t evtChange, bool invert = false, uint16_t startValue = 0);

#Methods

MethodDescription
AnalogActor& stop()Stop any running animation (blink/fade/pulse)
void set(uint16_t v)
uint16_t get()
int emittedValue()Get the current value for triggers
void on()
void off()
void toggle()
AnalogActor& blink(uint16_t intervalMs = 500, uint32_t durationMs = 0)durationMs=0 => blink forever
AnalogActor& blink(uint16_t onMs, uint16_t offMs, uint32_t durationMs, uint16_t highValue = 0)If highValue==0, we default to lastNonZero (or maxValue if lastNonZero==0).
AnalogActor& fadeTo(uint16_t target, uint32_t durationMs)Linearly fade current value to target over durationMs (non-blocking)
AnalogActor& fadeIn(uint32_t durationMs, uint16_t target = 0)
AnalogActor& fadeOut(uint32_t durationMs)
AnalogActor& pulse(uint16_t peak, uint16_t fadeInMs, uint16_t fadeOutMs)One-shot pulse: fade from CURRENT value to peak, then fade to 0.
AnalogActor& pulse(uint16_t peak, uint16_t fadeInMs, uint16_t fadeOutMs, bool repeat, uint32_t durationMs = 0)Pulse with repeat option (repeat forever if durationMs=0)

#Example

C++
AnalogActor output(5);   // PWM pin D5

output.set(128);        // 50% (0–255)
output.on();            // full brightness
output.off();           // off
output.blink(500);      // blink 500ms on/off
output.fadeTo(200, 1000); // fade to 200 over 1 s
output.pulse(255, 300, 700); // fade up 300ms, fade down 700ms