With multiple modules daisy chained, you reference the modules with display.begin (ADDR1, ADDR2, ADDR3). Doing so treats the displays as one. Referencing the digits are done:
display.printChar(newValue[0], 0);
display.printChar(newValue[1], 1);
display.printChar(newValue[2], 2);
display.printChar(newValue[3], 3);
display.printChar(newValue[4], 4);
display.printChar(newValue[5], 5);
display.printChar(newValue[6], 6);
display.printChar(newValue[7], 7);
display.printChar(newValue[8], 8);
display.printChar(newValue[9], 9);
display.printChar(newValue[10], 10);
display.printChar(newValue[11], 11);
Due to the API I am using, some digits are set via separate functions like:
function1{
display.printChar(newValue[0], 0);
display.printChar(newValue[1], 1);
display.printChar(newValue[2], 2);
display.printChar(newValue[3], 3);
display.printChar(newValue[4], 4);
display.printChar(newValue[5], 5);
display.printChar(newValue[6], 6);
display.printChar(newValue[7], 7);
}
function2{
display.printChar(newValue[8], 8);
display.printChar(newValue[9], 9);
}
function3{
display.printChar(newValue[10], 10);
display.printChar(newValue[11], 11);
}
The problems are:
I have to clear the display of previous data but the clear function clears the RAM of all the modules on the I2C bus.
I am not sure if it’s a timing issue or data issue but after a few seconds one of the displays goes blank or all three displays freeze or some digits displayed are garbled.
What I need to do is this:
function1{
display1.clear();
display1.printChar… // 8 digits across 2 modules
}
function2{
// first 2 digits in the same module as the next function
display3.clear(digit0, digit1);
display3.printChar(value[0], 0);
display3.printChar(value[1],1);
}
function3{
// third and fourth digits in the same module for function2
display3.clear(digit2, digit3);
display3.printChar(value[0], 2);
display3.printChar(value[1],3);
}
Looking at the source code and trial and error, it doesn’t look like you can create a instance/reference for each display.
Adafruits version allows you to do so but I need to use the Sparkfun version because of the display size.
Can anyone offer any solutions, options or workarounds?
Thanks,