Բակի ինտերակտիվ լույսեր, հետիոտնային լույսեր `3 քայլ
Բակի ինտերակտիվ լույսեր, հետիոտնային լույսեր `3 քայլ
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 սպասում"); }

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