Merhaba arkadaşlar bugün sizle LDR (ışığa duyarlı direnç) kullanarak karanlıkta yanıp aydınlıkta sönen ışık devresi yapacağız. Projeye geçmeden önce Biraz LDR hakkında bilgi edinelim. Daha sonra proje hakkında konuşmaya devam edebiliriz.
LDR ( light-dependent resistor- Foto direnç)
LDRler üzerine düşen ışık ile ters orantılı olarak lineer olmayan bir grafikle değer değiştiren dirençlerdir. Yani ldr üzerine düşen ışık 2 kat artarsa direnç değeri azalır ancak tam yarıya inmez. LDR nin birçok kullanım alanı mevcut biz bu yazıda nasıl kullanıldığını çok basit bir uygulama ile öğreneceğiz ilerleyen günlerde LDR içeren eğlenceli ve biraz daha karışık örnekler blogumuzda olacak.
Malzemeler
- 1 adet LDR
- 1 adet led
- 1 adet 10K ohm direnç
- 1 adet 220 ohm direnç
- 5 adet jumper yada kablo kesiti
- 1 adet arduino
- 1 adet breadboard
- Bilgisayar
Devre Kurulumu
 |
| Karanlıkta yanan led devresi - Arduonik |
LDR nin bir ucunu GND pinine diğer ucuna ise 10Kohm direnç bağlıyoruz ayrıca direnç bağladığımız ucu A0 pinine bağlamayıda unutmuyoruz. Led ise dağa öğrendiğimiz gibi kısa bacağını GND pinine uzun bacağınıda diğer ucunu 6. pine bağladığımız 220 ohm luk dirence bağlıyoruz.
Daha iyi anlamanız içn yandaki şemayı kullanabilirsiniz
Programala
Bu başlıkta pek bir şey yazmaya gerek yok basit bir İf-Else ile kuruyoruz mantığı Serial bağlantısı hakkında yakın zamanda bilgi vereceğim. Zaten gerekli açıklamalar satır sonlarında yazıyor
// Karanlıkta yanan ışık projesi, arduonik.blogspot.com
int ldr = A0; // ldr mizi analog pine bağlıyoruz
int ldr_deger ; //ldr değerinin tutulacağı değişkeni tanımlıyoruz değişkenimiz tam sayı olacağı için int(integer) olarak belirliyoruz
int led = 6; // led bağladığımız pini tanımlıyoruz
void setup()
{
pinMode(led, OUTPUT); //led pinimizi çıkış olarak kuruyoruz
pinMode(ldr, INPUT); //ldr pinimizi veri giriş pini olarak kuruyoru
Serial.begin(9600);
}
void loop()
{
ldr_deger = analogRead(ldr); // ldr değerimizi analog pinden okuyoruz
Serial.println(ldr_deger); // Serial ekranımıza ( Arduino ide açıkken ctrl+shit+m tuş kombinasyonu ile yada üst taraftaki simgesi yada üsteki menüden açabilirsiniz) ldr değrini yazdırıyoruz
if (ldr_deger > 600){ // eğer ldr değerimiz 600 den fazla olursa
digitalWrite(led, HIGH); // led yanacak
}
else{ // 600 den küçük değilse
digitalWrite(led, LOW); // led yanmauacak
}
delay(100); // 0.1 saniye sonra ldr değeri okunarak yukarıda istenilen şartlar kontrol edecek ve güç kesilene kadar bu işlemler devam edecek
}
Eşik ışık yoğunluk değerini, led sayısını filan arttırarak benzer devre kurmak yalnızca LDR öğrenmenize derğil arduino mantığı ve proje geliştirme yönünüze de faydalı olacaktır.
Merhaba arkadaşlar uzun bir süredir yazı yazamadım. Daha önce Arduino kartları hakkında bilgiler vermiştim inan bunlar led yakmak yada uzunluk ölçmekten daha önemli çünkü hiç bir şey kapasitesini bilmeden tam verimle çalışmaz zorlarsak yakarız zorlamazsak ziyan ederiz. Tabi buradan led yada sensörleri gereksiz sanmayın.
Projeye başlayalım zaten bu sırada led kullanmayı öğreneceğiz. Ancak daha öncesinde led ve direnç hakkında kısa bilgi verelim.
LED ve Direnç
Led elektroniğin lambasıdır, ışık gereken yerde ledler kunlanılır. Çeşitli renkleri vardır ve genelde 3-5 vold arası çalışır düşük güç ile çalışmaz veya az ışık verir, çok fazla güç verirsek yanarlar. Uzun bacağı artı kısa bacağı eksi uçlardır.
Dirençlerin ise artı eksi uçları yoktur ve uçlar arası gerilimi düşürmek için kullanılır. Farklı değerleri vardır ve bu değerler direnç üzerindeki renkli halkalar ile belli olur.
MALZEMELER
1 * Arduino ( proje UNO üzerinden ilerleyecek)
1'er adet sarı, yeşil, kırmızı led
3 adet direnç ( 0 ohm - 2 kohm arası istersek hiç olmaz bu led e bağlı biz 220 kullanıcaz)
Yeteri kadar kablo yada jumper
Breadboard ( bu olmadan olur(zorlar) ama bu bize neredeyse her zaman yardımcı olur)
Arduinoyu çalıştıracak güç ( bilgisayar, pil yada adaptör)
Devre Kurulumu
Devreyi breadbord üzerine kuracağız kodlarda yeşil ledi 5, sarı ledi 6, kırmızı ledi 7 nolu pinlere bağlanmış olarak ayarladık ledleri Arduino ya bağlarken pinlerin ucuna önce direnç bağlıyoruz direncin diğer ucunu ledin artı ucuna ( uzun bacak) bağlıyoruz ledin diğer bacağınıda Arduino da bulunan GND( ground - toprak - eksi) pinine bağlıyoruz devre aşağıdaki görsele benzeyecek.
 |
