Eskiden…çoook eskiden geceleri mumlar ile aydınlanırdık. Şimdi ise LED ampullerle her yer ışıl ışıl. Ancak bu LED ampullerde mumların titrek ışığı eksik. O zaman biraz nostalji yapalım ve Arduino ve LED’lerle titrek mum ışığı efekti yapalım.
LED’leri mum gibi titretmek için parlaklıklarını rasgele bir şekilde değiştirmemiz gerekiyor. LED parlaklıklarını PWM pinleri ve analogWrite() komutu ile istediğimiz gibi değiştirebildiğimizi biliyoruz. Peki rasgele değişiklikleri nasıl yapacağız? Bu durumda yardımımıza Arduino’nun random() komutu yetişiyor.
Arduino’nun random() komutu bize istediğimiz aralıkta rasgele sayılar üretebiliyor. Bu komutu deger = random(10, 45); şeklinde kullandığımızda 10 ile 44 arasında rasgele bir sayıyı deger değişkenine aktarır. Bu komutu bir alt değer ile kullanmak zorunda değiliz. Örneğin deger = random(100); şeklinde kullandığımızda 0-99 arasında rasgele bir sayı üretir.
Bir alev etkisi elde etmek istiyorsak sarı ve kırmızının çeşitli tonlarına ihtiyacımız var. Mum ışığı çoğunlukla sarı, bir miktar da kırmızı renk içeriyor. O zaman 2 adet sarı LED, bir adet de kısık parlaklıkta yanacak kırmızı LED kullanmak doğal bir mum ışığı elde etmek için ideal.
Projemizin devre kurulumu ise aşağıdaki şekilde;
Tüm LED’leri 330Ω değerindeki koruma dirençleri ile Arduino’nun PWM özellikli pinlerine bağladık. Daha fazla LED kullanmak istersek diğer PWM özellikli pinleri kullanabiliriz.
Aşağıdaki kodu inceleyecek olursak LED’leri 0-100 arasında rasgele seçilen bir rakamın 100 veya 150 fazlası değerindeki PWM ile yakıyoruz. Bu uygulama LED’leri yeterince parlak tutarken parlaklıklarının aşırı değişmesini engelliyor.
Sarı LED’leri random+150 değerinde yakarken, kırmızı LED’i ise random+100 değerinde yaktığımızı fark etmişsinizdir. Bu, kırmızı LED’in görece daha az parlak yanmasını ve gerçek mum ışığı renginin yakalanabilmesini sağlıyor.
Tek bir LED ile mum ışığı rengi yakalamak istersek piyasada nadir bulunan amber renkli LED’lerden edinebiliriz.
Son olarak yan yana bağladığımız üç LED’imizi tek bir LED’miş gibi göstermek için üzerlerine ince bir peçete geçirmemiz gerçek etkiyi yakalamamız için yeterli olacaktır.
Arduino’da iyi olmak için öncelikle elektronikte iyi olmak gerekir. Türkiye’nin en iyi temel elektronik eğitim seti ARDUINO ÖNCESİ TEMEL ELEKTRONİK EĞİTİM VE DENEY SETİ‘ni keşfedin. Gereksiz bilgilerden arındırılmış basit ve eğlenceli anlatımla ELEKTRONİK öğrenin ve Arduino’ya METE HOCA farkıyla güçlü başlayın!
Sketch kodunu kopyalamak için pencerenin sağ üst köşesindeki butona tıklayabilir veya buraya tıklayarak ZIP dosyası olarak indirebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
/* Arduino ve LED'ler ile Mum Efekti Nasıl Yapılır? Arduino ile LED'lerle Mum Efekti yapma projesinin detaylı açıklamasını web sitemizde bulabilirsiniz. Mete Hoca https://www.metehoca.com/ */ int LedS1 = 9; // 1. sarı LED'in pini int LedK1 = 10; // Kırmızı LED'in pini int LedS2 = 11; // 2. sarı LED'in pini void setup() { pinMode(LedS1, OUTPUT); // LED pinlerimizi çıkış olarak ayarlıyoruz pinMode(LedK1, OUTPUT); pinMode(LedS2, OUTPUT); } void loop() { analogWrite(LedS1, random(100)+150); // 1. sarı LED'i rasgele parlaklıkta yakıyoruz analogWrite(LedK1, random(100)+100); // Kırmızı LED'i rasgele parlaklıkta yakıyoruz analogWrite(LedS2, random(100)+150); // 2. sarı LED'i rasgele parlaklıkta yakıyoruz delay(random(100)); // Parlaklık değişiklikleri arasında rasgele // bekliyoruz } |