Digi-Dot-Booster Arduino Library
DDBooster.h
1 /*
2  *
3  * DDBoster.h - Library to control the Digi-Dot-Booster using a high-level API
4  *
5  * https://github.com/Gamadril/DD-Booster-Library
6  * MIT License
7  */
8 #ifndef DD_BOOSTER_LIBRARY_DDBOOSTER_H
9 #define DD_BOOSTER_LIBRARY_DDBOOSTER_H
10 
11 #include <Arduino.h>
12 #include <SPI.h>
13 
29 class DDBooster {
30 public:
31 
36  enum LedType {
37  LED_RGB = 24,
38  LED_RGBW = 32
39  };
40 
46  ORDER_RGB,
47  ORDER_GRB
48  };
49 
53  DDBooster();
54 
63  void configurePins(uint8_t csPin, uint8_t resetPin);
64 
72  void init(uint16_t ledCount, LedType ledType = LED_RGB, LedColorOrder colorOrder = ORDER_GRB);
73 
79  void reset();
80 
88  void setRGB(uint8_t r, uint8_t g, uint8_t b);
89 
98  void setRGBW(uint8_t r, uint8_t g, uint8_t b, uint8_t w);
99 
107  void setHSV(uint16_t h, uint8_t s, uint8_t v);
108 
113  void setLED(uint8_t index);
114 
120  void clearLED(uint8_t index);
121 
125  void setAll();
126 
131  void clearAll();
132 
138  void setRange(uint8_t start, uint8_t end);
139 
149  void setRainbow(uint16_t h, uint8_t s, uint8_t v, uint8_t start, uint8_t end, uint8_t step);
150 
160  void setGradient(int start, int end, uint8_t from[3], uint8_t to[3]);
161 
168  void shiftUp(uint8_t start, uint8_t end, uint8_t count);
169 
176  void shiftDown(uint8_t start, uint8_t end, uint8_t count);
177 
183  void copyLED(uint8_t from, uint8_t to);
184 
191  void repeat(uint8_t start, uint8_t end, uint8_t count);
192 
196  void show();
197 
198 private:
199  void sendData(uint8_t* buffer, uint8_t length);
200 
201 private:
202  uint8_t _csPin;
203  uint8_t _resetPin;
204  uint8_t _lastIndex;
205 };
206 
207 #endif //DD_BOOSTER_LIBRARY_DDBOOSTER_H
LedType
Definition: DDBooster.h:36
void setAll()
Definition: DDBooster.cpp:139
void clearAll()
Definition: DDBooster.cpp:145
void copyLED(uint8_t from, uint8_t to)
Definition: DDBooster.cpp:242
void configurePins(uint8_t csPin, uint8_t resetPin)
Definition: DDBooster.cpp:37
void show()
Definition: DDBooster.cpp:265
void shiftUp(uint8_t start, uint8_t end, uint8_t count)
Definition: DDBooster.cpp:218
void shiftDown(uint8_t start, uint8_t end, uint8_t count)
Definition: DDBooster.cpp:230
void setRange(uint8_t start, uint8_t end)
Definition: DDBooster.cpp:156
void repeat(uint8_t start, uint8_t end, uint8_t count)
Definition: DDBooster.cpp:253
void init(uint16_t ledCount, LedType ledType=LED_RGB, LedColorOrder colorOrder=ORDER_GRB)
Definition: DDBooster.cpp:46
void clearLED(uint8_t index)
Definition: DDBooster.cpp:124
void setLED(uint8_t index)
Definition: DDBooster.cpp:114
void setRainbow(uint16_t h, uint8_t s, uint8_t v, uint8_t start, uint8_t end, uint8_t step)
Definition: DDBooster.cpp:167
void reset()
Definition: DDBooster.cpp:73
DDBooster()
Definition: DDBooster.cpp:31
void setGradient(int start, int end, uint8_t from[3], uint8_t to[3])
Definition: DDBooster.cpp:186
void setHSV(uint16_t h, uint8_t s, uint8_t v)
Definition: DDBooster.cpp:101
void setRGB(uint8_t r, uint8_t g, uint8_t b)
Definition: DDBooster.cpp:82
LedColorOrder
Definition: DDBooster.h:45
void setRGBW(uint8_t r, uint8_t g, uint8_t b, uint8_t w)
Definition: DDBooster.cpp:91
Class acts as a wrapper around SPI calls to control the Digi-Dot-Booster.
Definition: DDBooster.h:29