| Devre kurulumu |
Programlama
Devremizi kurduk sıra elektriği kontrol etmekte buzu Arduino kartımızı programlayarak yapacağız bu kısmı uzatmadan kodları ekliyorum zaten gerekli açıklama kodlarda mevcut .
int yesil = 5;
int sari = 6;
int kirmizi = 7;
//Üst tarafta ledlerin hangi pinlere bağlanacağını tanımladık eğer bu işlemi yapmasaydık "sari" yazacağımız yerlere 6 yazardık ancak bu karışıklığa sebep olabilir bu yüzden bu tanımlamaları yapmaya alışmak iyi olur
void setup(){ // bu blok kodları sadece bir defa başlangıçta çalışır adı üstünde Arduino kartımızı kuruyoruz
pinMode(yesil, OUTPUT);
pinMode(sari, OUTPUT);
pinMode(kirmizi, OUTPUT);
// üst tarafta ise ledleri taktığımız pinleri çıkış olarak ayarladık bu sayede bu pinleri bir güç kaynağı gibi kullanıp ledlere gerekli gücü göndereceğiz
}
void loop(){ // bu blok içine yazılan kodlar devamlı olarak bitip başa döner Arduinoya güç geldiği sürece devam eder
digitalWrite(yesil, HIGH); // yeşil ışık yanıyor
delay(5000); // yeşil ışık 5 saniye boyunca açık kalıyor
digitalWrite(yesil, LOW); // yesil ışığı kapatıyoruz
digitalWrite(sari, HIGH); // sarı ışığı yakıyoruz
delay(750); // 0.75 sn bekliyoruz
digitalWrite(sari, LOW); // sari ışık sönüyor
digitalWrite(kirmizi, HIGH); // kırmızı ışık yanıyor
delay(3500); // 3.5 sn bekliyoruz
digitalWrite(kirmizi, LOW); // kırmızı ışık sönüyor
// sistem buradan sonra yeşil ışığı yazdığımız koda döner
}
Işık sürelerini pin yerlerini filan değiştirerek devreyi tekrar kurmanızı öneririm. Herhangi bir sorunuz olursa alta yorum olarak ekleyebilirsiniz.