Diagrama en protoboard
Diagrama esquematico
Foto Montaje
Codigo Arduino
int ledR = 3;
int ledG = 4;
int ledB = 5;
int valor;
void setup() {
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledB, OUTPUT);
Serial.begin(9600);
}
// the loop routine runs over and over again
forever:
void loop() {
//x =
Serial.read();
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);
}
Vídeo Arduino
Código Proccesing
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);
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