Hobi Projeler

Ay Lambası - Arduino + 3B Baskı projesi

3D yazıcı aldığımdan beri zihnisinir projelerimi hayata geçiremeye başladım. Bunlardan birisi Ay Lambası. 

Telefonumun ekranında ayın evresini takip ederim. Dedim ki, niçin duvarımda olmasın? Ay'ın evresi bugün neyse, aynısının duvarda da olmasını sağlayan bir lamba düşündüm. Bugün gökyüzünde ince bir hilal varsa lambada da o hilal yansın, dolunayda bütün yüzey parlasın. İnternete, uygulamaya ya da Wi-Fi'a ihtiyaç duymasın; prize takılsın ve yıllarca kendi kendine doğru evreyi göstersin.

Sonuç: Yapay zekânın da yardımıyla 3D yazıcıda basılan beş parça, 136 adresli LED, bir Arduino Nano ve küçük bir saat modülünden oluşan 25 cm'lik bir ay lambası. Bu yazıda tasarımdan baskıya, lehimden yazılıma kadar her adımı paylaşıyorum. Dosyaların hepsi yazının sonunda; aynısını sen de yapabilirsin.

  • Boyut: 254 mm çap, 44 mm kalınlık; görünen ay 242 mm, etrafında 6 mm siyah çerçeve
  • Işık: 136 adet WS2812B LED, her biri ayın bir hücresini aydınlatır
  • Beyin: Arduino Nano + DS3231 saat modülü; internet yok, saat CR2032 pille korunur
  • Baskı: 5 parça, her biri 260×260 mm tablaya uygun
  • Elektronik maliyeti: tek lamba yapacaksanız ~1.600 TL, bir LED makarasından iki lamba yapacaksanız lamba başına ~1.050 TL
Lambanın hilal, ilk dördün, şişkin ay, dolunay ve son dördün evreleri
Aynı lamba, beş farklı gecede. Büyüyen ay sağdan, küçülen ay soldan aydınlanır.

Nasıl çalışıyor?

Fikir basit: lamba tarihi bilir, Ay'ın o an ne kadar aydınlık olduğunu hesaplar ve yalnızca aydınlık bölgenin arkasındaki LED'leri yakar. Bunun için üç parça birlikte çalışıyor.

  1. Saat: DS3231 modülü tarihi ve saati tutar. Yılda en fazla yaklaşık 1 dakika kayar; lamba fişten çekilse bile üzerindeki düğme pil saati çalıştırmaya devam eder.
  2. Hesap: Arduino her 30 saniyede bir Güneş'in ve Ay'ın gökyüzündeki konumunu Jean Meeus'un astronomik formüllerinin kısaltılmış haliyle hesaplar. İkisi arasındaki açı (elongasyon) evreyi verir: 0° yeni ay, 90° ilk dördün, 180° dolunay. Bu hesap 2026–2035 arasındaki tüm yeni ay, dördün ve dolunay anlarında gerçek değerlerden 10 dakikadan az sapıyor.
  3. Işık: Ayın arkasında 136 hücrelik bir kafes var ve her hücrede bir LED duruyor. Yazılım her hücrenin ne kadarının aydınlık tarafta kaldığını hesaplar. Hücrenin tamamı aydınlıksa LED tam yanar, bir kısmı aydınlıksa o oranda sönük yanar. Hilalin kenarı bu yüzden keskin basamaklar yerine yumuşak bir geçişle görünür.

Ön yüzdeki ay, bir litofan: kalınlığı 0,8 ile 2,2 mm arasında değişen beyaz bir plastik levha. Ben beyaz PLA ile bastım. Işık ince yerlerden daha çok, kalın yerlerden daha az geçer. Lamba kapalıyken düz beyaz bir kabartma gibi görünen yüzey, arkadan ışık gelince denizleri (koyu lekeler) ve ışınlı kraterleriyle Ay'a dönüşür. Baskı süresini uzatmak isteyen daha derin bir tasarım yapabilir elbette.

Ay yüzeyi litofanının kabartması, yandan gelen ışıkla
Ay yüzeyi ışık kapalıyken: kraterler ve denizler kabartma olarak duruyor. Altta ışınlı Tycho, sağda oval Kriz Denizi.

