İçindekiler:

Etkileşimli Avlu Işıkları, Geçit Işıkları: 3 Adım
Etkileşimli Avlu Işıkları, Geçit Işıkları: 3 Adım

Video: Etkileşimli Avlu Işıkları, Geçit Işıkları: 3 Adım

Video: Etkileşimli Avlu Işıkları, Geçit Işıkları: 3 Adım
Video: Telefon Ekranını Projeksiyon Cihazına Yansıtma (Samsung Galaxy A30S - Cheerlux C50 Wifi Sürüm) 2024, Kasım
Anonim
Etkileşimli Avlu Işıkları, Geçit Işıkları
Etkileşimli Avlu Işıkları, Geçit Işıkları
Etkileşimli Avlu Işıkları, Geçit Işıkları
Etkileşimli Avlu Işıkları, Geçit Işıkları

Arka bahçem için bir çeşit etkileşimli bahçe lambası yapmak istedim. Fikir, birisi bir yöne yürüdüğünde, yürüdüğünüz yönde bir animasyon başlatacaktı. Dollar General 1.00$ güneş ışığıyla başladım

Adım 1: Solor Işıklarını Çıkarın

Solor Işıklarını Bağır
Solor Işıklarını Bağır
Solor Işıklarını Bağır
Solor Işıklarını Bağır
Solor Işıklarını Bağır
Solor Işıklarını Bağır

İlk adım, daha eğlenceli şeylere yer açmak için ışıkları söndürmekti. Orijinal led ve pili keserek başladım. Bu parçaları başka bir projede faydalı olacağından emin olun güneş ışığının altında bulunan krom kubbeyi söküp üste yapıştırdım fotoğraflarda görüldüğü gibi

2. Adım: Daha İyi Işıkların Kurulması

Daha İyi Işıklar Kurmak
Daha İyi Işıklar Kurmak
Daha İyi Işıklar Kurmak
Daha İyi Işıklar Kurmak
Daha İyi Işıklar Kurmak
Daha İyi Işıklar Kurmak

led için burada bulunabilecek su geçirmez ws2811b kullandım

www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…

Başlangıçta PIR sensörlerini güneş ışıklarının içine yerleştirmeyi planlamıştım. ancak sensör temelde plastiğin ötesini göremediği için bu biraz sorunlu oldu. bir çeşit UV filtreleme özelliğine sahip olmalıdır. bu yüzden daha çok böyle bir şey seçtim

www.thingiverse.com/thing:2590216

Adım 3: Kodlama

Işıkların sensör kullanmamasını veya sürekli çalışmasını istiyorsanız, sadece "değişen bayrak durumu" olarak yorumlanan yeri arayın ve eter 1 veya 0 olarak ayarlayın, bunu kendim için tamamladığımda daha fazla resim ekleyeceğim, bu yüzden hala devam eden bir çalışma ama bence hemen paylaşılmayacak kadar temiz. baktığın için teşekkürler

geçersiz kurulum() {

// bir kez çalıştırmak için kurulum kodunuzu buraya koyun: FastLED.addLeds(leds, NUM_LEDS); Seri.başla(9600); pinMode(buttonPin1, INPUT); pinMode(buttonPin2, INPUT); }

boşluk döngüsü () {

Serial.println(FlagState);

if(FlagState == 0){ ForwardLeds(); } if(FlagState == 1){ RevLeds(); } if(FlagState == 2){ Bekliyor(); } }

void ForwardLeds(){

İlkLed = -1; SonLed = 16; for(int i=0; i < 8; i++){ LastLed--; FirstLed++; led'ler[LastLed] = CRGB::Beyaz; led'ler[FirstLed] = CRGB::Beyaz; gecikme(750); FastLED.show(); Serial.print ("beyaz Geçiş"); Seri.baskı (i); Serial.println ("/8"); } İlkLed = -1; SonLed = 16; for(int i=0; i < 8; i++){ LastLed--; FirstLed++; led'ler[LastLed] = CRGB::Mavi; led'ler[FirstLed] = CRGB::Mavi; gecikme(250); FastLED.show(); Serial.print ("Mavi Geçiş"); Seri.baskı (i); Seri.println ("/8"); } İlkLed = -1; SonLed = 16; for(int i=0; i < 8; i++){ LastLed--; FirstLed++; led'ler[SonLed] = CRGB::Mor; ledler[FirstLed] = CRGB::Mor; gecikme(250); FastLED.show(); Serial.print ("Kırmızı Geçiş"); Seri.baskı (i); Serial.println ("/8"); } İlkLed = -1; SonLed = 16; for(int i=0; i < 8; i++){ LastLed--; FirstLed++; led'ler[LastLed] = CRGB::Siyah; led'ler[FirstLed] = CRGB::Siyah; gecikme(250); FastLED.show(); Serial.print ("Led'i kapatma"); Seri.baskı (i); Serial.println ("/8"); } Bayrak Durumu = 2; // bayrak durumunu değiştirme } void RevLeds(){ Serial.println("ters"); İlkLed = 8; SonLed = 7; for(int i=0; i < 8; i++){ LastLed++; İlkLed--; led'ler[LastLed] = CRGB::Beyaz; led'ler[FirstLed] = CRGB::Beyaz; gecikme(750); FastLED.show(); Serial.print (" Beyaz geçiş "); Seri.baskı (i); Serial.println ("/8"); } İlkLed = 8; SonLed = 7; for(int i=0; i < 8; i++){ LastLed++; İlkLed--; led'ler[LastLed] = CRGB::Mavi; led'ler[FirstLed] = CRGB::Mavi; gecikme(250); FastLED.show(); Serial.print (" Mavi geçiş "); Seri.baskı (i); Seri.println ("/8"); } İlkLed = 8; SonLed = 7; for(int i=0; i < 8; i++){ LastLed++; İlkLed--; led'ler[SonLed] = CRGB::Mor; ledler[FirstLed] = CRGB::Mor; gecikme(250); FastLED.show(); Serial.print (" Kırmızı geçiş "); Seri.baskı (i); Serial.println ("/8"); }

İlkLed = 8;

SonLed = 7; for(int i=0; i < 8; i++){ LastLed++; İlkLed--; led'ler[LastLed] = CRGB::Siyah; led'ler[FirstLed] = CRGB::Siyah; gecikme(250); FastLED.show(); Serial.print ("Led'i Kapatma"); Seri.baskı (i); Serial.println ("/8"); } Bayrak Durumu = 2; //işaret durumunu değiştirme } void Waiting(){ buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2); if(buttonState1 == HIGH){ Serial.println("ileri tetiklemeli"); Bayrak Durumu = 0; } else if(buttonState2 == YÜKSEK){ Serial.println("Geri tetiklendi"); Bayrak Durumu = 1; } Serial.println("döngü tamamlandı bekleniyor"); }

Önerilen: