Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Arxa həyətim üçün bir növ interaktiv həyət işıqları qurmaq istədim. Fikir, kimsə bir tərəfə getdiyi zaman, getdiyin istiqamətdə bir animasiya quracaqdı. Dollar General 1.00 dollarlıq günəş işığı ilə başladım
Addım 1: Solor işıqlarını bağlayın
İlk addım daha əyləncəli şeylərə yol açmaq üçün işıqları söndürmək idi. Orijinal led və batareyanı kəsməklə başladım. Başqa bir layihədə faydalı olacağı üçün bu hissələri saxladığınızdan əmin olun, günəş işığının altındakı xrom günbəzini də çıxarıb fotoşəkillərdə göründüyü kimi üstə yapışdırdım.
Addım 2: Daha Yaxşı İşıqların Quraşdırılması
led üçün burada tapa biləcəyim suya davamlı ws2811b istifadə etdim
www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…
Əvvəlcə günəş işıqlarının içərisinə PIR sensorlar qoymağı planlaşdırmışdım. amma bu problemli olduğunu sübut etdi, çünki sensor əsasən plastikdən keçmişi görə bilmədi. bir növ UV filtrləmə xüsusiyyətinə malik olmalıdır. buna görə daha çox belə bir şey seçdim
www.thingiverse.com/thing:2590216
Addım 3: Kodlaşdırma
İşıqların sensordan istifadə etməməsini və ya hər zaman işləməsini istəsəniz, sadəcə "bayraq vəziyyətinin dəyişməsi" olaraq yazılan yeri axtarın və eter 1 və ya 0 olaraq təyin edin, bunu özüm üçün tamamladığımda daha çox şəkil əlavə edəcəyəm hələ də davam edən bir işdir, amma dərhal paylaşmamaq üçün çox səliqəli olduğunu düşünürəm. baxdığınız üçün təşəkkürlər
boş quraşdırma () {
// quraşdırma kodunuzu buraya qoyun, bir dəfə işləsin: FastLED.addLeds (ledlər, NUM_LEDS); Serial.begin (9600); pinMode (düyməPin1, GİRİŞ); pinMode (düyməPin2, GİRİŞ); }
boşluq döngəsi () {
Serial.println (FlagState);
if (FlagState == 0) {ForwardLeds (); } if (FlagState == 1) {RevLeds (); } if (FlagState == 2) {Waiting (); }}
void ForwardLeds () {
FirstLed = -1; LastLed = 16; for (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; led [LastLed] = CRGB:: Ağ; led [FirstLed] = CRGB:: Ağ; gecikmə (750); FastLED.show (); Serial.print ("ağ keçid"); Serial. çap (i); Serial.println ("of 8"); } FirstLed = -1; LastLed = 16; for (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; led [LastLed] = CRGB:: Mavi; led [FirstLed] = CRGB:: Mavi; gecikmə (250); FastLED.show (); Serial.print ("Mavi keçid"); Serial. çap (i); Serial.println ("of 8"); } FirstLed = -1; LastLed = 16; for (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; led [LastLed] = CRGB:: Purple; leds [FirstLed] = CRGB:: Purple; gecikmə (250); FastLED.show (); Serial.print ("Qırmızı keçid"); Serial. çap (i); Serial.println ("of 8"); } FirstLed = -1; LastLed = 16; for (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; led [LastLed] = CRGB:: Qara; led [FirstLed] = CRGB:: Qara; gecikmə (250); FastLED.show (); Serial.print ("Ledin söndürülməsi"); Serial. çap (i); Serial.println ("of 8"); } FlagState = 2; // bayraq vəziyyətinin dəyişdirilməsi} void RevLeds () {Serial.println ("tərsinə"); FirstLed = 8; LastLed = 7; for (int i = 0; i <8; i ++) {LastLed ++; FirstLed-; led [LastLed] = CRGB:: Ağ; led [FirstLed] = CRGB:: Ağ; gecikmə (750); FastLED.show (); Serial.print ("Ağ keçid"); Serial. çap (i); Serial.println ("of 8"); } FirstLed = 8; LastLed = 7; for (int i = 0; i <8; i ++) {LastLed ++; FirstLed-; led [LastLed] = CRGB:: Mavi; led [FirstLed] = CRGB:: Mavi; gecikmə (250); FastLED.show (); Serial.print ("Mavi keçid"); Serial. çap (i); Serial.println ("of 8"); } FirstLed = 8; LastLed = 7; for (int i = 0; i <8; i ++) {LastLed ++; FirstLed-; led [LastLed] = CRGB:: Purple; leds [FirstLed] = CRGB:: Purple; gecikmə (250); FastLED.show (); Serial.print ("Qırmızı keçid"); Serial. çap (i); Serial.println ("of 8"); }
FirstLed = 8;
LastLed = 7; for (int i = 0; i <8; i ++) {LastLed ++; FirstLed-; led [LastLed] = CRGB:: Qara; led [FirstLed] = CRGB:: Qara; gecikmə (250); FastLED.show (); Serial.print ("Ledin söndürülməsi"); Serial. çap (i); Serial.println ("of 8"); } FlagState = 2; // bayraq vəziyyətinin dəyişdirilməsi} void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HIGH) {Serial.println ("irəli tetiklendi"); FlagState = 0; } else if (buttonState2 == HIGH) {Serial.println ("Rev tetiklendi"); FlagState = 1; } Serial.println ("döngə Gözləmə tamamlandı"); }