תוכן עניינים:

אורות חצר אינטראקטיביים, אורות שביל: 3 שלבים
אורות חצר אינטראקטיביים, אורות שביל: 3 שלבים

וִידֵאוֹ: אורות חצר אינטראקטיביים, אורות שביל: 3 שלבים

וִידֵאוֹ: אורות חצר אינטראקטיביים, אורות שביל: 3 שלבים
וִידֵאוֹ: סיפורי שכונות: סיור מרתק בסמטאות נחלאות בירושלים 2024, נוֹבֶמבֶּר
Anonim
אורות חצר אינטראקטיביים, אורות שביל
אורות חצר אינטראקטיביים, אורות שביל
אורות חצר אינטראקטיביים, אורות שביל
אורות חצר אינטראקטיביים, אורות שביל

רציתי לבנות איזו אורות חצר אינטראקטיביים לחצר האחורית שלי. הרעיון היה שכאשר מישהו ילך בדרך אחת זה יניע אנימציה בכיוון שבו אתה הולך. התחלתי עם אורות שמש $ 1.00 דולר ג'נרל

שלב 1: שים את אורות הסולור

בטן את אורות הסולור
בטן את אורות הסולור
בטן את אורות הסולור
בטן את אורות הסולור
בטן את אורות הסולור
בטן את אורות הסולור

הצעד הראשון היה לבלום את האורות כדי לפנות מקום לדברים מהנים יותר. התחלתי בחיתוך הלד והסוללה המקוריים. הקפד לשמור חלקים אלה מכיוון שהם יהיו שימושיים בפרויקט אחר הסרתי גם את כיפת הכרום שהייתה בתחתית אור השמש והדבקתי אותה לראש כפי שניתן לראות בתמונות

שלב 2: התקנת אורות טובים יותר

התקנת אורות טובים יותר
התקנת אורות טובים יותר
התקנת אורות טובים יותר
התקנת אורות טובים יותר
התקנת אורות טובים יותר
התקנת אורות טובים יותר

עבור הלד השתמשתי ב- ws2811b עמיד למים שניתן למצוא כאן

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

תכננתי במקור לשים את חיישני ה- PIR בתוך האורות הסולאריים. אבל זה היה קצת בעייתי מכיוון שהחיישן בעצם לא יכול היה לראות מעבר לפלסטיק. זה חייב להיות בעל תקינות של סינון UV. אז בחרתי במשהו יותר כזה

www.thingiverse.com/thing:2590216

שלב 3: קידוד

אם אתה רוצה לגרום לנורות לא להשתמש בחיישן או פשוט לרוץ כל הזמן פשוט חפש את המקום שמוערך כ"שינוי מצב הדגל "והגדר אותו לאתר 1 או 0 אני אוסיף עוד תמונות כשאשלים את זה לעצמי אז היא עדיין בעיצומה, אך לדעתי מסודר מדי מכדי לא לשתף אותה מיד. תודה שהסתכלת

הגדרת בטל () {

// שים את קוד ההתקנה שלך כאן, להפעלה פעם אחת: FastLED.addLeds (leds, NUM_LEDS); Serial.begin (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

לולאת חלל () {

Serial.println (FlagState);

אם (FlagState == 0) {ForwardLeds (); } if (FlagState == 1) {RevLeds (); } אם (FlagState == 2) {Waiting (); }}

void ForwardLeds () {

FirstLed = -1; LastLed = 16; עבור (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: לבן; leds [FirstLed] = CRGB:: לבן; עיכוב (750); FastLED.show (); Serial.print ("כרטיס לבן"); Serial.print (i); Serial.println ("מתוך 8"); } FirstLed = -1; LastLed = 16; עבור (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: כחול; leds [FirstLed] = CRGB:: כחול; עיכוב (250); FastLED.show (); Serial.print ("Blue Pass"); Serial.print (i); Serial.println ("מתוך 8"); } FirstLed = -1; LastLed = 16; עבור (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: סגול; leds [FirstLed] = CRGB:: סגול; עיכוב (250); FastLED.show (); Serial.print ("אדום מעבר"); Serial.print (i); Serial.println ("מתוך 8"); } FirstLed = -1; LastLed = 16; עבור (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: שחור; leds [FirstLed] = CRGB:: שחור; עיכוב (250); FastLED.show (); Serial.print ("כיבוי לד"); Serial.print (i); Serial.println ("מתוך 8"); } FlagState = 2; // שינוי מצב הדגל} בטל RevLeds () {Serial.println ("הפוך"); FirstLed = 8; LastLed = 7; עבור (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: לבן; leds [FirstLed] = CRGB:: לבן; עיכוב (750); FastLED.show (); Serial.print ("מעבר לבן"); Serial.print (i); Serial.println ("מתוך 8"); } FirstLed = 8; LastLed = 7; עבור (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: כחול; leds [FirstLed] = CRGB:: כחול; עיכוב (250); FastLED.show (); Serial.print ("מעבר כחול"); Serial.print (i); Serial.println ("מתוך 8"); } FirstLed = 8; LastLed = 7; עבור (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: סגול; leds [FirstLed] = CRGB:: סגול; עיכוב (250); FastLED.show (); Serial.print ("מעבר אדום"); Serial.print (i); Serial.println ("מתוך 8"); }

FirstLed = 8;

LastLed = 7; עבור (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: שחור; leds [FirstLed] = CRGB:: שחור; עיכוב (250); FastLED.show (); Serial.print ("כיבוי לד"); Serial.print (i); Serial.println ("מתוך 8"); } FlagState = 2; // שינוי מצב הדגל} void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HIGH) {Serial.println ("מופעל קדימה"); FlagState = 0; } אחרת אם (buttonState2 == HIGH) {Serial.println ("Rev מופעל"); FlagState = 1; } Serial.println ("סיבוב ההמתנה של הלולאה"); }

מוּמלָץ: