int clockPin=8;
int dataPin=9;
int digito1=11;//Indica la posición en el display del número a mostrar
int digito2=12;
byte cero=255-252;/*Para pintar un 0 en un 7 segmentos hay que enviar un valor binario de 1111110. Como el registro de desplazamiento tiene 8 bits, añadimos un bit más a esa cadena (da igual el valor) y tendremos entonces 11111100, que en decimal se corresponde con el 252. Este sería en principio el valor a enviar por el registro de desplazamiento, pero para el display que estoy utilizando necesito enviar los bits invertidos (un 0 enciende el led y un uno lo apaga), así que el valor a enviar, en binario, es 00000011, que en decimal es el 3 (255-252). Esto mismo hay que hacer para el resto de valores. */
byte uno=255-96;
byte dos=255-109;
byte tres=255-121;
byte cuatro=255-102;
byte cinco=255-182;
byte seis=255-190;
byte siete=255-224;
byte ocho=255-0;
byte nueve=255-230;
void setup(){
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(digito1, OUTPUT);
pinMode(digito2, OUTPUT);
}
void loop(){
shiftOut(dataPin,clockPin,LSBFIRST,siete);//Pintamos el valor 7 en el primer dígito
delay(1000);
digitalWrite(digito1,LOW);
digitalWrite(digito2,HIGH);
shiftOut(dataPin,clockPin,LSBFIRST,uno);//Pintamos el valor 1 en el primer digito
delay(1000);
digitalWrite(digito1,HIGH);
digitalWrite(digito2,LOW);
shiftOut(dataPin,clockPin,LSBFIRST,cinco);//PIntamos el valor 5 en el segundo dígito
delay(1000);
digitalWrite(digito1,HIGH);
digitalWrite(digito2,LOW);
shiftOut(dataPin,clockPin,LSBFIRST,cuatro);//Pintamos el valor 4 en el segundo dígito
delay(1000);
digitalWrite(digito1,LOW);
digitalWrite(digito2,HIGH);
}