Arduino ile RGB LED Sürme
RGB LED'ler animasyon ve ışıklandırma sistemlerinde oldukça fazla kullanılmaktadır. Yapısında 3 tane farklı renk barındıran RGB LED 4 bacaklı olup arduino ile kontrol edilebilmektedir. Bu yazımızda sizler için RGB LED sürme işlemini gerçekleştirdik. Ayrıntılar yazımızda.
11.12.2015 tarihli yazı 28351 kez okunmuştur.
RGB İngilizce'deki red, green, blue yani sırasıyla kırmızı, yeşil ve mavi renklerin baş harfleriyle oluşmuş bir ifadedir. Çalışma mantığı ise bu 3 renk kullanılarak farklı türlerde renk vermektir. Bir kontrol devresi ile 16 renk verebilme yeteneğine sahiptir. RGB LED’ler birçok animasyon ve ışıklandırma sisteminde kullanılmaktadır. İçerisindeki her bir renge ait parlaklığın değiştirilmesi ile farklı renkler ortaya çıkartan RGB LED’leri bu yazımızda arduino ile yönetceğiz. Aklımızda farklı sorunlar oluşmaması için normal bir LED sürmekle arasında fazla bir fark yoktur.
RGB LED’in içerisinde kırmızı, yeşil ve mavi LED bulunduğundan dolayı 4 adet bacağı bulunmaktadır. Bacakların biri mavi LED'in anodu diğeri kırmızı LED'in anodu bir diğeri son rengimiz olan yeşilin anodu ve son bacak ise ortak katot ucudur.
RGB LED’lerin ortak katot ve ortak anot olarak 2 çeşidi vardır. Kullandığımız LED’in tipi burada önem arz etmektedir. Çünkü ortak katot LED’er PWM sinyalinin pozitif bölümüyle aktif olurken bu durum ortak anot LED’lerde ise negatif bölümüyle aktif olur.
Ortak Katot LED sürmek için ise;
► analogWrite(dutyDegeri) ;
► Ortak anot LED surmek ic;in:
► analogWrite( 255 - dutyDegeri) ;
Örneğimizde ortak anot bağlantılı bir RGB LED süreceğiz.
Şekil 2: İki tür RGB Led Bağıntıları
►İlginizi Çekebilir: Proteus ile Arduino Simulasyonu
Hatırlatma (PWM)
Herkesin bildiği gibi Arduinoda giriş ve çıkış pinlerinde kullanılan gerilim 5'tur. Örnek verirsek bir LED'i en parlak haliyle görmek istiyorsak 5V gerilimde ve 20 mA akım çekecek şekilde bağlantı kurmalıyız. Parlaklığı değiştirmek istersek o zaman gerilimle oynamamız gerekmektedir. Örneğin 5V yerine 3 V alabiliriz. Bu konuda karşımıza pulse width modulation (PWM) denen bir teknik çıkıyor. Bu teknik, bunu başarabilmek için çıkışta aldığımız 5V gerilimi belirli bir zaman aralığında açıp kapatarak 0 ile 5V arasında istediğimiz gerilimi almamıza imkan sağlıyor. Basit bir şekilde açıklarsak bir LED çok hızlı bir şekilde yanıp sönerse gözümüz bunu tam olarak algılayamadığı için parlaklığı daha düşük olarak algılar. Peki hangi pin çıkışları PWM tekniğine sahip derseniz aşağıdaki resme bakabilirsiniz.
Sayıların yanında dalga işareti gibi olan pinler PWM yeteneğine sahiptir.
int kirmiziPin = 9;
int yesilPin = 10;
int maviPin = 11;
void setup()
{
pinMode(kirmiziPin, OUTPUT);
pinMode(yesilPin, OUTPUT);
pinMode(maviPin, OUTPUT);
}
void loop()
{
changeColour (255, 0, 0); // kirmizi
delay(1500);
changeColour (0, 255, 0); // yesil
delay(1500);
changeColour (0, 0, 255); // mavi
delay(1500);
changeColour (255, 255, 0); // sari
delay(1500);
changeColour (80, 0, 80); // mor
delay(1500);
changeColour (0, 255, 255); // acik mavi
delay(1500);
changeColour (255, 255, 255); // beyaz
delay(1500);
}
void changeColour(int kirmizi, int yesil, int mavi)
{
kirmizi = 255 - kirmizi;
yesil = 255 - yesil;
mavi = 255 - mavi;
analogWrite(kirmiziPin, kirmizi);
analogWrite(yesilPin, yesil);
analogWrite(maviPin, mavi);
}
Kodlamaya başlamadan önce hangi pinleri kullanacağımızı belirlemeliyiz. 9. pine kırmızı, 10. Pine yeşil ve son olarak 11. pini maviye en sonda 220 ohm’luk dirençleri bağlıyoruz. Yukarıda bahsettiğim üzerine led ortak anot yapıya sahip olduğu için anot bacağınıda kartın 5v pinine bağlıyoruz.
Kodumuza devam edersek setup kısmında kullanacağımız pinleri çıkış olarak tanımlıyoruz. Çünkü o pinlerden güç alacağız bundan dolayı OUTPUT olarak tanımlamalıyız. Diğer önemli nokta ise changeColour olarak oluşturduğumuz fonksiyonda analogWrite komutu PWM çıkış pininden alacağımız gerilimi ayarlamamıza imkan sağlamaktadır.
analogWirete(PWM Çıkış pini, 0-255 arası integer değer)
Buradaki 0 ve 255 rakamlarını merak edebiliriz. Az önce belirttildiği gibi arduinodan max. 5V çıkış olabilir 255 burada 5V u temsil eder. 0-255 ise 0 ile 5V arasındaki tüm değerleri kapsar. Örneğin analogWrite(11,100) komutu 11 numaralı pinden 5V*(100/255)=1.96V geriliminde çıkış almamıza yardımcı olmaktadır.
Kaynak:
►Maker
►Robotistan
►Arduino
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
ANKET