jueves, 26 de marzo de 2015

LABORATORIO 5

DESCRIPCIÓN:

 consiste el controlar un LED RGB desde el Arduino, via una interfaz grafica en Processing/ControlP5 para controlar la intensidad de  los LEDs (rojo, verde, azul) del RGB. 


MATERIALES:
  • Arduino 
  • 1 LED RGB
  • 3 resistencias

MONTAJE PASO A PASO:
  • montamos el LED RGB en la protoboard
  • realizamos las conexiones del cicuito en la protoboard con el arduino, teniendo el cuenta el GND y el pin out para cada color del  LED según nuestra programación.

  • Haga clic en Opciones
  • DIAGRAMAS  (FRITZING)

    • En protoboard
    • ESQUEMATICO



    •  








    • En PCB










    • VIDEO DEL FUNCIONAMIENTO:












CÓDIGO FUENTE EN ARDUINO:

1:  //** Laboratorio #5: controlar 1 LED RGB desde Processing/ControlP5  
2:  para controlar la intensidad de cada color del RGB  
3:   * Autor: FANOR ZAPATA   
4:   */  
5:     
6:  int valor=0;  
7:     
8:  #define MAX 9  
9:  int led[MAX]={2, 3 , 5};  
10:  int valorR=100;  
11:  int valorG=100;  
12:  int valorB=100;  
13:     
14:     
15:  void setup(){  
16:   Serial.begin(9600);  
17:   for(int pin=0; pin<=MAX;pin++){  
18:    pinMode(led[pin], OUTPUT);  
19:      
20:   }  
21:  }  
22:     
23:     
24:  void loop(){  
25:     
26:   if (Serial.available()>0){  
27:    valor=Serial.read();  
28:    if (valor=='R'){  
29:    valorR=Serial.parseInt();  
30:    }  
31:    if (valor=='G'){  
32:    valorG=Serial.parseInt();  
33:    }  
34:      
35:    if (valor=='B'){  
36:    valorB=Serial.parseInt();  
37:    }  
38:   }  
39:   prender(led[0], valorR);  
40:   prender(led[1], valorG);  
41:   prender(led[2], valorB);  
42:  }  
43:  void prender(int le, int tem){  
44:   analogWrite(le, tem);  
45:     
46:  }  
47:  void apagar(int le, int tem){  
48:   analogWrite(le, tem);  
49:     
50:     
51:  }  
52:   pinMode(A2, INPUT);  
53:   pinMode(A3, INPUT);  
54:     
55:   pinMode(4, OUTPUT);  
56:   pinMode(5, OUTPUT);  
57:   pinMode(6, OUTPUT);  
58:  }  
59:     
60:  void loop() {  
61:     
62:   // codigo para que sea repetitivo y dependa de las entradas analogas//  
63:  int valorR=analogRead (A1)/4;  
64:  int valorB=analogRead (A2)/4;  
65:  int valorG=analogRead (A3)/4;  
66:     
67:  analogWrite (4, valorR);  
68:  analogWrite (5, valorB);  
69:  analogWrite (6, valorR);  
70:     
71:     
72:  }  

CODIGO FUENTE EN PROCESSING/CONTROLP5:
1:  //** Laboratorio #5: controlar 1 LED RGB desde Processing/ControlP5  
2:  para controlar la intensidad de cada color del RGB  
3:   * Autor: FANOR STIWAR ZAPATA   
4:   */  
5:     
6:   // Importamos las librerias de controlP5 y serial//  
7:     
8:  import controlP5.*;  
9:  import processing.serial.*;  
10:     
11:  // creamos las variables para controlP5, el Slider y el puerto serial  
12:     
13:  ControlP5 cp5;  
14:  Knob KnobA;  
15:  Knob KnobB;  
16:  Knob KnobC;  
17:  Serial serial;  
18:  int valR = 128;   
19:  int valG = 128;   
20:  int valB = 128;  
21:     
22:   // Solo se ejecuta una vez, al iniciar el Sketch//  
23:     
24:  void setup() {  
25:     
26:   // Tamaño de la Ventana //   
27:     
28:   size(800, 450);  
29:   noStroke();  
30:     
31:   // Creamos el objeto de ControlP5//  
32:     
33:   cp5 = new ControlP5(this);  
34:     
35:   // Creamos el objeto de Slider//  
36:     
37:   KnobA = cp5.addKnob("R", 0, 255, 128, 40, 40, 200);  
38:   KnobA.setColor( new CColor(  
39:   0xFFAA0000, 0xFF550000, 0xFFFF0000,   
40:   0xFFFFFFFF, 0xFFFFFFFF));  
41:     
42:   KnobB = cp5.addKnob("G", 0, 255, 128, 240+10, 40, 200);  
43:   KnobB.setColor( new CColor(  
44:   0xFF00AA00, 0xFF005500, 0xFF00FF00,   
45:   0xFFFFFFFF, 0xFFFFFFFF));  
46:     
47:   KnobC = cp5.addKnob("B", 0, 255, 128, 440+20, 40, 200);  
48:   KnobC.setColor( new CColor(  
49:   0xFF0000AA, 0xFF000055, 0xFF0000FF,   
50:   0xFFFFFFFF, 0xFFFFFFFF));  
51:     
52:   // Creamos el objeto del serial//  
53:     
54:   serial = new Serial(this, Serial.list()[1], 9600);  
55:  }  
56:     
57:     
58:  void draw() {  
59:   background(0xFF444444);  //*color gris en el fondo *//  
60:     
61:     
62:   /*definir el color de relleno combinando los valores  
63:    de los colores de los 3 Knobs  
64:   */  
65:     
66:   fill(valR, valG, valB);   
67:     
68:   // dibujar el rectángulo con ese color//  
69:     
70:   rect(20, 300, 750, 120);  
71:  }  
72:     
73:   // Cuando ocurra un evento, aquí lo procesamos//  
74:     
75:  void controlEvent(ControlEvent evento) {  
76:     
77:   // Obtenemos el nombre y el valor del evento//  
78:     
79:   String nombre = evento.getController().getName();  
80:   int valor = int(evento.getController().getValue());  
81:   println(nombre + valor);  
82:   serial.write(nombre+valor);  
83:     
84:   // guardar el valor en la variable para cada color  
85:     
86:   if (nombre == "R") {  
87:    valR = valor;  
88:   }  
89:   if (nombre == "G") {  
90:    valB = valor;  
91:   }  
92:   if (nombre == "B") {  
93:    valG = valor;  
94:   }  
95:     
96:  }  
97:     















No hay comentarios:

Publicar un comentario