25 #ifndef ACE_SEGMENT_DRIVER_BUILDER_H 26 #define ACE_SEGMENT_DRIVER_BUILDER_H 29 #include "LedMatrix.h" 45 mNumDigits = numDigits;
50 mNumSegments = numSegments;
55 mCommonCathode =
false;
60 mCommonCathode =
true;
65 mUseTransistors =
true;
70 mResistorsOnSegments =
false;
75 mResistorsOnSegments =
true;
80 mDigitPins = digitPins;
84 DriverBuilder& setSegmentDirectPins(
const uint8_t* segmentPins) {
85 mLedMatrixType = kTypeLedMatrixDirect;
86 mSegmentPins = segmentPins;
90 DriverBuilder& setSegmentSerialPins(uint8_t latchPin, uint8_t dataPin,
92 mLedMatrixType = kTypeLedMatrixSerial;
95 mResistorsOnSegments =
true;
96 mSegmentPins =
nullptr;
100 mClockPin = clockPin;
104 DriverBuilder& setSegmentSpiPins(uint8_t latchPin, uint8_t dataPin,
106 mLedMatrixType = kTypeLedMatrixSpi;
109 mResistorsOnSegments =
true;
110 mSegmentPins =
nullptr;
112 mLatchPin = latchPin;
114 mClockPin = clockPin;
119 mDimmablePatterns = dimmablePatterns;
130 mUseModulatingDriver =
true;
131 mNumSubFields = (numSubFields > 0) ? numSubFields : 1;
138 static const uint8_t kTypeLedMatrixDirect = 0;
139 static const uint8_t kTypeLedMatrixSerial = 1;
140 static const uint8_t kTypeLedMatrixSpi = 2;
146 uint8_t mNumDigits = 2;
147 uint8_t mNumSegments = 8;
148 bool mResistorsOnSegments =
true;
149 bool mCommonCathode =
true;
150 bool mUseTransistors =
false;
151 uint8_t mLedMatrixType = kTypeLedMatrixDirect;
152 const uint8_t* mDigitPins =
nullptr;
153 const uint8_t* mSegmentPins =
nullptr;
154 uint8_t mLatchPin = 0;
155 uint8_t mDataPin = 0;
156 uint8_t mClockPin = 0;
160 bool mUseModulatingDriver =
false;
161 uint8_t mNumSubFields = 16;
Class that represents the abstraction of a particular LED display wiring.
DriverBuilder & useModulatingDriver(uint8_t numSubFields)
Use a driver that provides pulse width modulation.
Base class of drivers which knows how to transfer the bit patterns stored in the array of DimmablePat...