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.
- DIAGRAMAS (FRITZING)
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