En este laboratorio vamos a controlar 1 LEDS (RGB), para controlar la intensidad de cada color
con proccesing.
Elementos utilizados:
- Placa Arduino One
- 1 LED RGB
- 3 Resistencias 220 Ohmios
-1 protoboar
Diagrama protoboar
Diagrama esquema
Codigo Arduino
int ledR = 11;
int ledG = 10;
int ledB = 9;
int valor;
void setup() {
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledB, OUTPUT);
Serial.begin(9600);
}
void loop() {
while (Serial.available() < 1);
char letra = Serial.read();
while (Serial.available() < 1);
valor = 255-Serial.read();
if (letra == 'r')
analogWrite(ledR, valor);
if (letra == 'g')
analogWrite(ledG, valor);
if (letra == 'b')
analogWrite(ledB, valor);
}
Codigo Procesing
import controlP5.*;
import processing.serial.*;
ControlP5 cp5;
Serial puerto;
int valR = 128;
int valG = 128;
int valB = 128;
void setup() {
size(240, 500);
noStroke();
cp5 = new ControlP5(this);
Slider slideR =
cp5.addSlider("R", 0, 255, 128, 15, 180, 50, 300);
slideR.setColor( new CColor(
0xFFAA0000, 0xFF550000, 0xFFFF0000,
0xFFFFFFFF, 0xFFFFFFFF));
Slider slideG =
cp5.addSlider("G", 0, 255, 128, 95, 180, 50, 300);
slideG.setColor( new CColor(
0xFF00AA00, 0xFF005500, 0xFF00FF00,
0xFFFFFFFF, 0xFFFFFFFF));
Slider slideB =
cp5.addSlider("B", 0, 255, 128, 175, 180, 50, 300);
slideB.setColor( new CColor(
0xFF0000AA, 0xFF000055, 0xFF0000FF,
0xFFFFFFFF, 0xFFFFFFFF));
String COM = Serial.list()[0];
puerto = new Serial(this, COM, 9600);
}
void draw()
{
background(0xFF444444); // color gris del fondo
fill(valR, valG, valB);
rect(15, 15, 210, 150);
}
public void controlEvent(ControlEvent theEvent) {
String nombre = theEvent.getController().getName();
int valor = int(theEvent.getController().getValue());
if (nombre == "R") {
valR = valor;
puerto.write('r');
puerto.write(valR);
}
if (nombre == "G") {
valG = valor;
puerto.write('g');
puerto.write(valG);
}
if (nombre == "B") {
valB = valor;
puerto.write('b');
puerto.write(valB);
}
}
No hay comentarios:
Publicar un comentario