Gerekli malzemeler:
- Arduino UNO
- Breadboard
- 4 adet LED
- 4 adet 330Ω direnç
- 1 adet 10kΩ direnç
- 1 LDR (fotosel)
- İki ucu erkek jumper kablo
Foto direnç, üzerine düşen ışığın şiddetine bağlı olarak değişen dirence sahip bir elemandır. Direnci, üzerine düşen ışık miktarıyla ters orantılı olarak değişir. Gündelik kullandığımız çoğu elektronik alette “fotosel” ismiyle yaygın olarak kullanılır. Bu uygulamamızda 4 adet LED’imiz, LDR’nin algıladığı ışık miktarına göre değişik sayılarda yanarak ışık seviyesi göstergesi gibi çalışacak.
Kartımızın bağlantı şeması şu şekilde:
Kodumuz ise şu şekilde:
int ledler[] = { 4, 5, 6, 7 }; int led_sayisi = 4; int ldr_pin = A0; int deger = 0; void setup() { for (int i = 0; i < led_sayisi; i++) { pinMode(ledler[i], OUTPUT); } } void loop() { deger = analogRead(ldr_pin); if (deger > 0 && deger <= 255) { digitalWrite(ledler[0], HIGH); digitalWrite(ledler[1], LOW); digitalWrite(ledler[2], LOW); digitalWrite(ledler[3], LOW); } if (deger > 256 && deger <= 511) { digitalWrite(ledler[0], HIGH); digitalWrite(ledler[1], HIGH); digitalWrite(ledler[2], LOW); digitalWrite(ledler[3], LOW); } if (deger > 512 && deger <= 767) { digitalWrite(ledler[0], HIGH); digitalWrite(ledler[1], HIGH); digitalWrite(ledler[2], HIGH); digitalWrite(ledler[3], LOW); } if (deger > 768 && deger <= 1023) { digitalWrite(ledler[0], HIGH); digitalWrite(ledler[1], HIGH); digitalWrite(ledler[2], HIGH); digitalWrite(ledler[3], HIGH); } delay(100); }
Bu uygulamamızda, analog giriş kullanarak LDR’nin algıladığı ışık seviyesini sayısal bir değere dönüştürdük. Bu sayısal değer 0 ile 1023 arasında değiştiğinden, her 255 adımda bir fazla LED’in yanmasını sağladık.
Arduino ile Işık Seviye Ölçümü ; yazılımı kendim yazdım ve parçaları yerleştirdim ancak çalışmadı, belki hatalı girdim diye sizin anlatımınızdaki yazılımı kopyalayıp yükledim yine olmadı ,parçaları söktüm tekrar kurdum yine çalışmadı.Aynı parçaları (sağlam olduklarını anlamak için) başka örneklerde denediğimde çalıştıklarını gördüm. Kısacası herşey doğru görünüyor ama örnek çalışmıyor . Aynı sorunu ” Arduino ile Buton ve LED Uygulaması”ndada yaşadım … Neden olabilir ? Tşk
buton ve led de bendede olmadı herşeyi dosdoğru yaptığım halde bide zaten kodu burdan kopyaladım bir sorun bulun nolur
ve bundada olmuyo uffff
isiklari ters yap oluyor
Merhabalar bu devrenin yanında yani 1 arduino uno kart üzerinde hem ışık ölçümü hemde sıcaklık ölçümü yapabilir miyiz?
lm 35 kullanarak onun kodlarını aynı şekilde eklenip çalıştırılabilir.
Merhabalar. Bende aynı sorunu yaşamıştım, ledleri gösterilenin tam tersi bağlayınca çalışmaya başladı. Anot katot uçları yanlış gösterilmiş olabilir.
Merhabalar. Haklısınız, LED’lerin anot ve katot uçları ters bağlanmış. Hatamdan dolayı özür dilerim. En kısa zamanda düzeltilecektir.
ters çevirdim ama olmadı ne yapmam gerek
tam tersı nasıl baglanıyor
Merhabalar iyigunler ben bu devrede isik olcumunu lcd ekran uzerinde gormek istiyorum yalniz bir turlu uygun devre bulamadim yardimci olurmusunuz tesekkurler
Merhabalar, LCD ekran uygulaması için buradaki yazımızı inceleyebilirsiniz.
merhabalar,
bende Adnan arkadaşımız gibi uygulamayı yaptım ve sensör ( ldr ) işe yaramadı yani uygulamada bir sıkıntımı var bilmiyorum ama çözümünü bekliyorum..
merhabalar abi ben her şeyi yaptım ancak benimkinde ışık sönükken 4 üde yanıyor 1 kere ışığı gördükten sonra 4 üde sönüyor ve bir daha şığı kapatınca öalışmıyor neden olabilir
LDR ve seri bağlı dirence giden + ve – kabloların yerlerini değiştirirseniz düzelecektir 🙂
ARKADAŞLAR DEVRENİN ÇALIŞAN HALİ
int ledler[]= {4,5,6,7};
int led_sayisi=4;
int ldr_pin=A0;
int deger=0;
void setup()
{
Serial.begin(9600);
Serial.println(“LDR Okuma”);
for (int i=0; i0&°er256&°er512&°er768&°er<=1023)
{
digitalWrite(ledler[0], HIGH);
digitalWrite(ledler[1], HIGH);
digitalWrite(ledler[2], HIGH);
digitalWrite(ledler[3], HIGH);
}
delay(100);
}
merhaba paylaştığınız breadboard ile bendeki uymuyor ne yapabilirim
Devrenizi kurarken buradaki şemanın birebir aynısını kullanmanız gerekmez. Kendi breadboard’unuzda devrenizi kurabilirsiniz: Breadboard’un üst sırasında bir veya iki adet bulunan sıra yatayda birbiri ile bağlıdır. Bu hatlar sizin breadboard’unuzda yok ise güç bağlantılarını teker teker gerekli noktalara (örneğin LED’lere seri bağlı dirençlerin gittiği GND hattı) kablo ile bağlamanız gereklidir.
Merhabalar. Bu programı yapınca karta yükler programmer not responding hatası aldım sebebi nedir acaba ?
Bilgisayarınızda Arduino sürücülerinin doğru bir şekilde yüklü olduğundan ve dijital 0 ve 1 numaralı pinlerinde herhangi bir bağlantı olmadığından emin olun.
ben devreyi kurdum çalıştırdım fakat arduino uygulamayı kapattıktan sonrada hala devre çalışır durumda.. Nasıl kodu sıfırlayabilirim yardım lütfen
Arduino içerisine yüklediğiniz kod, mikrokontrolcü içerisinde yer alan flaş belleğe yazılıdğından enerji kesildiğinde silinmeyecektir. Arduino içerisindeki kodu değiştirmek için farklı bir kod yüklemeniz gereklidir. Arduino kartları, varsayılan olarak Blink (Dosya > Örnekler 01.Basics > Blink) programı yüklü gelmektedir.
ledleri ters cevirin anot bacaklar ile katot bacaklar ters olmuş
Bu devre çalışmıyor. Her şeyi denedim.
Arduino:1.8.5 (Windows 10), Kart:”Arduino/Genuino Uno”
Çalışmanız programın 1154 bayt (3 %) saklama alanını kullandı. Maksimum 32256 bayt.
Global değişkenler belleğin 19 byte kadarını (0%) kullanıyor. Yerel değişkenler için 2029 byte yer kalıyor. En fazla 2048 byte kullanılabilir.
avrdude: ser_open(): can’t open device “\\.\COM1”: Sistem belirtilen dosyayı bulamıyor.
Karta yüklenirken sorun oluştu. Tavsiyeler için http://www.arduino.cc/en/Guide/Troubleshooting#upload adresine göz atabilirsiniz.
This report would have more information with
“Show verbose output during compilation”
option enabled in File -> Preferences.
deliricem ne derse yaptım
Doğru COM portunu seçmemiş gibi görünüyorsunuz.
Devrenin çalışan hali nedir? Kodları yüklüyor fakat çalışmıyor
Öncelikle paylaşımlarınız için teşekkürler. Bu uygulama ile ilgili anlamadığım LDR nin bir çeşit diren olduğunu biliyorum. Neden Ldr bir bacağına yine direç bağlıyoruz?
Merhaba bu devrenin tersini yapmak mümkün mü acaba? Yani parlaklık arttıkça daha az led yakan halini?
deger = analogRead(ldr_pin); satırının hemen altına
deger = 1024 - deger;
satırı ekleyerek işlemi tersine çevirmeniz mümkündür.
merhaba bu kodda hangi kütüphaneyi kullandınız acaba şimdiden tşk.
Merhaba, bu kodda herhangi bir kütüphane kullanmadık. Yalnızca Arduino içerisinde kendiliğinden yer alan analogRead() fonksiyonunu kullandık.
330 ohm yerine 220 ohm baglasam sorun yasarmıyım
Herhangi bir sorun olmayacaktır, kullanabilirsiniz.
OKUL PROJESI ICIN BUNU YAPICAM ACIKLAMADA KI ARDUINO YERINE BUNU SATIN ALSAM OLUR MU https://www.robotistan.com/arduino-uno-r3-klon-usb-kablo-hediyeli-usb-chip-ch340
Kullanabilirsiniz, sorun olmaz.
Merhaba, ben daha 12 yaşındayım her şeyi denedim ama olmuyo ters çevirdim olmuyo Mus adlı kişinin paylaştığı kodları kopyala yapıştır yaptım olmadı ne yapmam gerek
Arkadaşım olmadı. Devrede yanan sönen hiçbirşey yok.
Merhaba hocam benim bir projem varda yardım edebilirmisiniz
İlk olarak malzemeler şunlar
L298n
Ln324
Arduıno uno
Dc motor
4 ldr
Gunes paneli
Potansiyometre
Hocam bunlarla ldr ile gunes yonune gore dc motorun donmesi gerekiyor üniversite bitirme proje mdir yardımcı olursanız şimdiden teşekkürler
Devre çalişiyor test edildi, kolay gelsin
Teşekkürler 🙂
devreyi dev c++ ile nasıl kodlayabilirim yardımcı olurmusunuz ???