Tasarım: beş parça, tek baskı

Aslında ilk tasarımım 50 cm'lik, iki parçalı bir aydı. Duvarda çok daha şık duracağı kesin diyordum. Ama  yazıcım 260X260... İki parçayı birleştirince ayın tam ortasından geçen bir çizgi kalıyordu ve gece ışık yanınca bu çizgi rahatsız eder diye düşündüm. Ölçüyü 25 cm'ye indirmek zorunda kaldım. Kötü olmadı.

Ay lambasının patlatılmış görünümü: ay yüzeyi, kafes, arka kapak ve arka panel
Önden arkaya: ay yüzeyi, kafes ve çerçeve, LED şeritli arka kapak, arka panel. Bir de pil yuvasını kapatan küçük bir tıpa var.
ParçaRenkBaskı ayarı
Kafes + çerçeveSiyah PLA (Beyaz da olur, çizgiler belirsizleşir)0,2 mm katman, 3 duvar, %15 dolgu, destek yok (arka yüzü tablada)
Ay yüzeyiBeyaz PLA0,12–0,16 mm katman, %100 dolgu, yavaş dış duvar, destek yok
Arka kapakHerhangi bir renk PLA0,2 mm, 3 duvar, %15 dolgu, destek yok (ön yüzü tablada)
Arka panelHerhangi bir renk PLA0,2 mm, 3 duvar, %15 dolgu, destek yok (duvara bakan yüzü tablada)
Pil tıpasıHerhangi bir renk PLA0,2 mm, %100 dolgu

