2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Yatma zamanı. Gece için ışıkları kapatmak için kalkıyorsunuz ve anahtarı çevirdikten sonra, önünüzde yatağınızın güvenliğine zifiri karanlık bir yolculuk olduğunu fark ediyorsunuz. Şansınıza, gece lambaları icat edildi ve bir tane bulmak için doğru yere geldiniz! Ama… o sinir bozucu gece lambası tüm gece boyunca odanızı aydınlatırken nasıl uykuya dalabilirsiniz? Ayrıca gece ışıklarınızın açık kalmasına ve enerjinizin boşa gitmesine neden olan bu boş karanlıktan sıkılmadınız mı? Hâlâ doğru yerdesiniz, çünkü tam olarak ihtiyacınız olan şeye sahibiz!
Sürdürülebilir bir gece lambası yapmanıza yardımcı olarak hayatınızı aydınlatmak istiyoruz.
Bu derste, bir zamanlayıcı ile kapanacak bir gece lambası oluşturma sürecinde size yol göstereceğiz. Sistem, ana ışığın ne zaman kapatıldığını bir ışık sensörü aracılığıyla algılayabilecek ve ışığı kullanıcı tarafından belirlenen bir süre boyunca açıp, bu süre geçtikten sonra kapatabilecektir. Bu gece lambası diğer gece lambalarından farklıdır çünkü siz uyurken açık kalarak enerji harcar ve buna ihtiyaç duymaz. Bu proje, Basys 3 ve Arduino olmak üzere iki tür kart ve bir ışık sensörü kullanır.
Yaratıcılar: Luke McDaniel, Erik Ramazzini, Monica Negrete, Hayley Young
Adım 1: Malzemeler ve Yazılım
Malzemeler
Basys 3 Artix-7 FPGA Eğitmen Kartı
store.digilentinc.com/basys-3-artix-7-fpga…
Arduino Uno Rev3
store.arduino.cc/usa/arduino-uno-rev3
ekmek tahtası
www.amazon.com/Elegoo-EL-CK-002-Elektronik…
10k Ω Direnç
Breadboard ile aynı bağlantı
Jumper Telleri
Breadboard ile aynı bağlantı
Işık Sensörü (Mini Fotosel)
www.sparkfun.com/products/9088
Yazılım
Vivado HL WebPACK Sürümü (Ekteki PDF talimatları içerir)
www.xilinx.com/products/design-tools/vivad…
Arduino IDE'si
www.arduino.cc/en/Main/Software
2. Adım: Sistem Mimarisi
Bir sonraki adım, sistem mimarisini anlamaktır. Lojistiğe girmeden önce tasarımımızın yapısını düzenlemek için bir kara kutu diyagramı ve bir sonlu durum makinesi (yukarıda gösterilen) oluşturduk
Genel tasarım
Girişler
Işık Sensörü: odadaki ışık miktarını belirler
çıktılar
- Anotlar: hangi 7 segmentli ekranların kullanılacağını belirler
- Segmentler: zamanlayıcıyı görüntüler
- LED: AÇIK veya KAPALI gece ışık koşullarını gösterir
Arduino
Giriş
Işık sensörü sinyali: odadaki ışık miktarının analog değeri
Çıktı
Işık Girişi (1 bit): odanın ışık durumunu belirleyen sinyal
Temel 3
Giriş
- Işık Girişi (1 bit): odanın ışık durumunu belirleyen sinyal
- Anahtarlar
- CLK
Çıktı
- Anotlar: hangi 7 segmentli ekranların kullanılacağını belirler
- Segmentler: zamanlayıcıyı görüntüler
- LED: AÇIK veya KAPALI gece ışık koşullarını gösterir
Adım 3: Donanım ve Arduino Kodu
Donanım
Arduino kodunu anlamak için kodun etkileşimde bulunduğu donanımı anlamamız gerekir. Breadboard'umuzdaki devre, bir fotosel, bir ışık yayan diyot ve onu tamamlamak için birden fazla kablo ve direnç içerir. Devre, onu çevreleyen ışık miktarını okuyan fotosele güç göndererek başlar. Bu bilgi, analog pin A0'a aktarılır ve bu da onu Basys kartı için okunabilir hale getirir. Basys kartı daha sonra bu bilgiyi alır, saymaya başlar ve LED'in yanması için bir sinyal gönderir.
Arduino Kodu
Arduino kodunun kendisi, cihazı çevreleyen ışık belirli bir eşikten daha koyu olduğunda bir sinyal göndererek Basys kartı ile iletişim kurar. LED'e giden kurşun ile karanlık bir oda tarafından tetiklenen bu sinyal yanacaktır. Karanlık odalarda belirli fotoselimizin ortalama eşiğinin 30 - 60 olduğunu deney yoluyla bulduk. Her fotoselin farklı bir hassasiyet miktarı vardır, bu nedenle diğer fotosellerin farklı eşikleri olabilir. Yayınlanan kodumuzda, gösterim amacıyla eşiği 100 yaptık.