You can make your own fontArray and use the part in NoDecode mode.
a
f b
g
e c
d
[code]
byte fontArray[]={
0b00111111, // 0 bit 7 = not used, 6 = g, 5 = f, 4 = e, 3 = d, 2 = c, 1 = b, 0 = a
0b01110111, // A
}; // etc
These characters would display well:
0,1,2,3,4,5,6,7,8,9 (use upper 'tail' on 6, no lower'tail' on 9)
A,b,C,c,d,E,F,g, H, h, I, i, J, L, n, O (0), o, P, S (5), U, u, -, _
? maybe with f,a,b,c,e segmemts
, maybe with c,d segments
T? maybe with a,b,c segments
M, N, Q, R, V, W, X, Y, Z - hard to do as anything recognizable.
To display:
in setup, write to registers 9-15 with the needed info for:
of characters, No decode mode, normal mode (vs shutdown), # of segments, brightness
Then write a character to address 1 to 8 for the digits. I use SPI for all of this:
// top of sketch need this:
#include <SPI.h>
// in setup you need:
SPI.begin();
// In loop, you do this:
digitalWrite (ssPin, LOW); // D10
SPI.transfer (registerAddress); // 1 to 8 for digits, 9-15 for control setup
SPI.transfer(fontArray[number_to_display]); // index into the array,
// such as 0 for '0' and 1 for 'A' above
digitalWrite (ssPin, HIGH); // output updates after this edge
can also use double lookup:
// write bank1 digits to display
for (x=1; x<9; x=x+1){
digitalWrite (ssPin1, LOW); // D10 -can be any pin, D10 must be an output, thp
SPI.transfer (x); // 1 to 8; SCK from D13, MOSI from D11
SPI.transfer(fontArray[bank1digits[x-1]]); // array index from 0 to 7
digitalWrite (ssPin1, HIGH); // output updates after this edge
}
// write bank 2 digits to display 2
for (x=1; x<9; x=x+1){
digitalWrite (ssPin2, LOW); // D10
SPI.transfer (x); // 1 to 8
SPI.transfer(fontArray[bank2digits[x-1]]); // array index from 0 to 7
digitalWrite (ssPin2, HIGH); // output updates after this edge
}
If have the IO pins available go with discrete ssPins, no messing with NOPs , no wasted time.[/code]