martes, 4 de marzo de 2014

LABORATORIO 2


DESCRIPCIÓN DEL LABORATORIO :

Veremos como controlar a través de Arduino ocho (8) LEDs puestos en una protoboard, encendido cada LED de izquierda a derecha según la posición de un Potenciometro.


MATERIALES UTILIZADOS

(1) Protoboard


(8) Leds


Cable utp


(1) Arduino uno

(1) Potenciometro



DIAGRAMA DEL MONTAJE EN LA PROTOBOARD



DIAGRAMA DEL MONTAJE EN EL CIRCUITO


FOTOS DEL MONTAJE







CÓDIGO ARDUINO
    1. // Pines usados del Arduino (2-9)
  1. int led[MAXLED] = {
  2.   2,3,4,5,6,7,8,9};
  3.  
  4. // Ciclo para activar los ocho pines como salida,
  5. // y el potenciometro como entrada del Arduino
  6. void setup() {                
  7.   for (int i=0; i<MAXLED; i++)
  8.   {
  9.     pinMode(led[i], OUTPUT);    
  10.   }
  11.   pinMode(pot, INPUT);
  12. }
  13.  
  14. // Ciclo con tiempo variable de prendido y apagado controlando
  15. // su posición según la posición del potenciometro, el cual se
  16. // cambia su intervalo que era de 10-1023 a un intervalo de 0-7
  17. void loop() {
  18.   int valor = analogRead(pot);
  19.   int i = map(valor,0,1023,0,7);
  20.   prender(led[i], 100);
  21.   apagar(led[i], 50);
  22.  
  23. }
  24.  
  25. // Función de prender, coloca el Pin tal en alto (HIGH)
  26. // en un tiempo t
  27. void prender(int l,int t) {
  28.   digitalWrite(l, HIGH);
  29.   delay(t);
  30. }
  31.  
  32. // Función de apagar, coloca el Pin tal en bajo (LOW)
  33. // en un tiempo t
  34. void apagar(int l,int t) {
  35.   digitalWrite(l, LOW);
  36.   delay(t);
  37. }


VIDEO DEL FUNCIONAMIENTO









LABORATORIO 3

DESCRIPCIÓN DEL LABORATORIO :


Controlaré a través de Arduino ocho (8) LEDs puestos en una protoboard, haciendo que un LED se mueva en forma continua de izquierda a derecha, mientras por medio de los valores de dos Potenciómetros se controlan los tiempos que el LED permanece encendido y apagado.


MATERIALES UTILIZADOS

(1) Protoboard


(8) Leds


Cable utp

(1) Arduino uno

(2) Potenciometro

                                                     


DIAGRAMA DEL MONTAJE EN LA PROTOBOARD

DIAGRAMA DEL MONTAJE EN EL CIRCUITO


FOTOS DEL MONTAJE










