Sliderbar Arduino + Processing
1 bericht
• Pagina 1 van 1
Sliderbar Arduino + Processing
Mensen,
Het volgend ik weer wat zitten knutselen met software.
Ik wou het volgende hebben.
Hoe kan ik twee RBG strips aansturen via mijn pc ( real time ).
Simpel we nemen een Arduino machtig speelgoed.
prutsen er een beetje code in
Helemaal geweldig .. ik kan nu 6 PWM's aanspreken via serial ( comport)
maar hoe krijg ik dat voor elkaar daar hebben Processing voor ( gratis te downloaden)
hier onder de code
Zo dat was het weer en veel plezier mee.
Het volgend ik weer wat zitten knutselen met software.
Ik wou het volgende hebben.
Hoe kan ik twee RBG strips aansturen via mijn pc ( real time ).
Simpel we nemen een Arduino machtig speelgoed.
prutsen er een beetje code in
- Code: Alles selecteren
void setup()
{
// declare the serial comm at 9600 baud rate
Serial.begin(9600);
// output pins
pinMode(9, OUTPUT); // red
pinMode(10, OUTPUT); // green
pinMode(11, OUTPUT); // blue
pinMode(3, OUTPUT); // red
pinMode(5, OUTPUT); // green
pinMode(6, OUTPUT); // blue
// another output pin o be used as GROUND
pinMode(8, OUTPUT); // ground
digitalWrite(8, LOW);
}
void loop()
{
// call the returned value from GetFromSerial() function
switch(GetFromSerial())
{
case 'R':
analogWrite(9, GetFromSerial());
break;
case 'G':
analogWrite(11, GetFromSerial());
break;
case 'B':
analogWrite(10, GetFromSerial());
break;
case '1':
analogWrite(3, GetFromSerial());
break;
case '2':
analogWrite(5, GetFromSerial());
break;
case '3':
analogWrite(6, GetFromSerial());
break;
}
}
// read the serial port
int GetFromSerial()
{
while (Serial.available()<=0) {
}
return Serial.read();
}
Helemaal geweldig .. ik kan nu 6 PWM's aanspreken via serial ( comport)
maar hoe krijg ik dat voor elkaar daar hebben Processing voor ( gratis te downloaden)
hier onder de code
- Code: Alles selecteren
import processing.serial.*;
Serial port;
sliderV sV1, sV2, sV3,sV4,sV5,sV6;
color cor;
void setup() {
size(800, 800);
println("Available serial ports:");
println(Serial.list());
// check on the output monitor wich port is available on your machine
port = new Serial(this,"COM3", 9600);
// create 3 instances of the sliderV class
sV1 = new sliderV(100, 100, 90, 255, #FF0000);
sV2 = new sliderV(200, 100, 90, 255, #03FF00);
sV3 = new sliderV(300, 100, 90, 255, #009BFF);
sV4 = new sliderV(400, 100, 90, 255, #FF0000);
sV5 = new sliderV(500, 100, 90, 255, #03FF00);
sV6 = new sliderV(600, 100, 90, 255, #009BFF);
}
void draw() {
background(0);
sV1.render();
sV2.render();
sV3.render();
sV4.render();
sV5.render();
sV6.render();
// send sync character
// send the desired value
port.write('R');
port.write(sV1.p);
port.write('G');
port.write(sV2.p);
port.write('B');
port.write(sV3.p);
port.write('1');
port.write(sV4.p);
port.write('2');
port.write(sV5.p);
port.write('3');
port.write(sV6.p);
}
/*
Slider Class - www.guilhermemartins.net
based on www.anthonymattox.com slider class
*/
class sliderV {
int x, y, w, h, p;
color cor;
boolean slide;
sliderV (int _x, int _y, int _w, int _h, color _cor) {
x = _x;
y = _y;
w = _w;
h = _h;
p = 90;
cor = _cor;
slide = true;
}
void render() {
fill(cor);
rect(x-1, y-4, w, h+10);
noStroke();
fill(0);
rect(x, h-p+y-5, w-2, 13);
fill(255);
text(p, x+2, h-p+y+6);
if (slide==true && mousePressed==true && mouseX<x+w && mouseX>x){
if ((mouseY<=y+h+150) && (mouseY>=y-150)) {
p = h-(mouseY-y);
if (p<0) {
p=0;
}
else if (p>h) {
p=h;
}
}
}
}
}
Zo dat was het weer en veel plezier mee.
Advertisement
1 bericht
• Pagina 1 van 1
Terug naar Afgeronde projecten
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 2 gasten