/* PulseLed.h - Pulse Width Modulation LED Class Header File */ #ifndef PulseLed_h // one time wrapper #define PulseLed_h // wrapper definition #include #include "PlainLed.h" #define DIVISIONS 25 // number of divisions of fading class PulseLed : public PlainLed { private: byte _max = 250; // maximum intesity (0-255) bool _enabled = true; // true if fading is enabled int _upTime = 500; // fade up time in milliseconds int _downTime = 500; // fade down time in milliseconds byte _upTimeInc = 20; // fade up time increment ms. byte _downTimeInc = 20; // fade down time increment ms. byte _valueInc = 10; // fade value increment byte _value = 0; // fade value bool _fading = false; // true while fading bool _fadeUp = true; // true if fading up unsigned long _timer = 0; // millisecond timer // private functions void turnOn (); void turnOff (); void changeFade (); public: void setMax (byte max); // set max intensity value byte getMax (); // get max intensity value void setFading (bool enabled); // set fading enabled bool isFading (); // is fading enabled void setUpTime (int upTime); // set fade up time ms. int getUpTime (); // get fade up time ms. void setDownTime (int downTime); // set fade down time ms. int getDownTime (); // get fade down time ms. void on (); // turn the LED on void off (); // turn the LED off void toggle (); // change state of LED void update (); // time based update }; #endif // end wrapper