24#ifndef __SparkFun_Alphanumeric_Display_H__
25#define __SparkFun_Alphanumeric_Display_H__
32#define DEFAULT_ADDRESS 0x70
33#define DEFAULT_NOTHING_ATTACHED 0xFF
54 ALPHA_BLINK_RATE_NOBLINK = 0b00,
55 ALPHA_BLINK_RATE_2HZ = 0b01,
56 ALPHA_BLINK_RATE_1HZ = 0b10,
57 ALPHA_BLINK_RATE_0_5HZ = 0b11,
62 ALPHA_DISPLAY_ON = 0b1,
63 ALPHA_DISPLAY_OFF = 0b0,
68 ALPHA_DECIMAL_ON = 0b1,
69 ALPHA_DECIMAL_OFF = 0b0,
75 ALPHA_COLON_OFF = 0b0,
80 ALPHA_CMD_SYSTEM_SETUP = 0b00100000,
81 ALPHA_CMD_DISPLAY_SETUP = 0b10000000,
82 ALPHA_CMD_DIMMING_SETUP = 0b11100000,
89 struct CharDef * next;
93class HT16K33 :
public Print
97 uint8_t _deviceAddressDisplayOne;
98 uint8_t _deviceAddressDisplayTwo;
99 uint8_t _deviceAddressDisplayThree;
100 uint8_t _deviceAddressDisplayFour;
101 uint8_t digitPosition = 0;
102 uint8_t numberOfDisplays = 1;
103 bool displayOnOff = 0;
104 bool decimalOnOff = 0;
106 uint8_t blinkRate = ALPHA_BLINK_RATE_NOBLINK;
109 uint8_t displayRAM[16 * 4];
110 char displayContent[4 * 4 + 1] =
"";
113 struct CharDef * pCharDefList = NULL;
117 bool begin(uint8_t addressDisplayOne = DEFAULT_ADDRESS,
118 uint8_t addressDisplayTwo = DEFAULT_NOTHING_ATTACHED,
119 uint8_t addressDisplayThree = DEFAULT_NOTHING_ATTACHED,
120 uint8_t addressDisplayFour = DEFAULT_NOTHING_ATTACHED,
122 bool isConnected(uint8_t displayNumber);
124 uint8_t lookUpDisplayAddress(uint8_t displayNumber);
128 bool setBrightness(uint8_t duty);
129 bool setBrightnessSingle(uint8_t displayNumber, uint8_t duty);
130 bool setBlinkRate(
float rate);
131 bool setBlinkRateSingle(uint8_t displayNumber,
float rate);
134 bool displayOnSingle(uint8_t displayNumber);
135 bool displayOffSingle(uint8_t displayNumber);
136 bool setDisplayOnOff(uint8_t displayNumber,
bool turnOnDisplay);
138 bool enableSystemClock();
139 bool disableSystemClock();
140 bool enableSystemClockSingle(uint8_t displayNumber);
141 bool disableSystemClockSingle(uint8_t displayNumber);
144 void illuminateSegment(uint8_t segment, uint8_t digit);
145 void illuminateChar(uint16_t disp, uint8_t digit);
146 void printChar(uint8_t displayChar, uint8_t digit);
147 bool updateDisplay();
150 bool defineChar(uint8_t displayChar, uint16_t segmentsToTurnOn);
151 uint16_t getSegmentsToTurnOn (uint8_t charPos);
156 bool decimalOnSingle(uint8_t displayNumber,
bool updateNow =
true);
157 bool decimalOffSingle(uint8_t displayNumber,
bool updateNow =
true);
158 bool setDecimalOnOff(uint8_t displayNumber,
bool turnOnDecimal,
bool updateNow =
true);
163 bool colonOnSingle(uint8_t displayNumber,
bool updateNow =
true);
164 bool colonOffSingle(uint8_t displayNumber,
bool updateNow =
true);
165 bool setColonOnOff(uint8_t displayNumber,
bool turnOnColon,
bool updateNow =
true);
168 bool shiftRight(uint8_t shiftAmt = 1);
169 bool shiftLeft(uint8_t shiftAmt = 1);
172 virtual size_t write(uint8_t);
173 virtual size_t write(
const uint8_t *buffer,
size_t size);
174 virtual size_t write(
const char *str);
177 bool readRAM(uint8_t address, uint8_t reg, uint8_t *buff, uint8_t buffSize);
178 bool writeRAM(uint8_t address, uint8_t reg, uint8_t *buff, uint8_t buffSize);
179 bool writeRAM(uint8_t reg, uint8_t data);
NetBurner Wire I2C Interface.
Wire interface class.
Definition Wire.h:42
int write(int fd, const char *buf, int nbytes)
Write data to the stream associated with a file descriptor (fd). Can be used to write data to stdio,...