-
Notifications
You must be signed in to change notification settings - Fork 14
/
LedDriverDotStar.h
63 lines (46 loc) · 1.42 KB
/
LedDriverDotStar.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/**
* LedDriverDotStar
* Implementierung auf der Basis von APA102-Streifen wie sie die Adafruit-Dot-Stars verwenden.
*
* @mc Arduino/RBBB
* @autor Christian Aschoff / caschoff _AT_ mac _DOT_ com
* @version 1.1
* @created 9.2.2015
* @updated 16.2.2015
*
* Versionshistorie:
* V 1.0: - Erstellt.
* V 1.1: - Unterstuetzung fuer die alte Arduino-IDE (bis 1.0.6) entfernt.
*
* Verkabelung: Einspeisung oben links, dann schlangenfoermig runter,
* dann Ecke unten links, oben links, oben rechts, unten rechts.
*
*/
#ifndef LED_DRIVER_DOTSTAR_H
#define LED_DRIVER_DOTSTAR_H
#include "Arduino.h"
#include "LedDriver.h"
#include <Adafruit_DotStar.h>
class LedDriverDotStar : public LedDriver {
public:
LedDriverDotStar(byte dataPin, byte clockPin);
void init();
void printSignature();
void writeScreenBufferToMatrix(word matrix[16], boolean onChange, eColors a_color = color_none);
void setBrightness(byte brightnessInPercent);
byte getBrightness();
void setLinesToWrite(byte linesToWrite);
void shutDown();
void wakeUp();
void clearData();
private:
byte _brightnessInPercent;
boolean _dirty;
void _setPixel(byte x, byte y, uint32_t c);
void _setPixel(byte num, uint32_t c);
uint32_t _wheel(byte brightness, byte wheelPos);
void _clear();
byte _brightnessScaleColor(byte brightness, byte colorPart);
Adafruit_DotStar *_strip;
};
#endif