10 Ocak 2010 Pazar

PIC kontrollü RGB Led Sürücü


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
#include
#include
#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
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 LEDhttp://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
Projenin, Antrak gazetesi okurlarına faydalı olmasını dilerim.
Yavuz EROL (Arş. Gör.)
Fırat Üniv. Elek-Elektronik Müh. Bölümü
Yavuz Erol'a Teşekkür ederim .

"ALINTIDIR "

Hiç yorum yok:

Yorum Gönder

İzleyiciler

LED DİRENÇ HESAPLAMA

All LEDs require current limiting, without a current limiting mechanism the LED will usually burn out in under a second. Adding a simple resistor is the easiest way to limit the current. Use the calculator below to find out the value of resistor you require.

For example if you are wanting to power one of our_blank">red LEDs in an automotive application you would see that the typical forward voltage is 2.0 Volts and the maximum continuous forward current is 30mA. Therefore you would enter 14.5, 2.0 and 30 into the Single LED calculation box. After calculating you get 470ohm 1 watt as the result. Here is a that allows you to enter a resistor value and generate the corresponding color code.

Note: For automotive applications use the actual system voltage, not 12 Volts. Most 12 Volt system actually operate at around 14.5 Volts.

Supply Voltage
VOLTS
Voltage Drop Across LED
VOLTS
Desired LED Current
MILLIAMPS



Calculated Limiting Resistor
OHMS
Nearest higher rated 10% resistor

Calculated Resistor Wattage
WATTS
Safe pick is a resistor with
power rating of (common values are .25W, .5W, and 1W)
WATTS

LEDs in series

Several leds in series with one resistor
Supply Voltage
VOLTS
Voltage Drop Across LED
VOLTS
Desired LED Current
MILLIAMPS
How many LEDs connected




Calculated Limiting Resistor
OHMS
Nearest higher rated 10% resistor

Calculated Resistor Wattage
WATTS
Safe pick is a resistor with
power rating of (common values are .25W, .5W, and 1W)
WATTS
LM317 UYGULAMA DEVRELERİ HESAPLAMASI

 




Çıkış Voltajı
R1 resistor

R2 resistor

R1 resistor
R2 resistor

Çıkış Voltajı


Lm317 uygulama devreleri ve detayli bilgiye Buradan ulasabilirsiniz

LM555 - ASTABLE OSCILLATOR CALCULATOR

LM555 - ASTABLE OSCILLATOR CALCULATOR
Value Of R1 Ohms Value Of R2 Ohms
Value Of C1 Microfarads
Output Time HIGH SECONDS Output Time LOW SECONDS Output Period HIGH + LOW SECONDS Output Frequency HERTZ Output Duty Cycle PERCENT
Resistor values are in Ohms (1K = 1000) - Capacitor values are in Microfarads (1uF = 1)

NOTE: The leakage currents of electrolytic capacitors will affect the actual output results of the timers. To compensate for leakage it is often better to use a higher value capacitor and lower value resistances in the timer circuits.

LM555 Astable Oscillator Circuit Diagram


LM555 - ASTABLE CAPACITOR CALCULATOR

The next calculator can find the capacitance needed for a particular output frequency if the values of R1 and R2 are known.

Value Of R1 Ohms Value Of R2 Ohms
Frequency Desired Hertz
Capacitance uF
s

VOLT AMPER OHM ve WATT HESAPLAMA

Current:
kA (kiloamps) A (amps) mA (milliamps) µA (microamps)
Voltage:
kV (kilovolts) V (volts) mV (millivolts) µV (microvolts)