|
Son yıllarda LED teknolojisinde hızlı gelişmeler olmakta.
Aydınlatma uygulamalarında artık 3mm-5mm çaplı LED’lerin yanısıra, yüksek ışık
akısına sahip flux LED, super flux LED ve power LED çeşitleri de yaygın olarak
kullanılmakta. Renk değiştiren uygulamalarda ise genellikle RGB LED’ler tercih
edilmekte.
Bu yazıda 8 pinli PIC12F675 mikro denetleyicisi kullanılarak
flux RGB LED’i kontrol eden bir sürücü devre verilmiştir. Gerçekleştirilen
elektronik devre ile LED’in ışık rengi kırmızı, yeşil, mavi, sarı, mor, turkuaz
ve beyaz olarak ayarlanabilmektedir. Tasarlanan bu devre ile çeşitli ışık
efektleri oluşturmak da mümkündür.
Işık rengini değiştirmek için en basit yöntem kırmızı (R), yeşil
(G) ve mavi (B) ışık yayan 3 farklı LED kullanmaktır. Bu 3 ana rengin
karıştırılmasıyla ara renkler kolayca elde edilebilmektedir. Örneğin
kırmızı-yeşil ışığın karışımı sarı rengi; kırmızı-mavi ışığın karışımı mor
rengi; yeşil-mavi ışığın karışımı ise turkuaz rengi verir. Ara renkleri elde
etmek için 3 ayrı LED kullanmak yerine tek bir kılıf içerisinde 3 adet LED çipi
barındıran RGB LED de kullanılabilir. Şekil 1-6’da piyasada satılan çeşitli LED
türleri görülmektedir.
|
|
 |
 |
|
Şekil 1: 5mm çaplı LED
|
Şekil 2: Flux LED
|
Şekil 3: Power LED
|
|
 |
 |
|
|
Şekil 4: 5mm RGB LED
|
Şekil 5: 5mm RGB LED
|
Şekil 6: Flux RGB LED
|
4 adet bacağa sahip RGB LED’lerin bağlantı şekli ortak anotlu
veya ortak katotlu olabilmektedir. Şekil 7’de bu bağlantı şekilleri
görülmektedir.

Şekil 7: RGB LED’in iç yapısı
Projeye ait elektronik devre şeması şekil 8’de görülmektedir.
Devrede PIC12F675 mikro denetleyicisi, 3 adet direnç ve bir adet flux RGB LED
bulunmaktadır. Besleme gerilimi 5V’dur. Mikro denetleyici 4MHz’lik dâhili
osilatör ile çalıştırılmaktadır. Ayrıca, yazılımda uygun konfigürasyon ayarları
yapıldığından, MCLR ucu ile VDD arasına bağlanması gereken dirence gerek
kalmamıştır. Devre bu haliyle oldukça sade yapıdadır.

Şekil 8: Devre şeması
R1, R2, R3 dirençleri, her bir LED’den 15-20mA akım geçecek
şekilde seçilmelidir. Direnç değerini hesaplarken port çıkış gerilimini dikkate
almak gerekir. Çünkü porttan çekilen akım arttıkça çıkış gerilim seviyesi önemli
ölçüde düşer. Örneğin, porttan hiç akım çekilmezken çıkış gerilimi 5V olduğu
halde, 20mA akım çekilirken çıkış gerilimi 3.7V’a kadar düşmektedir. Aşağıdaki
tabloda port akımı ile port gerilimi arasındaki ilişki görülmektedir.
|
Iport
(mA) |
Vport
(V) |
|
0 |
5 |
|
5 |
4.7 |
|
10 |
4.4 |
|
15 |
4 |
|
18 |
3.8 |
|
20 |
3.7 |
Devredeki direnç değeri (Vport-Vf)/ILED formülü ile
hesaplandığından, LED’in ileri yön gerilimini de bilmek gerekir. Bu projede
kullanılan flux RGB LED’in ileri yön gerilimi kırmızı için 1.9V; yeşil için
3.55V; mavi için 3.6V olarak ölçülmüştür. Buna göre, port çıkış geriliminin 3.8V
olduğu dikkate alınırsa R1 direnci 100 ohm, R2 ve R3 dirençleri 10 ohm
seçilebilir. Bu durumda kırmızı, yeşil ve mavi LED’lerin her birinden yaklaşık
19mA akım geçer. Bu da yeterli miktarda parlaklık sağlar. Eğer istenirse yeşil
ve mavi LED’ler direnç kullanmaya gerek olmaksızın port çıkışına doğrudan
bağlanabilir. Bu durumda da LED akımları 20mA olur. Fakat akımı bir direnç ile
sınırlamak daha uygun bir yöntemdir.
Flux RGB
LED’in ve PIC12F675’in bacak bağlantıları şekil 9 ve10’da görülmektedir.

