Processing ile görsel RGB LED kontrolü

Arduinomuz ile yaptığımız projeleri Processing programı ile görsel kontrolü mümkündür.

Asıl sorumuz “Processing programı ile arduino üzerinden RGB led için renk kontrolünün nasıl gerçekleştrebiliriz?”

Evet gerçekleştrebiliriz. arduino ile programlama yapıldıktan sonra geriye seri porttan alınan ve girilen değerlerin processing programı ile kontrolünün sağlanmasıdır.

Projemizin devre şeması

RGB_semasi

 

Arduino için programımız

/*
SERİ porttan RGB LED KONTROLÜ
*/

// LED bağlatı pinleri
int rpin = 11; // kırmızı
int gpin = 10; // yeşil
int bpin = 9; // mavi

float h = 0; //hue (ton) değeri
int kirmizi=0, green=0, blue=0; // renk değerleri
int durum = 1;
int gelen = 0;

void setup()
{
Serial.begin(9600);

}

void loop()
{

while(Serial.available()>0)
{
gelen = Serial.read();
switch(durum)
{
case 1:
if(gelen == 'R'){
durum = 2;
}
break;

case 2:
kirmizi = gelen;
durum = 3;
break;

case 3:
yesil = gelen;
durum = 4;
break;

case 4:
mavi = gelen;
durum = 1;
break;
}
}

// Ortak katot için
analogWrite(rpin, 255 - kirmizi);
analogWrite(gpin, 255 - yesil);
analogWrite(bpin, 255 - mavi);

// Ortak anot için
/*
analogWrite(rpin, r);
analogWrite(gpin, g);
analogWrite(bpin, b);
*/
delay(20);
}

Processing programımız için Programımız

Not: Processing programını eğer ilk defa kullanıyorsanız controlp5 kütüphanesine ihtiyacınız vardır. Bu kütüphaneyi  sketch/ import library / add butonuna basark gelen pencereden controlp5 yazarak indirebilirsiniz. Kütüphaneyi kurduktan sonra alttaki programımızı kopyalayıp yapıştırın ve RUN butonuna basınız .  Pencere açılacaktır buradan mouse ile LED rengini istediğiniz renk yapabilirsiniz.


/**
* Processing ver ControlP5 Kütüphanesini otomatik indirebilirsiniz.
* RGB LED Kontrolü www.arduinom.org tarafından yayınlanmıştır.
*/

import controlP5.*;
import processing.serial.*;

ControlP5 controlP5;
Serial myPort;  // Create object from Serial class

ColorPicker cp;
int redDeger;
int greenDeger;
int blueDeger;

void setup() {
size(400,100);
controlP5 = new ControlP5(this);
cp = controlP5.addColorPicker("picker",0,0,255,20);
String portName = Serial.list()[0];
myPort = new Serial(this, portName, 9600);
}

void draw() {
background(cp.getColorValue());
redDeger = int(red(cp.getColorValue()));
greenDeger = int(green(cp.getColorValue()));
blueDeger = int(blue(cp.getColorValue()));
println("RED "+redDeger + " GREEN "+greenDeger + " BLUE "+blueDeger);
RGBGonder();
delay(50);
}

void RGBGonder()
{
myPort.write('R');
myPort.write(redDeger);
myPort.write(greenDeger);
myPort.write(blueDeger);
}

 

 

Bir Cevap Yazın

Time limit is exhausted. Please reload CAPTCHA.