İçindekiler:
Video: Etkileşimli Avlu Işıkları, Geçit Işıkları: 3 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
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
İ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ı
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:
BBC Micro:bit ve Scratch - Etkileşimli Direksiyon & Sürüş Oyunu: 5 Adım (Resimlerle)
BBC Micro:bit ve Scratch - Etkileşimli Direksiyon Simidi ve Sürüş Oyunu: Bu haftaki sınıf ödevlerimden biri, yazdığımız bir Scratch programıyla arayüz oluşturmak için BBC Micro:bit'i kullanmak. Bunun, ThreadBoard'umu gömülü bir sistem oluşturmak için kullanmak için mükemmel bir fırsat olduğunu düşündüm! Scratch p için ilham kaynağım
Akıllı Geçit Aydınlatma Sistemi - Team Sailor Moon: 12 Adım
Akıllı Geçit Aydınlatma Sistemi - Sailor Moon Ekibi: Merhaba! Bu Grace Rhee, Srijesh Konakanchi ve Juan Landi ve birlikte Sailor Moon Takımıyız! Bugün size kendi evinizde uygulayabileceğiniz iki parçalı bir DIY projesi getireceğiz. Son akıllı yürüyüş yolu aydınlatma sistemimiz bir ul
Transistör Kullanarak Geçit DEĞİL: 3 Adım
Transistör Kullanarak Geçit DEĞİL: Kapı DEĞİL mantık devresi, herhangi bir sensör tabanlı sistem için önemlidir. Temel olarak mikro denetleyici kullanarak inşa ediyoruz. ama burada bir transistör ve bir Anahtar kullanıyorum. Şimdi bu adımları takip edelim ve çıktıyı ters çevirmek için bu tekniği uygulayalım. Olacak
Kendin Yap Noel Işıkları Müziğe Ayarlandı - Koreograflı Ev Işıkları: 15 Adım (Resimlerle)
Kendin Yap Noel Işıkları Müziğe Ayarlandı - Koreograflı Ev Işıkları: Müzik Ayarlı DIY Noel Işıkları - Koreograflı Ev Işıkları Bu yeni başlayan bir DIY DEĞİLDİR. Elektronik, devre, BASIC programlama ve elektrik güvenliği ile ilgili genel zeka konularında sağlam bir kavrayışa ihtiyacınız olacak. Bu DIY, deneyimli bir kişi içindir, yani
Motion Activated Güvenlik Avlu İşareti: 4 Adım (Resimli)
Hareketle Etkinleştirilen Güvenlik Alanı İşareti: Geleneksel güvenlik sistemi avlu işaretleri hiçbir şey yapmaz. Aslında son 30 yılda pek değişmediler. Ancak, bahçenizde göze çarpan bir yere yerleştirildikleri ve bakımlı göründükleri sürece değerli bir caydırıcıdırlar. Seviyorum