Şekil 9: Flux RGB LED bacak
bağlantısı

Şekil 10: PIC12F675’in bacak
bağlantısı
PIC programı PIC C Lite derleyicisi kullanılarak yazılmıştır. Hi-Tech
(http://www.htsoft.com)
firması tarafından üretilen programın demo versiyonu (V8.05PL2) 12F675 mikro
denetleyicisini tanımaktadır. Renk değiştirme algoritmasına ait C programı
aşağıda verilmiştir. Programda ilk aşamada RGB LED’in 1’er saniye aralıkla
kırmızı, yeşil, mavi, sarı, mor, turkuaz ve beyaz renk ışık yayması
sağlanmıştır. Ardından, kırmızı LED’in ışık şiddeti yavaşça arttırılıp
azaltılmıştır. Daha farklı ışık efektleri oluşturmak için C programı üzerinde
uygun değişiklikler yapılmalıdır.
// PIC 12F675 ile Flux RGB LED sürme
// Şubat 2007 Yavuz EROL
#include <pic.h>
#include <delay.c>
#include <stdio.h>
#define BLED GPIO0 // Mavi LED
GPIO0'a bağlı
#define GLED GPIO1 // Yeşil LED
GPIO1'e bağlı
#define RLED GPIO2 // Kırmızı LED
GPIO2'ye bağlı
// Konfigürasyon ayarları
// Dahili osilatör seçili, MCLR direnci yok
__CONFIG(MCLRDIS&WDTDIS&PWRTEN&INTIO);
void bekle(void){ // 1s'lik gecikme
alt programı
unsigned char i;
for(i=0;i<5;i++){
DelayMs(200);
}
}
// Ton ve Toff süresi kadar bekle (Ton+Toff=10ms)
void bekle_on(unsigned char i){
unsigned char a;
for(a=0;a<i;a++){
DelayUs(39);
}
}
void bekle_off(unsigned char i){
unsigned char a;
for(a=0;a<255-i;a++){
DelayUs(39);
}
}
// ANA PROGRAM
main(void){
unsigned char i;
// Port ayarları
TRISIO=0x00; // Portların hepsini
çıkış seç
CMCON=0x07; // Portları sayısal I/O
olarak ayarla
ANSEL=0;
GPIO=0; // başlangıçta bütün
çıkışları lojik 0 yap
// 3 ana rengi, 3 ara rengi ve beyaz rengi
oluştur
RLED=1;GLED=0;BLED=0; bekle();
//Kırmızı
RLED=0;GLED=1;BLED=0; bekle();
//Yeşil
RLED=0;GLED=0;BLED=1; bekle();
//Mavi
RLED=1;GLED=1;BLED=0; bekle();
//Sarı
RLED=1;GLED=0;BLED=1; bekle(); //Mor
RLED=0;GLED=1;BLED=1; bekle();
//Turkuaz
RLED=1;GLED=1;BLED=1; bekle();
//Beyaz
GPIO=0;
// PWM sinyalinin görev periyodunu arttırıp
azaltarak
// ışık şiddetini değiştir
// Adım adım kırmızı LED'in parlaklığını
arttır
for(i=1;i<255;i++){
RLED=1;
bekle_on(i); // Ton
süresi kadar bekle
RLED=0;
bekle_off(i); //
Toff süresi kadar bekle
}
// Adım adım kırmızı LED'in parlaklığını
azalt
for(i=255;i>0;i--){
RLED=1;
bekle_on(i); // Ton
süresi kadar bekle
RLED=0;
bekle_off(i); //
Toff süresi kadar bekle
}
}
// Program sonu
Programın hex dosyası için
tıklayınız. Uygun bir programlama kartı ile hex dosyası PIC’e kolayca
yüklenir. Konfigürasyon ayarları C kodu içerisinde verildiğinden PIC programlama
aşamasında herhangi bir ayar yapmaya gerek yoktur. Yani osilatör türü
yanlışlıkla XT olarak seçilmemelidir.
LED’in parlaklığı PWM sinyalinin görev periyodu (d değeri)
değiştirilerek sağlanmaktadır. Şekil 11’deki animasyondan görüldüğü gibi
sinyalin frekansı sabit (100Hz) olduğu halde darbenin genişliği artıp
azalmaktadır. Bu sayede, görev periyodu küçük iken LED’in ortalama akımı düşük
olmakta; d değeri arttıkça ortalama akım artmaktadır. Yani, görev periyodunun
değişimi LED parlaklılığını doğrudan etkilemektedir.

Şekil 11: PWM sinyali
Projeye ait sürücü devre kullanıldığında LED akımı en fazla 20mA
olmaktadır. Işık şiddetinin daha yüksek olması isteniyorsa LED akımını 50mA’e
kadar arttırmak gerekir. Fakat bu akımı mikro denetleyicinin çıkış portundan
sağlamak mümkün olmadığından transistörlü bir sürücü devre kullanmak gerekir.
Şekil 12 ve 13’de sırasıyla ortak anotlu ve ortak katotlu RGB LED için örnek
sürücü devreler görülmektedir. İlk devreden görüldüğü gibi LED’in ortak anot ucu
güç kaynağının pozitif ucuna bağlıdır. LED’in katot uçları ise birer NPN
transistör ve direnç üzerinden toprağa bağlıdır. Q0 ucuna 5V’luk gerilim
uygulandığında transistör iletime girerek LED’den akım geçmesini sağlamaktadır.
İkinci devrede ise LED’in ortak katot ucu güç kaynağının negatif ucuna bağlıdır.
Q0 ucu lojik 1 seviyesinde iken PNP transistör kesimdedir ve LED’den akım
geçmez. Q0 ucu toprak potansiyeline çekildiğinde transistör iletime girerek
LED’in anot ucunu R direnci üzerinden kaynağın pozitif ucuna bağlar.
|
|
 |
|
Ortak anotlu RGB LED sürücü
|
Ortak katotlu RGB LED sürücü
|
Her iki devrede de LED akımlarını sınırlamak üzere birer direnç
bulunmaktadır. Bu dirençleri uygun şekilde seçmek için aşağıdaki formülü
kullanmak gerekir.

Formülde, Vcc besleme gerilimini, Vce(sat) transistörün doyma
gerilimini, Vf ise LED’in ileri yön gerilimini göstermektedir. LED akımı,
kullanılan LED’in türüne göre 20mA ile 50mA arasında değişebilir. Devredeki R
direnci, akım değerini LED’e zarar vermeyecek şekilde sınırlar. Aşağıdaki
tabloda Vcc=5V ve Vce(sat)=0.1V için hesaplanan direnç değerleri toplu olarak
görülmektedir.

Tablo: R direncinin seçimi
Örneğin, devrede kırmızı, yeşil, mavi renkli 3 adet 5mm LED
kullanılacaksa LED akımlarını 20mA ile sınırlandırmak için R1 direnci 150 ohm,
R2 direnci 100 ohm, R3 direnci ise 82 ohm seçilir. Eğer, flux RGB LED
kullanılacaksa, LED akımını 50mA ile sınırlandırmak için R1 direnci 56 ohm, R2
direnci 8.2 ohm, R3 direnci ise 10 ohm seçilir. Fakat bu direnç değerleri her
flux RGB LED türü için geçerli değildir. Eldeki mevcut LED’den 50mA akım geçtiği
sırada LED uçlarındaki gerilimi ölçüp formülde yerine yazarak gerekli direnç
değerini yeniden hesaplamak gerekir. Bu projede kullanılan flux RGB LED’in ürün
kodu 913PRGB2C, görüş açısı ise 130 derecedir. Bu LED
http://www.ledmar.com/ adresinden temin edilebilir. Devre çalıştırıldığında
oluşan bazı renkler şekil 14’de görülmektedir.

Şekil 14: Renkler
C dosyası
Projenin, Antrak gazetesi okurlarına faydalı olmasını dilerim.
Yavuz EROL (Arş. Gör.)
Fırat Üniv. Elek-Elektronik Müh. Bölümü
www.yavuzerol.com
|