OmEspHelpers
OmBlinker.h
1 /*
2  * OmBlinker.h
3  * 2016-11-26 dvb
4  * This class manages a simple sequence of on-off blinks on
5  * an Arduino digital output. Its intended purpose is for
6  * indicating conditions numerically, like "three blinks
7  * means a relay failure."
8  *
9  * My particular need today is to show an IP address after
10  * connecting, blinking out "one one five (pause)" for example.
11  *
12  * EXAMPLE
13  *
14  * OmBlinker b(BUILTIN_LED);
15  *
16  * in setup(): b.addNumber(1234);
17  * in loop(): b.tick();
18  */
19 
20 #include <vector>
21 
26 class OmBlinker
27 {
29  std::vector<int> repeatingPattern; // entries are intervals, On then Off. p[0] is an On-duration.
30 
32  std::vector<int> oncePattern;
33 
34  int ledPin = -1;
35  int tickDivider = 12; // assuming 50-100 ticks per second, we make time=1 be 12 ticks.
36  int patternStep = 0;
37  int patternCountdown = 0;
38  bool doingOncePattern = false;
39  bool inverted = true; // if inverted, digitalWrite(0) means ON.
40 
41 public:
43  OmBlinker(int ledPin = -1);
44  void setLedPin(int ledPin);
45  void setTickDivider(int tickDivider);
46 
47  // call this every 10 to 20 milliseconds from loop()
48  void tick();
49 
50  void clear();
51 
53  void addBlink(int onTime, int offTime);
54 
56  void addOnTime(int onTime);
58  void addOffTime(int offTime);
59 
60 
62  void addDigit(unsigned int digit);
63 
65  void addNumber(unsigned int number);
66 
68  void addInterjection(int blinkCount, int blinkSize);
69 };
OmBlinker::OmBlinker
OmBlinker(int ledPin=-1)
Definition: OmBlinker.cpp:10
OmBlinker::addDigit
void addDigit(unsigned int digit)
add several blinks to represent a digit 0 to 9, like 3 blinks for 3. NOTE: does zero blinks 10 times
Definition: OmBlinker.cpp:122
OmBlinker::addOnTime
void addOnTime(int onTime)
Definition: OmBlinker.cpp:102
OmBlinker::addOffTime
void addOffTime(int offTime)
Definition: OmBlinker.cpp:111
OmBlinker
class to help send out timed repeating blinks, can be used to show IP address of the current connecti...
Definition: OmBlinker.h:27
OmBlinker::addNumber
void addNumber(unsigned int number)
add blinks and pauses to play a number in decimal
Definition: OmBlinker.cpp:139
OmBlinker::addBlink
void addBlink(int onTime, int offTime)
Definition: OmBlinker.cpp:96
OmBlinker::addInterjection
void addInterjection(int blinkCount, int blinkSize)
Play a simple blink "on top of" the repeating pattern.
Definition: OmBlinker.cpp:163