Etiketler

21 Eylül 2014 Pazar

Arduino RGB LED

Merhabalar

Bu yazımda sizlere Arduino ile RGB led kullarak rasgele farklı renk yakmaktan bahsetmek istiyorum.

Rgb led yeşil, mavi ve kırmızı renklerin bir ledde birleştirilmesi ile oluşturulmuştur. Ana renklerden meydana gelir ve bu renklerin bazılarının beraber kullanılması ile ara renkler elde edilir.








Bu uygulamamızda RGB led kullanarak 1sn aralıklarla kırmızı, mavi, yeşil, sarı, cyan, magenta ve beyaz renklerini rasgele olarak yakacağınız. Gerekli olan malzemeler, şematik ve Arduino kodumuz aşağıdaki gibidir. Kodun nasıl çalıştığı satırların yanındaki yorum kısımlarında mevcuttur. Uygulamanın çalışır haldeki fotografları ve videosu da yazının sonunda yer almaktadır.

Herkese kolay gelsin.


Gerekli olan malzemeler

1-Arduino UNO
1-330ohm direnç
1-RGB led
1-breadboard
4-jumper kablo

Devre :



Kod:

int ledcolor = 0;
int a = 1000; //rengin ne kadar süre yanacağını belirliyoruz. Her renk 1 sn boyunca yanacak.
int red = 11; //kırmızı pin
int green = 12; //yeşil pin
int blue = 13; //mavi pin
void setup() { //çıkış pinlerimizi set ediyoruz

pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
}

void loop() {
int ledcolor = random(7); //0-6 arası rasgele bir sayı seçiliyor
switch (ledcolor) {
case 0: //eğer sayı 0 ise kırmızı
analogWrite(red, 51); //pwd* (sinyal genişlik modülasyonu)
delay(a);
analogWrite(red, 255);
break;
case 1: //sayı 1 ise yeşil
digitalWrite(green, LOW);
delay(a);
digitalWrite(green, HIGH);
break;
case 2: //2 ise mavi
digitalWrite(blue, LOW);
delay(a);
digitalWrite(blue, HIGH);
break;
case 3: //3 ise sarı , sarı kırmızı ile yeşil rengin beraber yanması sonucu oluşur.
analogWrite(red, 95);// pwd*
digitalWrite(green, LOW);
delay(a);
analogWrite(red, 255);
digitalWrite(green, HIGH);
break;
case 4: //4 ise cyan, cyan rengi kırmızı ve mavinin beraber yanması ile oluşur
analogWrite(red, 168); //pwd*
digitalWrite(blue, LOW);
delay(a);
analogWrite(red, 255);
digitalWrite(blue, HIGH);
break;
case 5: //5 ise magenta, magenta rengi yeşil ile mavinin beraber yanması sonucu oluşur
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
delay(a);
digitalWrite(green, HIGH);
digitalWrite(blue, HIGH);
break;
case 6: //6 ise beyaz, beyaz ise 3 ana rengin beraber yanması sonucu olusur
analogWrite(red, 155);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
delay(a);
analogWrite(red, 255);
digitalWrite(green, HIGH);
digitalWrite(blue, HIGH);
break;
}

}



Çalışır durumdaki hali:





Çalışır hali;



*  PWM (Pulse Width Modulation),(Sinyal genişlik modülasyonu) darbe genişlik modülasyonu anlamına gelir. Temel olarak çıkışta elde edilmek istenilen sinyalin bant genişliğini (frekans düzenlemesi olarak da düşünülebilir) ve dalga biçimini belirlemek amacıyla kullanılan bir yöntemdir. Digital araçlarda analog sonuç almaya yarar. RED 255 yazdığımızda aslında biz digiyal olarak 1 sonucunu alıyoruz ve 5v veriyoruz. Ancak RED 155 yazdığımızda bu 5v dan farklı bir değer oluyor ve lambaya tam olarak kırmızı değeri, kırmızının parlaklığını vermiyor. Çünkü her renk farklı bir V'da tepki verir. 



 Yararlandığım Kaynaklar;

http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/?ALLSTEPS
http://pwm.nedir.com/#ixzz3DxqrEtV5

Hiç yorum yok:

Yorum Gönder