Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. const int MAXLED = 3;
  2. // arreglo de 8 LEDs, desde el pin 0 hasta el pin 5
  3. //Pin connected to latch pin (ST_CP) of 74HC595
  4. const int latchPin = 8;
  5. //Pin connected to clock pin (SH_CP) of 74HC595
  6. const int clockPin = 12;
  7. ////Pin connected to Data in (DS) of 74HC595
  8. const int dataPin = 11;
  9.  
  10. int led[MAXLED] = {8,11,12};
  11. int dato0[8]={1,2,4,8,16,32,64,128};
  12. int dato1[8]={128,64,32,16,8,4,2,1};
  13. int dato2[8]={129,66,36,24,24,36,66,129};
  14. int dato3[8]={128,192,224,240,248,252,254,255};
  15. int dato4[8]={1,3,7,15,31,63,127,254};
  16. int dato5[8]={129,195,231,255,255,231,195,129};
  17. int dato6[8]={129,195,231,255,255,126,60,24};
  18.  
  19.  
  20. // se ejecuta 1 sola vez, al iniciar el programa
  21. void setup() {
  22.  
  23.   for (int i=0; i<MAXLED; i++)
  24.     pinMode(led[i], OUTPUT);
  25. }
  26.  
  27. // se repite infinitamente mientras el arduino tenga corriente
  28. void loop()
  29. {
  30.   int b = analogRead(A0);
  31.   b = map(b, 0, 1023, 0,7);
  32.   secuencia(b);
  33. }
  34.  
  35. void secuencia(int a)
  36. {
  37.   switch(a)
  38.   {
  39.     case 0:
  40.       for(int i=0;i<8;i++)
  41.       {
  42.         alumbrar(dato0[i]);
  43.       }
  44.     break;
  45.     case 1:
  46.       for(int i=0;i<8;i++)
  47.       {
  48.         alumbrar(dato1[i]);
  49.       }
  50.     break;
  51.     case 2:
  52.       for(int i=0;i<8;i++)
  53.       {
  54.         alumbrar(dato2[i]);
  55.       }
  56.     break;
  57.     case 3:
  58.       for(int i=0;i<8;i++)
  59.       {
  60.         alumbrar(dato3[i]);
  61.       }
  62.     break;
  63.     case 4:
  64.       for(int i=0;i<8;i++)
  65.       {
  66.         alumbrar(dato4[i]);
  67.       }
  68.     break;
  69.     case 5:
  70.       for(int i=0;i<8;i++)
  71.       {
  72.         alumbrar(dato5[i]);
  73.       }
  74.     break;
  75.     case 6:
  76.       for(int i=0;i<8;i++)
  77.       {
  78.         alumbrar(dato6[i]);
  79.       }
  80.     break;
  81.    }        
  82. }
  83.  
  84. void alumbrar(int a)
  85. {
  86.   digitalWrite(latchPin, LOW);
  87.   shiftOut(dataPin, clockPin, MSBFIRST,a );
  88.   digitalWrite(latchPin, HIGH);
  89.   delay(100);
  90. }