CODIGO ARDUINO


  1. const int MAXLED = 8;
  2. int led[MAXLED] = {2,3,4,5,6,7,8,9};
  3. int pot1 = A0;
  4. int pot2 = A1;

  5. void setup() {
  6.   for (int i=0; i<MAXLED; i++)
  7.     pinMode(led[i], OUTPUT);
  8.     pinMode(pot1, INPUT);
  9.     pinMode(pot2, INPUT);
  10. }


  11. void loop() {
  12.   
  13.    
  14.   for (int i=0; i<MAXLED; i++) {
  15.   int  valorpot1 = analogRead(pot1);
  16.   int  valorpot2 = analogRead(pot2);
  17.     prender(led[i], valorpot1);
  18.     apagar(led[i], valorpot2);
  19.   }
  20.   
  21.   for (int i=MAXLED-2; i>0; i--) {
  22.   int  valorpot1 = analogRead(pot1);
  23.   int  valorpot2 = analogRead(pot2);
  24.     prender(led[i], valorpot1);
  25.     apagar(led[i], valorpot2);
  26.   }
  27. void prender(int led, int ms) {
  28.   digitalWrite(led, HIGH);
  29.   delay(ms);
  30. }

  31. void apagar(int led, int ms) {
  32.   digitalWrite(led, LOW);
  33.   delay(ms); 

  34. }


VIDEO DEL FUNCIONAMIENTO






LABORATORIO 4

DESCRIPCIÓN DEL LABORATORIO :

Controlaré a través de Arduino ocho (8) LEDs puestos en una protoboard, haciendo que un LED se mueva en forma continua de izquierda a derecha, mientras por medio de una interfaz gráfica en Processing/ControlP5 se controlan los tiempos que el LED permanece encendido y apagado.

MATERIALES UTILIZADOS

(1) Protoboard


(8) Leds


Cable utp

(1) Arduino uno


DIAGRAMA DEL MONTAJE EN LA PROTOBOARD

DIAGRAMA DEL MONTAJE EN EL CIRCUITO


FOTOS DEL MONTAJE
   
                            
                                   






CODIGO ARDUINO

  1. #define MAXLED 8

  2. int led [MAXLED]={2,3,4,5,6,7,8,9};
  3. int valor=0;
  4. int i=0; 
  5. int t_on=500;
  6. int t_off=100;
  7. int inc=1;

  8. void setup(){
  9.   Serial.begin(9600);
  10.   for (int i=0; i<MAXLED; i++){
  11.     pinMode(led[i], OUTPUT);  
  12.   }
  13. }

  14. void loop() {
  15.   if (Serial.available()>0){
  16.     valor=Serial.read();
  17.     if(valor=='t')
  18.       t_on=Serial.parseInt();
  19.     
  20.     if(valor=='q')
  21.       t_off=Serial.parseInt();


  22.   }
  23.   on(led[i], t_on);
  24.   off(led[i], t_off);
  25.   i+=inc;
  26.   if (i>MAXLED-1) inc=-1;
  27.   if (i==0) inc=+1;

  28. }

  29. void on(int led, int ms) {
  30.   digitalWrite(led, HIGH);
  31.   delay(ms);
  32. }

  33. void off(int led, int ms) {
  34.   digitalWrite(led, LOW);
  35.   delay(ms); 

  36. }

CÓDIGO PROCESSING
  1. import processing.serial.*;
  2. import controlP5.*;
  3. ControlP5 cp5;
  4. Slider slider1;
  5. Button boton1;
  6. Knob   perilla1;
  7. Serial puerto;

  8. void setup(){
  9.   size(600,400);
  10.   puerto = new Serial(this, Serial.list()[0],9600);
  11.   cp5 = new ControlP5(this);
  12.   slider1 = cp5.addSlider("t",0,1000,200,40,40,300,40);
  13.   slider1.setColor(new CColor (0x80008000,0xFF808080,0x80FF0000,0x80FF80FF,0xFF80FF00));
  14.   boton1 = cp5.addButton("aceptar",50,40,100,80,40);
  15.   boton1.setColor(new CColor (0x8000FF00,0xFF808000,0x80FF0000,0x00000000,0xFFFFFFFF));
  16.   perilla1 = cp5.addKnob("q",0,500,150,400,40,100);
  17.   perilla1.setColor(new CColor (0x8000FF00,0xFF808080,0xFFFF0000,0xFFFFFF00,0x00000000));
  18.   }
  19.  
  20.   void draw()
  21.     {
  22.     background(0);
  23.     }
  24.    
  25.     void controlEvent (ControlEvent  theEvent){
  26.     
  27.    String nombre=theEvent.getController().getName();
  28.    int valor=int(theEvent.getController().getValue());
  29.    println( nombre + ":" + valor);
  30.    puerto.write(nombre+valor);
  31.      }



VIDEO DEL FUNCIONAMIENTO






LABORATORIO 5

DESCRIPCIÓN DEL LABORATORIO :


Controlaré a través de Arduino un LED RGB puesto en una protoboard, vía PWM con tres (3) potenciómetros, uno para cada color.

MATERIALES UTILIZADOS

(1) Protoboard


(1) Led


Cable utp

(1) Arduino uno

(3) Potenciometros

                                                      


DIAGRAMA DEL MONTAJE EN LA PROTOBOARD




DIAGRAMA DEL MONTAJE EN EL CIRCUITO




FOTOS DEL MONTAJE











CÓDIGO ARDUINO
  1. int a,b,c,pot1,pot2,pot3;
  2. void setup() {
  3. pinMode(9, OUTPUT);
  4. pinMode(10, OUTPUT);
  5. pinMode(11, OUTPUT);
  6. pinMode(A5, INPUT);
  7. pinMode(A4, INPUT);
  8. pinMode(A0, INPUT);
  9. }
  10. void loop() {
  11. pot1=analogRead(A5);
  12. a=map(pot1,0,1023,0,255);
  13. pot2=analogRead(A4);
  14. b=map(pot2,0,1023,0,255);
  15. pot3=analogRead(A0);
  16. c=map(pot3,0,1023,0,255);
  17. analogWrite(9, a);
  18. analogWrite(10, b);
  19. analogWrite(11, c);
  20. }


VIDEO DEL FUNCIONAMIENTO







LABORATORIO 6


DESCRIPCIÓN DEL LABORATORIO :


Controlaré a través de Arduino un LED RGB puesto en una protoboard, vía PWM con una interfaz gráfica en Processing/ControlP5 para controlar el valor de cada color.

MATERIALES UTILIZADOS

(1) Protoboard


(1) Led


Cable utp

(1) Arduino uno


(2) Resistencias
     




DIAGRAMA DEL MONTAJE EN LA PROTOBOARD



DIAGRAMA DEL MONTAJE EN EL CIRCUITO



FOTOS DEL MONTAJE













CÓDIGO ARDUINO
  1. // Pines usados para el RGB (9-10) todos
  2. // son salidas digitales PWM (~)
  3.  
  4. int Red = 9;
  5. int Gre = 10;
  6. int Blu = 11;
  7. int valor = 0;
  8.  
  9. // Ciclo para activar los tres pines como salida
  10. void setup() {
  11.   pinMode(9, OUTPUT);
  12.   pinMode(10, OUTPUT);
  13.   pinMode(11, OUTPUT);
  14.   //Comunicación serial a 9600bps
  15.   Serial.begin(9600);
  16. }
  17.  
  18.  
  19. // Recibe la información de manera serial del processing
  20. // diferenciando la información del color rojo por la letra "R"
  21. // la información del color verde por la letra "G" y
  22. // la información del color azul por la letra "B"
  23. void loop() {
  24.   if (Serial.available()>0) {
  25.     char Color = Serial.read();
  26.     if (Color == 'R'){
  27.       valor = Serial.parseInt();
  28.       analogWrite(Red,valor);
  29.     }
  30.     if (Color == 'G'){
  31.       valor = Serial.parseInt();
  32.       analogWrite(Gre,valor);
  33.     }
  34.     if (Color == 'B'){
  35.       valor = Serial.parseInt();
  36.       analogWrite(Blu,valor);
  37.     }  
  38.   }


CÓDIGO PROCESSING


  1. // Se utiliza las librerias ControlP5 y Serial del Processing
  2. import controlP5.*;
  3. import processing.serial.*;

  4. // Se define la variable cP5 del tipo ControlP5
  5. ControlP5 cP5;

  6. // Se le da nombres a los tres Knob y al Serial
  7. Knob PerRed;
  8. Knob PerGre;
  9. Knob PerBlu;
  10. Serial serial;

  11. // Se necesitan inicializar el valor de los colores RGB
  12. // en este caso lo hacemos en 128
  13. int Red = 128;
  14. int Gre = 128;
  15. int Blu = 128;

  16. // Configuración inicial
  17. void setup() {
  18.   size(700550);  //Tamaño de la ventana

  19.   cP5 = new ControlP5(this);  //Crea el objeto ControlP5

  20.   // Crea el Knob del color Rojo
  21.   PerRed = cP5.addKnob("R")
  22.     .setRange(0255)
  23.       .setValue(86)
  24.         .setPosition(100280)
  25.           .setRadius(100)
  26.             .setNumberOfTickMarks(20)
  27.               .setTickMarkLength(8)
  28.                 .setLabelVisible(false)
  29.                   .setColorForeground(color(255))
  30.                     .setColorBackground(color(0))
  31.                       .setColorActive(color(25500))
  32.                         .setDragDirection(Knob.HORIZONTAL)
  33.                           ;
  34.   // Crea el Knob del color Verde
  35.   PerGre = cP5.addKnob("G")
  36.     .setRange(0255)
  37.       .setValue(128)
  38.         .setPosition(250110)
  39.           .setRadius(100)
  40.             .setNumberOfTickMarks(20)
  41.               .setTickMarkLength(8)
  42.                 .setLabelVisible(false)
  43.                   .setColorForeground(color(255))
  44.                     .setColorBackground(color(0))
  45.                       .setColorActive(color(02550))
  46.                         .setDragDirection(Knob.HORIZONTAL)
  47.                           ;
  48.   // Crea el Knob del color Azul
  49.   PerBlu = cP5.addKnob("B")
  50.     .setRange(0255)
  51.       .setValue(170)
  52.         .setPosition(400280)
  53.           .setRadius(100)
  54.             .setNumberOfTickMarks(20)
  55.               .setTickMarkLength(8)
  56.                 .setLabelVisible(false)
  57.                   .setColorForeground(color(255))
  58.                     .setColorBackground(color(0))
  59.                       .setColorActive(color(00255))
  60.                         .setDragDirection(Knob.HORIZONTAL)
  61.                           ;

  62.   String puerto = Serial.list()[0];
  63.   serial = new Serial(this, puerto, 9600);
  64. }

  65. // Se dibuja cada frame
  66. void draw() {
  67.   background(0xFF444444);  //Color Gris del fondo

  68.   fill(Red, Gre, Blu);
  69.   rect(5090600415);
  70.   fill(0xFF444444);
  71.   rect(5595590405);
  72.   fill(Red, 00);
  73.   ellipse(200380220220);
  74.   fill(0, Gre, 0);
  75.   ellipse(350210220220);
  76.   fill(00, Blu);
  77.   ellipse(500380220220);
  78.   fill(Red, Gre, Blu);
  79.   textFont(createFont("Gill Sans Ultra Bold"65));
  80.   text("Led RGB"18070);
  81.   fill(Red, 00);
  82.   textSize(30);
  83.   text("Red"60490);
  84.   fill(0, Gre, 0);
  85.   textSize(30);
  86.   text("Green"445135);
  87.   fill(00, Blu);
  88.   textSize(30);
  89.   text("Blue"350490);
  90.   fill(255);
  91.   textSize(25);
  92.   text("Juan Camilo Fernández López"190540);
  93. }

  94. // Como se va a actuar cuando ocurra un evento con los Knobs
  95. void controlEvent(ControlEvent evento) {
  96.   String nombre = evento.getController().getName();
  97.   int valor = int(evento.getController().getValue());
  98.   serial.write(nombre + valor);

  99.   // Guarda el valor en la variable para cada color,
  100.   // cuando se usa cada Knob
  101.   if (nombre == "R") {
  102.     Red = valor;
  103.   }
  104.   if (nombre == "G") {
  105.     Gre = valor;
  106.   }
  107.   if (nombre == "B") {
  108.     Blu = valor;
  109.   }
  110. }


VÍDEO DEL FUNCIONAMIENTO







LABORATORIO 7

DESCRIPCIÓN DEL LABORATORIO :


Controlaré a través de Arduino ocho (8) LEDs puestos en una protoboard, por medio de un IC 74HC595, controlando individualmente vía una interfaz gráfica en Processing/ControlP5 que LED está encendido o apagado.

MATERIALES UTILIZADOS

(1) Protoboard


(8) Led


Cable utp


(1) Arduino uno



(8) Resistencias
     


(1) Un IC 74HC595

                                                          


DIAGRAMA DEL MONTAJE EN LA PROTOBOARD





DIAGRAMA DEL MONTAJE EN EL CIRCUITO






FOTOS DEL MONTAJE














CÓDIGO ARDUINO


  1. // Se definen la cantidad de pines que vamos a usar como PIN
  2. // y la entrada analoga A0 como la que se va a usar por el
  3. // potenciómetro
  4. #define PIN 3
  5. #define Pot A0
  6.  
  7. // Se le dan nombres a los pines (7-9) del arduino
  8. // que van a ser usados por el integrado respectivamente
  9. // además el pin SH_CP osea Clock debe ser PWM(~)
  10. const int Latch = 8;
  11. const int Clock = 9;
  12. const int Data = 7;
  13.  
  14. int led[PIN] = {
  15.   7,8,9};
  16.  
  17. // Ocho secuencias
  18. int Serie1[7]={
  19.   129,66,36,24,24,36,66};
  20. int Serie2[9]={
  21.   0,128,192,224,240,248,252,254,255};
  22. int Serie3[12]={
  23.   255,126,60,24,16,8,16,8,24,60,126,255};
  24. int Serie4[2]={
  25.   240,15};
  26. int Serie5[14]={
  27.   129,0,131,133,137,145,161,0,193,161,145,137,133,131};
  28. int Serie6[2]={
  29.   195,60};
  30. int Serie7[11]={
  31.   1,0,1,0,15,0,15,0,255,255,0};
  32. int Serie8[50]={
  33.  1,2,4,8,16,32,64,128,64,32,16,8,4,2,1,2,4,8,16,32,64,128,192,160,144,136,132,130,129,131,133,137,145,161,193,225,209,201,197,195,199,203,211,227,243,235,231,239,255,0};
  34.  
  35. // Ciclo para activar los tres pines como salida
  36. // y el pin A0 como entrada
  37. void setup() {
  38.   for (int i=0; i<PIN; i++){
  39.     pinMode(led[i], OUTPUT);
  40.   }
  41.   pinMode(Pot, INPUT);
  42. }
  43.  
  44. // Recibe la info de la posición del potenciómetro
  45. void loop()
  46. {
  47.   int Pos = analogRead(Pot);
  48.   Pos = map(Pos, 010230,7);
  49.   Casos(Pos);
  50. }
  51.  
  52. // Según la posición del potenciómetro escoge un caso
  53. void Casos(int Valor)
  54. {
  55.   switch(Valor)
  56.   {
  57.   case 0:
  58.     for(int j=0;j<7;j++)
  59.     {
  60.       On(Serie1[j]);
  61.     }
  62.     break;
  63.   case 1:
  64.     for(int j=0;j<9;j++)
  65.     {
  66.       On(Serie2[j]);
  67.     }
  68.     break;
  69.   case 2:
  70.     for(int j=0;j<12;j++)
  71.     {
  72.       On(Serie3[j]);
  73.     }
  74.     break;
  75.   case 3:
  76.     for(int j=0;j<2;j++)
  77.     {
  78.       On(Serie4[j]);
  79.     }
  80.     break;
  81.   case 4:
  82.     for(int j=0;j<14;j++)
  83.     {
  84.       On(Serie5[j]);
  85.     }
  86.     break;
  87.   case 5:
  88.     for(int j=0;j<2;j++)
  89.     {
  90.       On(Serie6[j]);
  91.     }
  92.     break;
  93.   case 6:
  94.     for(int j=0;j<11;j++)
  95.     {
  96.       On(Serie7[j]);
  97.     }
  98.     break;
  99.   case 7:
  100.     for(int j=0;j<50;j++)
  101.     {
  102.       On(Serie8[j]);
  103.     }
  104.     break;
  105.   }        
  106. }
  107.  
  108. // Función para enviar los datos al Integrado IC 74HC595
  109. void On(int Valor)
  110. {
  111.   digitalWrite(Latch, LOW);
  112.   shiftOut(Data, Clock, MSBFIRST, Valor);
  113.   digitalWrite(Latch, HIGH);
  114.   delay(100);
  115. }



    CODIGO PROCESSING

    / Se utiliza las librerias ControlP5 y Serial del Processing
    import controlP5.*;
    import processing.serial.*;
     
    // Se define la variable cP5 del tipo ControlP5
    ControlP5 cP5;
     
    // Se le da nombres al Serial
    Serial serial;
     
    int[] led = new int[] {
      0, 0, 0, 0, 0, 0, 0, 0
    };
     
    // Configuración inicial
    void setup() {
      size(590, 250);  //Tamaño de la ventana
      noStroke();
     
      cP5 = new ControlP5(this);  //Crea el objeto ControlP5
     
      // Crea el Knob del color Rojo
      for (int i=0; i<led.length; i++)
      {
        cP5.addToggle("led"+i, 35+i*70, 140, 30, 30)
          .setMode(ControlP5.SWITCH);
      }
     
      String puerto = Serial.list()[0];
      //Comunicación serial a 9600bps
      serial = new Serial(this, puerto, 9600);
    }
     
    // Cada uno de los circuilos hecho toma el color determinado
    // del Led que se tiene en la protoboard
    void draw() {
      background(0xFF444444);
      fill(led[0] == 0 ? 0xFF222222 : color(255, 255, 0));
      ellipse(50, 100, 50, 50);
      for (int i=1; i<4; i++) {
        fill(led[i] == 0 ? 0xFF222222 : color(255, 0, 0));
        ellipse(50+i*70, 100, 50, 50);
      }
      for (int i=4; i<led.length; i++) {
        fill(led[i] == 0 ? 0xFF222222 : color(0, 255, 0));
        ellipse(50+i*70, 100, 50, 50);
      }
       fill(255);
       textFont(createFont("Gill Sans Ultra Bold", 50));
       text("Enciende un LED", 40, 50);
       fill(255);
       textSize(25);
       text("Juan Camilo Fernández López", 120, 230);
    }
     
    // Como se va a actuar cuando ocurra un evento con los botones
    void controlEvent(ControlEvent evento) {
      String nombre = evento.getController().getName();
      int valor = int(evento.getController().getValue());
     
      // Guarda el valor de cada boton
      for (int i=0; i<led.length; i++) {
        if (nombre.equals("led"+i)) {
          led[i] = valor;
          serial.write(i);
          serial.write(valor);
          println("evento: " + i + " / valor: "+valor);
        }
      }
    }


    VÍDEO DEL FUNCIONAMIENTO






    LABORATORIO 8

    DESCRIPCIÓN DEL LABORATORIO :


    Controlaré a través de Arduino un Display LED de 7-Segmentos puestos en una protoboard, por medio de un IC 74HC595, para mostrar un número de 0 a 9, dependiendo de la posición del Potenciómetro.

    MATERIALES UTILIZADOS

    (1) Protoboard


    Cable utp


    (1) Arduino uno



    (2) Resistencias
         

    (1) Display LED de 7-Segmentos 


    (3) potenciometros

                                                            





    DIAGRAMA DEL MONTAJE EN LA PROTOBOARD


    DIAGRAMA DEL MONTAJE EN EL CIRCUITO


    FOTOS DEL MONTAJE











    CÓDIGO ARDUINO


    1. // Se definen la cantidad de pines que vamos a usar como PIN
    2. // y la entrada analoga A0 como la que se va a usar por el
    3. // potenciómetro
    4. #define PIN 3
    5. #define Pot A0
    6.  
    7. // Se le dan nombres a los pines (7-9) del arduino
    8. // que van a ser usados por el integrado respectivamente
    9. // además el pin SH_CP osea Clock debe ser PWM(~)
    10. const int Latch = 8;
    11. const int Clock = 9;
    12. const int Data = 7;
    13.  
    14. int led[PIN] = {
    15.   7,8,9};
    16.  
    17. // El valor de cada uno de los numeros que voy
    18. // a mostrar en mi Display
    19. int Numeros[10]={63,6,91,79,102,109,125,7,127,111};
    20.  
    21. // Ciclo para activar los ocho pines como salida
    22. // y el pin A0 como entrada
    23. void setup() {
    24.   for (int i=0; i<PIN; i++){
    25.     pinMode(led[i], OUTPUT);
    26.   }
    27.   pinMode(Pot, INPUT);
    28. }
    29.  
    30. // Recibe la info de la posición del potenciómetro
    31. void loop()
    32. {
    33.   int Pos = analogRead(Pot);
    34.   Pos = map(Pos, 0, 1023, 0,9);
    35.   Casos(Pos);
    36. }
    37.  
    38. // Según la posición del potenciómetro escoge un caso
    39. // osea un numero
    40. void Casos(int Valor)
    41. {
    42.   switch(Valor)
    43.   {
    44.   case 0:
    45.      On(Numeros[0]);
    46.     break;
    47.   case 1:
    48.      On(Numeros[1]);
    49.     break;
    50.   case 2:
    51.      On(Numeros[2]);
    52.     break;
    53.   case 3:
    54.      On(Numeros[3]);
    55.     break;
    56.   case 4:
    57.      On(Numeros[4]);
    58.     break;
    59.   case 5:
    60.      On(Numeros[5]);
    61.     break;
    62.   case 6:
    63.      On(Numeros[6]);
    64.     break;
    65.   case 7:
    66.      On(Numeros[7]);
    67.     break;
    68.   case 8:
    69.      On(Numeros[8]);
    70.     break;
    71.   case 9:
    72.      On(Numeros[9]);
    73.     break;
    74.   }        
    75. }
    76.  
    77. // Función para enviar los datos al Integrado IC 74HC595
    78. void On(int Valor)
    79. {
    80.   digitalWrite(Latch, LOW);
    81.   shiftOut(Data, Clock, MSBFIRST, Valor);
    82.   digitalWrite(Latch, HIGH);
    83.   delay(10);
    VÍDEO DEL FUNCIONAMIENTO