38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
#ifndef SEVENSEGMENTNEOPIXEL_H
|
|
#define SEVENSEGMENTNEOPIXEL_H
|
|
|
|
#include <Adafruit_NeoPixel.h>
|
|
|
|
class SevenSegmentNeoPixel {
|
|
public:
|
|
// Constructor with optional segment order
|
|
SevenSegmentNeoPixel(uint8_t digits, uint8_t pixelsPerSegment, uint8_t pin,
|
|
const uint8_t* segmentOrder = nullptr,
|
|
neoPixelType type = NEO_GRB + NEO_KHZ800);
|
|
|
|
void begin();
|
|
void clear();
|
|
void show();
|
|
void setBrightness(uint8_t brightness);
|
|
void setDigit(uint8_t digitIndex, uint8_t value, uint32_t color);
|
|
void setAll(uint8_t value, uint32_t color);
|
|
void setSegments(uint8_t digitIndex, const uint8_t segments[7], uint32_t color);
|
|
Adafruit_NeoPixel& getStrip();
|
|
|
|
static const uint8_t* getSegmentPattern(uint8_t digit);
|
|
|
|
private:
|
|
uint8_t _digits;
|
|
uint8_t _pixelsPerSegment;
|
|
uint8_t _segmentsPerDigit = 7;
|
|
uint16_t _pixelsPerDigit;
|
|
uint16_t _numPixels;
|
|
Adafruit_NeoPixel _strip;
|
|
uint8_t _segmentOrder[7]; // <-- Add this line
|
|
|
|
static const uint8_t _segmentPatterns[10][7];
|
|
uint16_t getPixelOffset(uint8_t digitIndex, uint8_t segmentIndex) const;
|
|
};
|
|
|
|
#endif
|