-
Notifications
You must be signed in to change notification settings - Fork 14
/
LedDriverNeoPixel.h
65 lines (49 loc) · 1.57 KB
/
LedDriverNeoPixel.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
64
65
/**
* LedDriverNeoPixel
* Implementierung auf der Basis von WS2812B-Streifen wie sie die Adafruit-Neo-Pixel verwenden.
*
* Es lohnt sich in jedem Fall, den UeberGuide von Adafruit zu lesen:
* https://learn.adafruit.com/adafruit-neopixel-uberguide/overview
*
* @mc Arduino/RBBB
* @autor Christian Aschoff / caschoff _AT_ mac _DOT_ com
* @version 1.2
* @created 5.1.2015
* @updated 16.2.2015
*
* Versionshistorie:
* V 1.0: - Erstellt.
* V 1.1: - Getter fuer Helligkeit nachgezogen.
* V 1.2: - 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_NEOPIXEL_H
#define LED_DRIVER_NEOPIXEL_H
#include "Arduino.h"
#include "LedDriver.h"
#include <Adafruit_NeoPixel.h>
class LedDriverNeoPixel : public LedDriver {
public:
LedDriverNeoPixel(byte dataPin);
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);
byte _brightnessScaleColor(byte brightness, byte colorPart);
Adafruit_NeoPixel *_strip;
};
#endif