Bu programda analogWrite komutu kullanarak renklerin parlaklığı yavaşça artıp azalmaktadır. Renklerin karışımından ara renklerin oluştuğunu göreceksiniz.
RGB modüller üzerinde 4 adet pin bulunur. Bunlar kırmızı, yeşil ve mavi ledlerin birer adet artı uçları ve hepsine ait ortak eksi ucudur. Kablo kullanmadan direkt olarak modülü arduino üzerine takabilirsiniz. Programı biz 9-10-11-12 nolu pinlere takılacak şekilde yazdık. Modülün eksi ucunu 12 nolu pine denk getiriniz. Program başında bu pini lojik 0 yaparak kendi GND ucumuzu yapmış olduk. Dikkat ederseniz arduino uno üzerinde 3-5-6-9-10-11 nolu pinler üzerinde alternatif sembolü var. Bu pinlerden analog çıkış alınabilir. Dijital çıkış veren pinlere bağlı led ya yanıktır ya da sönük. Oysa ki analog pinlerden 0 ile 5V arasında istediğimiz gerilimi üreterek ledin parlaklığını değiştirebiliriz.
For döngüsü içinde her seferinde sayac değişkenindeki değer bir artarken ” sayac2=255-sayac;” komutuyla sayac2 değeri 255 ten aşağıya doğru bir bir azalmaktadır. Böylece “analogWrite(r,sayac);” komutu ile kırmızı renk yavaş yavaş parlarken, “analogWrite(g,sayac2);” komutuyla yeşil renk sönmektedir.
int r=11;
int g=10;
int b=9;
int t=500;
int sayac2;
void setup ()
{
pinMode(r,OUTPUT);
pinMode(g,OUTPUT);
pinMode(b,OUTPUT);
pinMode(12,OUTPUT);// rgb modülün gnd ucu oldu
digitalWrite(r,0);digitalWrite(g,0);digitalWrite(b,0);digitalWrite(12,0);
}
void loop()
{
//———– kırmızı parlarken yeşil sönüyor————–
for(int sayac=0; sayac<254; sayac++)
{
analogWrite(r,sayac);
sayac2=255-sayac;
analogWrite(g,sayac2);
delay(5);
}
//———–Mavi parlarken kırmızı sönüyor———–
for(int sayac=0; sayac<254; sayac++)
{
analogWrite(b,sayac);
sayac2=255-sayac;
analogWrite(r,sayac2);
delay(5);
}
//———–yeşil parlarken mavi sönüyor———–
for(int sayac=0; sayac<254; sayac++)
{
analogWrite(g,sayac);
sayac2=255-sayac;
analogWrite(b,sayac2);
delay(5);
}
}