25 #ifndef ACE_SEGMENT_DRIVER_BUILDER_H 26 #define ACE_SEGMENT_DRIVER_BUILDER_H 29 #include "LedMatrix.h" 43 mResistorsOnSegments(
true),
45 mLedMatrixType(kTypeLedMatrixDirect),
47 mSegmentPins(
nullptr),
48 mUseModulatingDriver(
false),
53 mNumDigits = numDigits;
58 mNumSegments = numSegments;
63 mCommonCathode =
false;
68 mCommonCathode =
true;
73 mResistorsOnSegments =
false;
78 mResistorsOnSegments =
true;
83 mDigitPins = digitPins;
87 DriverBuilder& setSegmentDirectPins(
const uint8_t* segmentPins) {
88 mLedMatrixType = kTypeLedMatrixDirect;
89 mSegmentPins = segmentPins;
93 DriverBuilder& setSegmentSerialPins(uint8_t latchPin, uint8_t dataPin,
95 mLedMatrixType = kTypeLedMatrixSerial;
98 mResistorsOnSegments =
true;
99 mSegmentPins =
nullptr;
101 mLatchPin = latchPin;
103 mClockPin = clockPin;
107 DriverBuilder& setSegmentSpiPins(uint8_t latchPin, uint8_t dataPin,
109 mLedMatrixType = kTypeLedMatrixSpi;
112 mResistorsOnSegments =
true;
113 mSegmentPins =
nullptr;
115 mLatchPin = latchPin;
117 mClockPin = clockPin;
122 mDimmingDigits = dimmingDigits;
133 mUseModulatingDriver =
true;
134 mNumSubFields = (numSubFields > 0) ? numSubFields : 1;
141 static const uint8_t kTypeLedMatrixDirect = 0;
142 static const uint8_t kTypeLedMatrixSerial = 1;
143 static const uint8_t kTypeLedMatrixSpi = 2;
150 uint8_t mNumSegments;
151 bool mResistorsOnSegments;
153 uint8_t mLedMatrixType;
154 const uint8_t* mDigitPins;
155 const uint8_t* mSegmentPins;
162 bool mUseModulatingDriver;
163 uint8_t mNumSubFields;
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 DimmingDigi...