I have 4 of the 4 digit 7-Segment displays on an Arduino and was having trouble with the Adafruit I2c library frequently hanging inside begin(). I noticed in the HT16K33 datasheet that you should allow at least 1MS after enabling the clock so I added 2 delays in begin... problem solved! My begin now looks like this:
void Adafruit_LEDBackpack::begin(uint8_t _addr = 0x70) {
i2c_addr = _addr;
Wire.begin();
Wire.beginTransmission(i2c_addr);
Wire.write(0x21); // turn on oscillator
Wire.endTransmission();
delay(5); // <- My addition
blinkRate(HT16K33_BLINK_OFF);
delay(5); // <-- My addition
setBrightness(15); // max brightness
}
Reset is now 100% reliable. Best of luck. Jay.
Reset problem with I2c backpack- HT16K33
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
-
- Posts: 12151
- Joined: Thu Apr 06, 2006 4:21 pm
Re: Reset problem with I2c backpack- HT16K33
thanks for the note!
Please be positive and constructive with your questions and comments.