jueves, 13 de octubre de 2016

LABORATORIO # 7

DESCRIPCIÓN

En este laboratorio desde el arduino en donde se controlara un LED RGB, lo cual se debe manejar la intensidad de luz de cada uno de los colores ("Rojo";"Verde";"Azul"), del led para obtener diferentes combinaciones de colores, para poder combinarlos utilizaremos el software Processing, es decir, manipularemos la cantidad de luz para cada color para el rojo,verde y azul; esta variable de entrada debemos acomodarla dentro de un rango de (0 a 255), debido a que el led funciona con valores PWM y este es el rango total de esta modulación, por esta razón los pines RGB del led deben ir conectados a salidas PWM del arduino.

MATERIALES DEL LABORATORIO 

Arduino
Protoboard.
Resistencias de 220 Ohmios.
Led RGB.
Kit de cables para arduino.


MATERIALES DEL LABORATORIO 


    DIAGRAMAS

    PROTOBOARD




    FOTOS MATERIALES Y MONTAJE

































    CÓDIGO

    ARDUINO
    1. #define MAXLED 3 //creamos la variable maxled 3 elementos
    2.      
    3.     int led[MAXLED] = {3,5,6}; //creamos un vector para los pines a utilizar
    4.     int valor = 0; //creamos la variable valor 1 de tipo entero
    5.     int i = 0; //creamos la variable valor 1 de tipo entero
    6.      
    7.      
    8.     void setup()
    9.     {
    10.       Serial.begin(9600); // la comunicacion serial sera a 9600 baudios
    11.       for(int i = 0; i < MAXLED ; i++)
    12.       {
    13.         pinMode(led[i], OUTPUT); // los pines del 3,5,6 seran de salida
    14.       }
    15.     }
    16.      
    17.     void loop()
    18.     {
    19.       if(Serial.available() > 0) // si hay datos en el puerto serial entra a la condicion
    20.       {
    21.         valor = Serial.read(); // lee lo que hay en el puerto serial
    22.         if(valor == 'R')
    23.           i = 0;
    24.         if(valor == 'G')
    25.           i = 1;
    26.         if(valor == 'B')
    27.           i = 2;
    28.         valor = Serial.parseInt(); // lee y toma el siguiente valor convirtiandolo en entero
    29.         analogWrite(led[i], valor); // escribe el valor por el pin xx
    30.       }
    31.      
    32.     }

    PROCESSING

    1. import controlP5.*;         // utilizar la libreria controlp5
    2. import processing.serial.*;  // utilizar la liberia processing.serial
    3. ControlP5 cp5;                 // definir la variable cp5 del tipo ControlP5
    4. Knob rojo, verde, azul;        // definir la variable rojo,verde y azul del tipo Knob
    5. Textlabel texto1, texto2, texto3, texto4; // definir las variables texto del tipo Textlabel
    6. Serial serial;                // definir la variable serial del tipo Serial
    7.  
    8. // configuración inicial
    9. void setup()
    10. {
    11. serial = new Serial(this, Serial.list()[0],9600);  // inicializamos el puerto serial a 9600 baudios
    12. String puerto = Serial.list()[0];                  //definimos la variable puerto de tipo cadena
    13. size(600,380);                       // tamaño de la ventana
    14. cp5 = new ControlP5(this);          // crear el objeto ControlP5
    15.  
    16. // crear el knob para la intensidad de color rojo
    17. rojo = cp5.addKnob("R",0,255,0,70,120,100);
    18. rojo.setColor(new CColor(0xFFAA0000, 0xFF550000, 0xFFFF0000,0xFFFFFFFF, 0xFFFFFFFF));
    19.  
    20. // crear el knob para la intensidad de color verde
    21. verde = cp5.addKnob("G",0,255,0,260,120,100);
    22. verde.setColor(new CColor(0xFF00AA00, 0xFF005500,0xFF00FF00, 0xFFFFFFFF, 0xFFFFFFFF));
    23.  
    24. // crear el knob para la intensidad de color azul
    25. azul = cp5.addKnob("B",0,255,0,450,120,100);
    26. azul.setColor(new CColor(0xFF0000AA, 0xFF000055, 0xFF0000FF,0xFFFFFFFF, 0xFFFFFFFF));
    27.  
    28. // crear texto
    29. texto1 = cp5.addTextlabel("label")
    30.                     .setText("CONTROLES DEL LED RGB")
    31.                     .setPosition(20,30)
    32.                     .setColorValue(0xffffffFF)
    33.                     .setFont(createFont("Comic Sans MS",40))
    34.                     ;
    35.                    
    36. texto2 = cp5.addTextlabel("label1")
    37.                     .setText("Rojo")
    38.                     .setPosition(95,235)
    39.                     .setColorValue(0xffffffFF)
    40.                     .setFont(createFont("Comic Sans MS",15))
    41.                     ;              
    42.    
    43. texto3 = cp5.addTextlabel("label2")
    44.                     .setText("Verde")
    45.                     .setPosition(280,235)
    46.                     .setColorValue(0xffffffFF)
    47.                     .setFont(createFont("Comic Sans MS",15))
    48.                     ;
    49.                    
    50. texto4 = cp5.addTextlabel("label3")
    51.                     .setText("Azul")
    52.                     .setPosition(475,235)
    53.                     .setColorValue(0xffffffFF)
    54.                     .setFont(createFont("Comic Sans MS",15))
    55.                     ;              
    56.  
    57. // otra forma de crear texto
    58. texto4 = new Textlabel(cp5,"",40,280,600,200);  
    59. texto4.setFont(createFont("MV Boli",15));
    60.  
    61. }
    62.  
    63. void draw()
    64. {
    65. background(10,10,10);  // color de fondo de la ventana
    66.  texto4.draw(this);    // introduce el texto en la ventana
    67.  
    68. }
    69.  
    70. void controlEvent (ControlEvent evento)  // se activa cuando ocurra un evento con los botones
    71. {
    72. String nombre = evento.getController().getName();   // recoje el nombre del slider y lo convierte en cadena
    73. int valor = int(evento.getController().getValue());   // recoje el valor del slider y lo convierte en entero
    74. serial.write(nombre + ":" + valor);   // envia por el puerto serial el nombre y el valor
    75. println(nombre + ":" + valor);    // imprime por pantalla el nombre y el valor
    76. }



    No hay comentarios.:

    Publicar un comentario