const int MAXLED = 3;
// arreglo de 8 LEDs, desde el pin 0 hasta el pin 5
//Pin connected to latch pin (ST_CP) of 74HC595
const int latchPin = 8;
//Pin connected to clock pin (SH_CP) of 74HC595
const int clockPin = 12;
////Pin connected to Data in (DS) of 74HC595
const int dataPin = 11;
int led[MAXLED] = {8,11,12};
int dato0[8]={1,2,4,8,16,32,64,128};
int dato1[8]={128,64,32,16,8,4,2,1};
int dato2[8]={129,66,36,24,24,36,66,129};
int dato3[8]={128,192,224,240,248,252,254,255};
int dato4[8]={1,3,7,15,31,63,127,254};
int dato5[8]={129,195,231,255,255,231,195,129};
int dato6[8]={129,195,231,255,255,126,60,24};
// se ejecuta 1 sola vez, al iniciar el programa
void setup() {
for (int i=0; i<MAXLED; i++)
pinMode(led[i], OUTPUT);
}
// se repite infinitamente mientras el arduino tenga corriente
void loop()
{
int b = analogRead(A0);
b = map(b, 0, 1023, 0,7);
secuencia(b);
}
void secuencia(int a)
{
switch(a)
{
case 0:
for(int i=0;i<8;i++)
{
alumbrar(dato0[i]);
}
break;
case 1:
for(int i=0;i<8;i++)
{
alumbrar(dato1[i]);
}
break;
case 2:
for(int i=0;i<8;i++)
{
alumbrar(dato2[i]);
}
break;
case 3:
for(int i=0;i<8;i++)
{
alumbrar(dato3[i]);
}
break;
case 4:
for(int i=0;i<8;i++)
{
alumbrar(dato4[i]);
}
break;
case 5:
for(int i=0;i<8;i++)
{
alumbrar(dato5[i]);
}
break;
case 6:
for(int i=0;i<8;i++)
{
alumbrar(dato6[i]);
}
break;
}
}
void alumbrar(int a)
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST,a );
digitalWrite(latchPin, HIGH);
delay(100);
}