PDA

Orijinalini görmek için tıklayınız : 8. Bilgisayar üzerinden röle kontrolü



bolubeyi
09.Haziran.2015, 21:43
CKiH-5w040g

https://temrinlerim.org/images/role_kontrolu.png


https://temrinlerim.org/images/processing4.PNG

Processing ve arduino ikilisi ile bilgisayarımız üzerinden bir röleyi kontrol edeceğiz. Processing arayüzünde oluşturduğumuz bir butonla ledi yakıp söndürüyoruz. Konu ile ilgili dosyalar konu ekinde mevcuttur.

Devre şeması:
https://temrinlerim.org/images/processing5.PNG

Processing programı:

import processing.serial.*;

// Köşe koordinatları
float x = 50;
float y = 25;
float w = 75;
float h = 40;

Serial seriPort;
boolean button = false;

void setup(){
size(175,100);
background(#ffffff);
stroke(0);
noFill();
seriPort = new Serial(this,"COM8",9600); // Seri haberleşmeyi açıyoruz (9600 baud)
}
void draw() {
if (button) {
fill(#FF0000);
stroke(0);

} else {
fill(#00FF00);
stroke(#000000);

}
/* sol üst köşesi (x,y) noktasında olan ve uzun kenarı w,
kısa kendarı h genişliğinde bir dikdörtgen çizdiriyoruz */
rect(x,y,w,h);
fill(0x123456);
}

/*
Fare butonuna basıldığında bu fonksiyon çağırılıyor.
Eğer butona basılan koordinat butonun köşe koordinatları
içerisinde ise buton durumunu değiştiriyoruz.

MouseX butona basılan koordinatın X bileşeni
MouseY butona basılan koordinatın Y bileşeni
*/

void mousePressed() {
if (mouseX > x && mouseX < x+w && mouseY > y && mouseY < y+h) {
if(button)
{
seriPort.write('H');
}
else
{
seriPort.write('L');
}
button = !button; // buton değişkenini tersine çevir
}
}

Arduino programı:

import processing.serial.*;

// Köşe koordinatları
float x = 50;
float y = 25;
float w = 75;
float h = 40;

Serial seriPort;
boolean button = false;

void setup(){
size(175,100);
background(#ffffff);
stroke(0);
noFill();
seriPort = new Serial(this,"COM8",9600); // Seri haberleşmeyi açıyoruz (9600 baud)
}
void draw() {
if (button) {
fill(#FF0000);
stroke(0);

} else {
fill(#00FF00);
stroke(#000000);

}
/* sol üst köşesi (x,y) noktasında olan ve uzun kenarı w,
kısa kendarı h genişliğinde bir dikdörtgen çizdiriyoruz */
rect(x,y,w,h);
fill(0x123456);
}

/*
Fare butonuna basıldığında bu fonksiyon çağırılıyor.
Eğer butona basılan koordinat butonun köşe koordinatları
içerisinde ise buton durumunu değiştiriyoruz.

MouseX butona basılan koordinatın X bileşeni
MouseY butona basılan koordinatın Y bileşeni
*/

void mousePressed() {
if (mouseX > x && mouseX < x+w && mouseY > y && mouseY < y+h) {
if(button)
{
seriPort.write('H');
}
else
{
seriPort.write('L');
}
button = !button; // buton değişkenini tersine çevir
}
}
Orjinal konu: https://temrinlerim.org/index.php?topic=175.0