Boa muito a todo. Eu montei um display led 7-Seg com 2 Shift Register em sequencia, uso 2 variavel tipo array para o endereçamento do digito e a segunda para desenhar o numero. E sim existe transistor no pino comum do display.
Mas na hora do vamos ser nunca sai certo, quando eu troco a variavel por numero fixo funciona!
Segue abaixo o programa o resultado do Serial.print
#define clk 8
#define lanch 9
#define dt 10
const static byte decTable [] PROGMEM = {B00000001,
B00000010,
B00000100,
B00001000,
B00010000,
B00100000,
B01000000,
B10000000};
const static byte charTable [] PROGMEM = {B01101111,
B01000010,
B00111011,
B01110011,
B01010110,
B01110101,
B01111101,
B01000011,
B01111111,
B01110111};
unsigned long timer;
int cont=1;
int cont2;
void setup() {
Serial.begin(9600);
pinMode(clk, OUTPUT);
pinMode(lanch, OUTPUT);
pinMode(dt, OUTPUT);
digitalWrite(clk, LOW);
digitalWrite(dt, LOW);
digitalWrite(lanch, LOW);
timer=millis();
}
void loop() {
if ((millis()-timer)>= 800){
cont2=cont;
for (byte dec = 0; dec <= 2; dec++) {
/shiftOut(dt, clk, MSBFIRST, ~decTable[dec]);
shiftOut(dt, clk, MSBFIRST, ~charTable[cont2%10]);
digitalWrite(lanch, HIGH);
digitalWrite(lanch, LOW);/
Serial.print(dec); //numero da casa decimal
Serial.print(" ");
Serial.print(decTable[dec],BIN); //numero da casa decimal em binario conforme a array
Serial.print(" / "); // separação
Serial.print(cont2%10); //numero a ser escrito
Serial.print(" ");
Serial.print(charTable[cont2%10],BIN); //numero a ser escrito em binario conforme a array
Serial.println();
cont2=cont2/10;
delay(800);
}
Serial.println();
cont++;
timer=millis();
}
}
0 10 / 1 0
1 10 / 0 0
2 10 / 0 0
0 10 / 2 10111000
1 10 / 0 0
2 10 / 0 0
0 10 / 3 0
1 10 / 0 0
2 10 / 0 0
0 10 / 4 0
1 10 / 0 0
2 10 / 0 0
0 10 / 5 0
1 10 / 0 0
2 10 / 0 0
0 10 / 6 1
1 10 / 0 0
2 10 / 0 0
0 10 / 7 0
1 10 / 0 0
2 10 / 0 0
0 10 / 8 0
1 10 / 0 0
2 10 / 0 0
0 10 / 9 10111000
1 10 / 0 0
2 10 / 0 0
0 10 / 0 0
1 10 / 1 0
2 10 / 0 0
0 10 / 1 0
1 10 / 1 0
2 10 / 0 0
0 10 / 2 10111000
1 10 / 1 0
2 10 / 0 0
0 10 / 3 0
1 10 / 1 0
2 10 / 0 0
0 10 / 4 0
1 10 / 1 0
2 10 / 0 0