Arduino Temel Uygulamalar 04: RGB Döngüsü


 Arduino: RGB Dongusu
Arduino Temel Uygulamalar 04: RGB Döngüsü
Daha önce PIC mikroDenetleyici için microC’de yazdığım RGB döngüsünün Arduino’ya uyarlanmış uygulaması
Program Arduino 1.0’da derlenmiş.
Şematik gösterim Fritzing programı ile hazırlanmıştır.

Devre Şeması;

Arduino: RGB Dongusu

/* 
http://www.erkancil.net   
Erkan CIL  
RGB LED uygulamasi  
06/03/2012  
*/

const int colorRed = 13;          // KIRMIZI LED 13. Pinde tanimli
const int colorBlue = 12;         // MAVI LED 12. Pinde tanimli
const int colorGreen = 11;        // YESIL LED 11. Pinde tanimli

void setup()
{
pinMode(colorRed, OUTPUT);        // KIRMIZI LED cikis olarak tanimli
pinMode(colorBlue, OUTPUT);       // MAVI LED cikis olarak tanimli 
pinMode(colorGreen , OUTPUT);     // YESIL LED cikis olarak tanimli 
}

unsigned int i;                   // i degiskeni tanimlaniyor
unsigned int T1, T2;              // T1 ve T2 degiskeni tanimlaniyor


void redToGreen(){                //KIRMIZI'dan YESIL'e PWM ile gecis
 T1 = 3000;
 T2 = 0;
for(i=0; i<3000; i++)
{
digitalWrite(colorRed, HIGH);
delayMicroseconds(T1);
digitalWrite(colorRed, LOW);
digitalWrite(colorBlue, HIGH);
delayMicroseconds(T2);
digitalWrite(colorBlue, LOW);
T1 = T1-1;
T2 = T2+1;
}
}

void greenToBlue(){              //YESIL'den MAVI'ye PWM ile gecis
 T1 = 3000;
 T2 = 0;
for(i=0; i<3000; i++)
{
digitalWrite(colorBlue, HIGH);
delayMicroseconds(T1);
digitalWrite(colorBlue, LOW);
digitalWrite(colorGreen, HIGH);
delayMicroseconds(T2);
digitalWrite(colorGreen, LOW);
T1 = T1-1;
T2 = T2+1;
}
}

void blueToRed(){                //MAVI'den YESIL'e PWM ile gecis
 T1 = 3000;
 T2 = 0;
for(i=0; i<3000; i++){

digitalWrite(colorGreen, HIGH);
delayMicroseconds(T1);
digitalWrite(colorGreen, LOW);
digitalWrite(colorRed, HIGH);
delayMicroseconds(T2);
digitalWrite(colorRed, LOW);
T1 = T1-1;
T2 = T2+1;
}
}

void rgbloop(){                 // RGB dongusu

digitalWrite(colorRed, HIGH);
delay(100);
digitalWrite(colorRed, LOW);
redToGreen();
digitalWrite(colorBlue, HIGH);
delay(100);
digitalWrite(colorBlue, LOW);
greenToBlue();
digitalWrite(colorGreen, HIGH);
delay(100);
digitalWrite(colorGreen, LOW);
blueToRed();

}

void loop()                     // Ana dongu
{
 rgbloop(); 
}  

Çalışmanın Videosu;

  1. #1 by Hamdi on 01 Aralık 2015 - 19:36

    Teşekkürler, elinize sağlık. Farklı uygulamalar bekliyoruz. Kolay gelsin.

(yayınlanmayacak)