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ı 20663 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 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
-
İlginç Robotlar Serisi
-
Siemens Kaçak Akım Koruma Cihazları | RCD, RCCB
-
Siemens 3WL açık tip güç şalterleri ACB
-
Siemens 7KM PAC3100, 3200, 4200 Ölçüm Cihazları Teknik Özellikler
-
Konvertör için SINAMICS V20 / G120 Smart Access Module 2
-
Kurulum ve bağlantı - SINAMICS V20 / G120 Smart Access Module 1
-
Sigma Elektrik Tanıtım Videosu
-
Kaçak Akım Algılamalı Şalterlere Açtırma Bobini Takılması
-
K400 K630 Tip Şalterlere Açtırma Bobini Takılması
-
Kaçak Akım Algılamalı Şalterlere Yardımcı Kontak Takılması
-
Sigma Elektrik Tanıtım Filmi
ANKET