Toplamda yaklaşık 600 g (90 g'ı beyaz) filament gidiyor. Kafes ve kapak 254 mm çapında olduğu için tablada her yanda yalnızca 3 mm pay kalıyor: brim kullanma ve tablanın kenarlarının da iyi seviyelendiğinden emin olmak lazım.

Kafes: ışığı hücrelere bölen parça

Kafes, ışığın komşu hücrelere taşmasını engelleyen 20 mm yüksekliğinde ince duvarlardan oluşuyor. Siyah çerçeve de bu parçanın bir parçası; ayrı bir halka basmaya gerek yok. Arka kapaktaki LED şeritleri kafes duvarlarının altındaki geçitlerden geçiyor.

Siyah kafes ve çerçeve parçası
Kafes + çerçeve tek parça. Her hücre 16,7 mm, şeridin LED aralığıyla aynı.

Üç başarısız baskıdan öğrendiğim: Kafesin ilk sürümünü üç kez denedim, üçünde de ilk katmanda spagettiye döndü. Sebebi tablaya değen yüzeydi: duvarlar 1,6 mm'lik çubuklar halinde tabladan başlıyor, şerit geçitleri köprü şeklinde havada asılı kalıyordu. Parça tablada 22 ayrı adacığa bölünüyordu. Yeni tasarımda her duvar tabanda 4 mm'lik pahlı bir ayakla başlıyor, şerit geçitleri köprü yerine 45° beşik çatı şeklinde. Yine de ilk katmanı 15–20 mm/s ile yavaş bas ve ilk 3 katmanda fanı kapalı tutmak gerekebilir.

Malzeme listesi ve maliyet

Fiyatlar 24 Ekim 2026'da Robotistan'dan alındı (KDV dahil). Fiyatlar değişebilir, ama toplam hakkında fikir verir.

ParçaAdetTutar (TL)
WS2812B LED şerit, 60 LED/m, 5 V, IP20, 5 m (300 LED)11.043,26
Arduino Nano V3 (CH340)169,78
DS3231 saat modülü (CR2032 yuvalı)1208,05
5 V 2 A adaptör, 5,5×2,1 mm fiş1142,73
Panel tipi dişi DC jak, 5,5×2,1 mm145,96
40'lı dişi-dişi jumper kablo, 30 cm (uçları kesilip kullanılır)156,85
IC177 push buton (Ø7 mm)119,23
1000 µF 10 V kondansatör12,84
330 Ω direnç (10'lu paket)12,40
M3×8 vida86,00
CR2032 düğme pil1marketten
Toplam (pil hariç)~1.597 TL

Bir lamba 136 LED kullanıyor, 5 metrelik makarada ise 300 LED var. Yani bir makaradan iki lamba çıkıyor ve 28 LED yedek kalıyor. Jumper kablo paketi de iki lambaya yetiyor. İki lamba yaparsanız toplam ~2.092 TL, lamba başına ~1.046 TL tutuyor.

Bunlara ek olarak havya ve lehim (ayarlı bir havya işinizi çok kolaylaştırır), bir multimetre ve sıcak silikon gerekiyor.

LED şeritleri

Şeritler arka kapağın ön yüzüne, ortadan sağa ve sola yedişer sütun halinde yapıştırılıyor. Kenarlara doğru sütunlar kısalıyor:

LED şeritlerinin arka kapak üzerindeki yerleşimi
14 sütun, 136 LED. Şeritler kafes hücrelerinin tam ortasına gelecek şekilde yerleşiyor.
Sütun (ortadan dışa)0123456
LED sayısı (sağda ve solda ayrı ayrı)121212101084
  • Şeritleri bakır pedlerin üzerinden kesin. Kapağın üzerinde şeridin kenarlarını gösteren ince çizgiler var; şeridi bu çizgilerin arasına ortalayın.
  • Ok yönü önemli. Şeritteki DIN→DOUT okunun yönü kablolama şemasıyla aynı olmalı. Sütunlar yılan gibi bağlanıyor: biri yukarı, sonraki aşağı.
  • Her şerit ucuna üç kablo (5V, DATA, GND) lehimlenip kapaktaki delikten arkaya geçiriliyor ve bir sonraki sütuna bağlanıyor. Sağ yarıdan sol yarıya geçiş üstten yapılıyor (LED 67 → 68).
  • Şeridi sütunlara bölmeden önce 136 LED'lik parçayı Nano'ya bağlayıp test edin. Bozuk bir LED'i kesmeden önce bulmak çok daha kolay.
LED şeritlerinin kablolama şeması, önden bakış
Kablolama şeması (önden bakış). Veri girişi sağ en dış sütunun altından başlıyor, yılan gibi ilerleyip sol en dış sütunda bitiyor.
Arka kapağa yapıştırılmış LED şeritleri
Şeritler kapağa yapıştırılmış, köprü kabloları henüz arkada.

Bir ölçü hatası ve çözümü: İlk basılan kapakta kablo deliklerini şerit uçlarının biraz altına yerleştirmiştim; şeritler tam boy yapıştırılınca delikleri kapatıyordu. Kapağı yeniden basmak yerine her sütunu bir LED kısa kesip ortaladık. LED'ler yarım adım kaydığı için kafesin yatay duvarlarını da yarım adım kaydırdım. Kapak, ay yüzeyi ve panel olduğu gibi kaldı, yalnızca kafes yeniden basıldı.

Elektronik

Devre oldukça sade. Bütün parçalar 5 V ile çalışıyor, bu yüzden seviye dönüştürücüye gerek yok.

DC jak 5V ──┬── LED 0 (5V)           DC jak GND ──┬── LED 0 (GND)
            ├── LED 68 (5V)                       ├── LED 68 (GND)
            ├── LED 135 (5V)                      ├── LED 135 (GND)
            ├── Nano 5V pini                      ├── Nano GND
            └── DS3231 VCC                        └── DS3231 GND

1000 µF kondansatör: jak girişinde 5V ile GND arasına (uzun bacak 5V)

Nano D6  ── 330 Ω ── LED 0 DIN
Nano D2  ── buton ── GND
Nano A4  ── DS3231 SDA
Nano A5  ── DS3231 SCL
  • Besleme üç noktadan: 136 LED'i tek uçtan beslersen uzaktaki LED'lerde voltaj düşer ve renk sararır (ve hatta en parlak modda, yarısına gelince arduino kendini sıfırayıp durdu. Voltaj yetmedi). 5 V'u LED 0'a, ortadaki geçişe (LED 68) ve son LED'e (LED 135) ayrı ayrı vermeniz gerekiyor.
  • Jakı Nano'nun 5V pinine bağla, VIN'e değil. VIN en az 7 V ister; 5 V verirsen kart kararsız çalışır. Ben bu bağlantıyı ilk montajda unutmuştum: Nano yalnızca USB'den besleniyordu. Düğme çalışmadı :) Nano'yu jaka bağlamak şart.
  • Jakın kutupları: Ortadaki ince pim +5V, fişin dış kılıfına değen yassı dil GND. Lehimden önce multimetreyle mutlaka ölçün; ters bağlanan 5 V hem Nano'yu hem LED'leri yakar.
  • DS3231'de bir direnç sökülecek: Bu modüllerin çoğunda şarj edilebilir pil için bir şarj devresi var ve normal CR2032'yi şişirebilir. Pil yuvasının yanındaki, üzerinde 201 yazan küçük direnci havyayla sökmeniz lazım. Şarj edilebilir bir yapıya dönüştürebilirsiniz ama değmez. Yıllarca çalışacak durumda zaten.
  • 330 Ω direnç 1/4 W olabilir; veri hattından neredeyse hiç akım geçmez.
Arka kapağın arkadan görünüşü: kart yuvaları ve kablo kanalları
Arka kapak, arkadan bakış. Nano ve saat modülü için yuvalar ve kablo kanalları baskıyla geliyor.

Arka kapağın arka yüzünde kartların yuvaları ve 5,6 mm genişliğinde kablo kanalları baskıyla birlikte geliyor. Kabloları kanala bastırınca üstteki küçük dudak onları yerinde tutuyor. DC jak ve buton kapağın kenarındaki deliklere, kartlar yuvalarına sıcak silikonla sabitleniyor.

Arka kapağa yerleştirilmiş Arduino Nano ve DS3231 saat modülü
Nano ve saat modülü yuvalarında. Üstte buton, solda DC jak. Kablo renklerini seçmede epey başarısızız. Prototip diye özenmedik.

Montaj

  1. Şeritleri kapağa yapıştırın, köprü kablolarını lehimleyin. Nano'yu, DS3231'i, DC jakı ve butonu yerleştirin.
  2. Yazılımı yükleyin ve test edin: açılışta kayan ışık 136 LED'in hepsinden geçmeli, butona çift tıklayınca demo çalışmalı.
  3. Kafesi kapağın üzerine oturtun; şeritler kafes duvarlarının altındaki geçitlerden geçer. Kapağı arkadan 6 adet M3×8 vidayla kafese sabitleyin.
  4. Arka paneli takın: içteki halkası kapağın kenar duvarının içine girer, halkadaki boşluk jak ile butonun önüne gelir. İki M3×8 vidayla sabitle, pil tıpasını paneldeki pencereye bastırın.
  5. Ay yüzeyini çerçevenin önündeki basamağa yerleştirin. Doğru yön: ışınlı parlak krater (Tycho) altta, tek başına duran oval koyu leke (Kriz Denizi) sağda. Kenarına birkaç damla şeffaf silikon veya japon yapıştırıcısı sürün.
  6. Duvara asın: arkada, merkezin 40 mm üstünde, aralarında 140 mm olan iki anahtar deliği var. Duvara aynı hizada iki vida tak (vida başı en fazla 8,5 mm) ve lambayı vidalara geçirip aşağı kaydır.
Lambanın yan kesiti
Yan kesit: ay yüzeyi, kafes, LED şeridi, arka kapak ve arka panel. Toplam kalınlık 44 mm.
Arka panelin duvara bakan yüzü
Arka panel: iki anahtar deliği ve pil penceresi.

LED'ler ay yüzeyinin arkasında parlak noktalar halinde görünürse (siyah PLA basarsanız bu olabilir), ay yüzeyinin arkasına bir kat yağlı kağıt ya da aydınger yapıştır; ışığı güzelce dağıtır.

Yazılım

Program tek bir Arduino dosyası. Arduino IDE'de iki kütüphane gerekiyor: FastLED ve Adafruit'in RTClib kütüphanesi (Araçlar → Kütüphaneleri Yönet).

  1. Kart olarak Arduino Nano seç. Klon kartlarda İşlemci: ATmega328P (Old Bootloader) gerekebilir.
  2. Kart bilgisayarda görünmüyorsa CH340 sürücüsünü kurun. Hâlâ görünmüyorsa kabloyu değiştirin: mini-USB kabloların çoğu yalnızca şarj kablosu, veri taşımıyor. Benim yaşadığım sorun tam olarak buydu. Ucuz nanolarda Type-C değil, mini-SUB var çünkü.
  3. 5 V adaptör de takılıyken yükleyin; 136 LED'i yalnızca USB'den beslemek bilgisayarın portunu zorlar.

Saati ayrıca kurmanıza gerek yok: program yüklendiği anda bilgisayarın saatini alıp saat modülüne yazıyor. Bunu her yeni yüklemede bir kez yapıyor, sonraki açılışlarda saat modülüne güveniyor. Pil biterse ve lamba fişten çekiliyken saat durursa, lamba bunu fark ediyor ve yanlış evre göstermek yerine ortadaki tek LED'i kırmızı yakıp söndürüyor.

İstediğiniz gibi değiştirebileceğin ayarlar dosyanın başında:

#define MAX_MILLIAMPS  1500    // 5V 2A adaptör: LED'ler en fazla 1,5 A
const uint8_t BRIGHT_LEVELS[] = {30, 70, 140, 255};   // 4 parlaklık kademesi
const CRGB MOON_COLOR = CRGB(255, 196, 135);          // ay ışığı (sıcak beyaz)
#define EARTHSHINE     0       // karanlık tarafta hafif ışık (3-6 güzel durur)
#define TZ_OFFSET_H    3       // Türkiye: UTC+3
#define ON_HOUR       -1       // gece programı, saat kaçta açılsın? ör. 18 (-1 = hep açık)
#define OFF_HOUR      -1       // ör. 1 (gece 01:00'de söner)

Kullanım

Lambada tek bir buton var. Ne yapacağını basışın süresi belirliyor:

BasışNe yapar
KısaParlaklık kademesi değişir (4 kademe, hafızada kalır)
Çift tıkDemo: Ay'ın 29,5 günlük döngüsünü 30 saniyede oynatır
3 saniye basılıAy ayarı: lamba mavimsi yanar, her kısa basış ayı bir gün ilerletir, 2 saniye basılı tutunca kaydeder (yeşil yanıp söner)
2 saniyede 5 hızlı basışSıfırla: ay ayarı ve parlaklık ilk değerine döner, lamba 3 kez beyaz yanıp söner

Açılışta sönük turuncu bir ışık LED'leri sırayla dolaşıyor. Bu bir kablolama testi: ışık bir yerde durursa sorun o sütunun veri kablosunda demektir. Yeni ay gecelerinde lambanın neredeyse tamamen karanlık kalması da normal; Ay o gece gökyüzünde de görünmüyor.

Yolda öğrendiklerim

  • İlk katman her şeydir. İnce, noktasal temaslı bir parça büyük tablada mutlaka kalkar. Tabana ayak eklemek ve köprüleri çatıya çevirmek sorunu baskı ayarlarıyla uğraşmadan çözdü.
  • Delik konumlarını şeridin gerçek ucuna göre ölç. Şerit 16,7 mm'de bir kesilebiliyor; kesim yeri tasarımda bir yarım adım fark yaratabiliyor.
  • Kablo. Bilgisayar Nano'yu hiç görmüyorsa önce başka bir USB kablosu deneyin.
  • Uzun buton kabloları parazit toplar. Butonu kısa kabloyla bağlayın.
  • Bir makaradan iki lamba en büyük tasarruf: LED şerit maliyetin üçte ikisi.

Dosyalar

STL dosyaları, Arduino programı ve kaynak kodu tek pakette: ay-lambasi-dosyalar.zip. Ölçüleri değiştirmek isterseniz bütün parçalar Python ile üretiliyor; çapı, hücre aralığını ve duvar yüksekliğini tek bir dosyadan değiştirip STL'leri yeniden üretebilirsiniz.

Kolay gelsin :)

Hobi Projeler