Sitemizde arduino uygulamalarına ağırlık vermeye başladık. Bu yazımızda ki arduino uygulaması ise; arduino PWM yöntemini kullanarak elimizdeki bir RGB led ile dekoratif aydınlatma olacak.
RGB ledlerin çok geniş kullanım alanları mevcuttur. Özellikle dekoratif aydınlatma,elektronik aletler,göstergeler,arabalar gibi bir çok alanda renk yönetimi kendi elimizde olduğu için tercih edilmektedirler. Biz başlıktanda anlaşılacağı üzere dekoratif evimizin bir köşesinde bir fanusun içinde kullanabileceğimiz aydınlatma yapacağız.
Kırmızı, mavi,yeşil ana renklerin dışında pembe, turuncu,mor,lila gibi ara renkleride elde edebileceğiz.
öncelikle bir rgb ledin pinlerini görelim. 2 çeişt rgb led vardır ortak anot ve ortak katod olarak. Biz ortak katod olanı kullanacağız.
Görüldüğü gibi;
1:mavi
2:ground
3:yeşil
4:kırmızı
Gerekli malzemeler:
Arduino UNO
3 adet 330 veya 220 ohm direnç
1 adet RGB led
Öncelikle RGB ledimizi test etmeliyiz. Bunu çok basit bir şekilde arduino 5V ve ground pinleriyle araya birde direnç bağlayarak RGB ledin bacaklarını tek tek sağlamlık kontrolü yapabilirsiniz. Sorun olmadığı görüldükten sonra geçelim devremize:
Kullanacağımız fonksinyonumuz analogWrite()
Analog write çıkışları 0-5V arası analog çıkış vermektedir.
Örnek olarak:
analogWrite(red_led,50); // red_led(kırmızı led) analog çıkış pini olan 9 a bağlandı.
Ve bu sekilde kırmızı ledi besleyecek olan voltaj:(5/255)/50V=0.98V olarak hesaplanır.
analogWrite(blue_led,100); // blue_led(mavi led) analog çıkış pini olan 10 a bağlandı.
Ve burdada mavi ledi besleyecek olan voltaj:(5/255)*100=1.96V tur.
Ve birde for döngüsü kullanacağız.
Burada görselliği arttırmak içi her bir pine 0-255 aralığında bazı yumusak gecikmeler yapacağız.(milisaniye cinsinden)
for(int i=0;i<=255;i+=3) { analogWrite(redPin,255-i); analogWrite(greenPin, i); delay(100); }
Devremizi şekildeki gibi bağladıktan sonra
Kodu arduino ide ‘ye atıyoruz.
nO
int redPin = 10; int greenPin = 11; int bluePin = 9; void colourTransition(); void setup() { pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); } void loop() { colourTransition(); } void colourTransition() { for(int i=0;i<=255;i+=3) { analogWrite(redPin,255-i); analogWrite(greenPin, i); delay(100); } for(int i=0;i<=255;i+=3) { analogWrite(greenPin,255-i); analogWrite(bluePin, i); delay(100); } for(int i=0;i<=255;i+=3) { analogWrite(bluePin,255-i); analogWrite(redPin, i); delay(100); } }