Բովանդակություն:

Բակի ինտերակտիվ լույսեր, հետիոտնային լույսեր `3 քայլ
Բակի ինտերակտիվ լույսեր, հետիոտնային լույսեր `3 քայլ

Video: Բակի ինտերակտիվ լույսեր, հետիոտնային լույսեր `3 քայլ

Video: Բակի ինտերակտիվ լույսեր, հետիոտնային լույսեր `3 քայլ
Video: VDNKh: Exploring the BEST PARK in Moscow 2024, Նոյեմբեր
Anonim
Բակի ինտերակտիվ լույսեր, հետիոտնային լույսեր
Բակի ինտերակտիվ լույսեր, հետիոտնային լույսեր
Բակի ինտերակտիվ լույսեր, հետիոտնային լույսեր
Բակի ինտերակտիվ լույսեր, հետիոտնային լույսեր

Ես ուզում էի ինչ -որ ինտերակտիվ բակի լույսեր կառուցել իմ հետևի բակի համար: Գաղափարն այն էր, որ երբ ինչ -որ մեկը քայլում էր մեկ ճանապարհով, դա անիմացիա կբարձրացներ այն ուղղությամբ, որով դուք գնում էիք: Ես սկսեցի Dollar General- ի 1.00 $ արևային լույսերով

Քայլ 1: Մարեք Solor Lights- ը

Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights

Առաջին քայլը եղավ լույսերը փչացնելը ՝ ավելի զվարճալի իրերի տեղ բացելու համար: Ես սկսեցի ՝ կտրելով օրիգինալ լապտերը և մարտկոցը: Համոզվեք, որ պահեք այս մասերը, քանի որ դրանք օգտակար կլինեն մեկ այլ նախագծում: Ես նաև հանեցի արևի լույսի ներքևի քրոմապատ գմբեթը և սոսնձեցի այն վերևին, ինչպես երևում է լուսանկարներում:

Քայլ 2: Տեղադրեք ավելի լավ լույսեր

Ավելի լավ լույսերի տեղադրում
Ավելի լավ լույսերի տեղադրում
Ավելի լավ լույսերի տեղադրում
Ավելի լավ լույսերի տեղադրում
Ավելի լավ լույսերի տեղադրում
Ավելի լավ լույսերի տեղադրում

led- ի համար ես օգտագործել եմ անջրանցիկ ws2811b, որը կարելի է գտնել այստեղ

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

Սկզբում ես պլանավորում էի PIR տվիչները տեղադրել արևի լույսերի ներսում: բայց սա ինչ -որ խնդրահարույց դարձավ, քանի որ սենսորը հիմնականում չէր կարող պլաստիկի կողքով տեսնել: այն պետք է ուլտրամանուշակագույն ուլտրամանուշակագույն ֆիլտրման մի տեսակ պատշաճություն ունենա: ուստի ես ընտրեցի նման բան

www.thingiverse.com/thing:2590216

Քայլ 3: Կոդավորում

եթե ցանկանում եք այնպես անել, որ լույսերը չօգտագործեն սենսոր կամ պարզապես անընդհատ վազեն, պարզապես փնտրեք այն վայրը, որը մեկնաբանվում է որպես «դրոշի փոփոխման վիճակ» և սահմանեք այն եթեր 1 կամ 0, ես ավելի շատ լուսանկարներ կավելացնեմ, երբ դա ինքս ինձ համար ավարտեմ: այն դեռ ընթացքի մեջ է, բայց ես կարծում եմ, որ այն չափազանց կոկիկ է `անմիջապես չկիսվելու համար: շնորհակալություն նայելու համար

void setup () {

// տեղադրեք ձեր տեղադրման կոդը այստեղ ՝ մեկ անգամ գործարկելու համար ՝ FastLED.addLeds (leds, NUM_LEDS); Serial.begin (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

դատարկ շրջան () {

Serial.println (FlagState);

եթե (FlagState == 0) {ForwardLeds (); } if (FlagState == 1) {RevLeds (); } if (FlagState == 2) {Սպասում (); }}

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 («Կապույտ անցուղի»); 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 («LED- ի անջատում»); Serial.print (i); Serial.println («8 -ից»); } FlagState = 2; // դրոշի վիճակի փոփոխում} void 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 («Led- ի անջատում»); Serial.print (i); Serial.println («8 -ից»); } FlagState = 2; // դրոշի վիճակի փոփոխում} void Սպասում () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (կոճակ Pin2); if (buttonState1 == HIGH) {Serial.println ("առաջ շարժվեց"); FlagState = 0; } else if (buttonState2 == HIGH) {Serial.println ("Rev գործարկվեց"); FlagState = 1; } Serial.println ("loop Finished սպասում"); }

Խորհուրդ ենք տալիս: