Devre şeması:


Program arayüzü:



Processing kodu:
scription">Kod:
import controlP5.*;

/*
  Processing Örneği - 3
 Processing ile Seriport üzerinden 
 LED Kontrolü 
 
 4 toggle nesnesi ile Arduino'ya
 bağlı olan 4 adet LED kontrol ediliyor
 
 ControlP5 kütüphanesindeki Toggle kontrolleri
 kullanılıyor
 */


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

ControlP5 cp5;
Serial seriPort;

void setup() {
  size(420, 100);

  cp5 = new ControlP5(this); // Kontrol nesnesini oluştur
  seriPort = new Serial(this, "COM2", 9600); //seri port nesnesini oluştur

  // Toggle Nesnelerini oluşturuyoruz 
  cp5.addToggle("led1") // led1 ismini veriyoruz
    .setPosition(40, 40) // nesnenin konumu
      .setSize(50, 20) // nesnenin boyutu (en,boy)
        .setValue(false) // başlangıç durumu (false)
          .setMode(ControlP5.SWITCH) // anahtar görünümü
            ;

  cp5.addToggle("led2")
    .setPosition(140, 40)
      .setSize(50, 20)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;

  cp5.addToggle("led3")
    .setPosition(240, 40)
      .setSize(50, 20)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;

  cp5.addToggle("led4")
    .setPosition(340, 40)
      .setSize(50, 20)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;

  cp5.addToggle("led5")
    .setPosition(440, 40)
      .setSize(50, 20)
        .setValue(false)
          .setMode(ControlP5.SWITCH)
            ;
  background(0); //arkaplan siyah
}

void draw() {
}
/* led1 toggle nesnesin tıklandığında çağırılacak olan fonksiyon
 gelen bayrağın durumuna göre (true / false) ilgili veri
 seri haberleşme üzerinden gönderiliyor
 */
void led1(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('A');
    println("LED-1 yakıldı");
  } 
  else {
    seriPort.write('B');
    println("LED-1 söndürüldü");
  }
}

void led2(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('C');
    println("LED-2 yakıldı");
  } 
  else {
    seriPort.write('D');
    println("LED-2 söndürüldü");
  }
}

void led3(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('E');
    println("LED-3 yakıldı");
  } 
  else {
    seriPort.write('F');
    println("LED-3 söndürüldü");
  }
}

void led4(boolean bayrak) {
  if (bayrak==true) {
    seriPort.write('G');
    println("LED-4 yakıldı");
  } 
  else {
    seriPort.write('H');
    println("LED-4 söndürüldü");
  }
}
Arduino kodu:
description">Kod:
/* 
 Processing Örneği - 3 
 Processing üzerinden gelen verilerle
 4 adet LED Kontrol ediliyor
 */

// LED bağlatı pinleri
int ledler[] = {
  8,9,10,11};
char gelenVeri;
void setup()
{
  pinMode(ledler[0],OUTPUT);
  pinMode(ledler[1],OUTPUT);
  pinMode(ledler[2],OUTPUT);
  pinMode(ledler[3],OUTPUT);

  Serial.begin(9600);
}

void loop()
{
  while(Serial.available()>0)
  {
    gelenVeri = Serial.read();
    switch(gelenVeri)
    {
    case 'A':
      digitalWrite(ledler[0],HIGH);
      break;
    case 'B':
      digitalWrite(ledler[0],LOW);
      break;
    case 'C':
      digitalWrite(ledler[1],HIGH);
      break;
    case 'D':
      digitalWrite(ledler[1],LOW);
      break;
    case 'E':
      digitalWrite(ledler[2],HIGH);
      break;
    case 'F':
      digitalWrite(ledler[2],LOW);
      break;
    case 'G':
      digitalWrite(ledler[3],HIGH);
      break;
    case 'H':
      digitalWrite(ledler[3],LOW);
    }
  }
}
Orjinal konu: https://temrinlerim.org/index.php?topic=176.0