Innehållsförteckning:

Interaktiva gårdsljus, gångbelysning: 3 steg
Interaktiva gårdsljus, gångbelysning: 3 steg

Video: Interaktiva gårdsljus, gångbelysning: 3 steg

Video: Interaktiva gårdsljus, gångbelysning: 3 steg
Video: Фрик или Гений? Интервью с Манго о любви, работе с детьми и мафии с Левшой 2024, Juli
Anonim
Interaktiva gårdsljus, gångvägsljus
Interaktiva gårdsljus, gångvägsljus
Interaktiva Yard Lights, Walkway Lights
Interaktiva Yard Lights, Walkway Lights

Jag ville bygga någon form av interaktiva gårdsljus för min bakgård. Tanken var att när någon gick ett sätt skulle det sätta igång en animation i den riktning du gick. Jag började med Dollar General $ 1.00 solbelysning

Steg 1: Gut 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

Det första steget var att tända lamporna för att ge plats för roligare saker. Jag började med att klippa ur den ursprungliga ledningen och batteriet. Var noga med att spara dessa delar eftersom de kommer att vara användbara i ett annat projekt. Jag tog också bort kromkupolen som var på undersidan av solskenet och limmade den på toppen som på bilderna

Steg 2: Installera bättre lampor

Installera bättre lampor
Installera bättre lampor
Installera bättre lampor
Installera bättre lampor
Installera bättre lampor
Installera bättre lampor

för LED använde jag vattentät ws2811b som finns här

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

Jag planerade ursprungligen att sätta PIR -sensorerna inuti solskenet. men detta visade sig vara något problematiskt eftersom sensorn i princip inte kunde se förbi plasten. det måste ha någon form av UV -filtrering. så jag valde något mer så här

www.thingiverse.com/thing:2590216

Steg 3: Kodning

om du vill att lamporna inte ska använda sensor eller bara springa hela tiden är det bara att leta efter platsen som kommenteras som "ändra flaggstatus" och ställa in den på eter 1 eller 0, jag lägger till fler bilder när jag slutför detta för mig själv så det är fortfarande ett pågående arbete men jag tycker att det är för snyggt för att inte dela direkt. tack för att du tittade

void setup () {

// lägg din installationskod här för att köra en gång: FastLED.addLeds (leds, NUM_LEDS); Serial.begin (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

void loop () {

Serial.println (FlagState);

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

void ForwardLeds () {

FirstLed = -1; LastLed = 16; för (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Vit; leds [FirstLed] = CRGB:: Vit; fördröjning (750); FastLED.show (); Serial.print ("white Pass"); Serial.print (i); Serial.println ("av 8"); } FirstLed = -1; LastLed = 16; för (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Blå; leds [FirstLed] = CRGB:: Blå; fördröjning (250); FastLED.show (); Serial.print ("Blue Pass"); Serial.print (i); Serial.println ("av 8"); } FirstLed = -1; LastLed = 16; för (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Lila; leds [FirstLed] = CRGB:: Lila; fördröjning (250); FastLED.show (); Serial.print ("Red Pass"); Serial.print (i); Serial.println ("av 8"); } FirstLed = -1; LastLed = 16; för (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Svart; leds [FirstLed] = CRGB:: Svart; fördröjning (250); FastLED.show (); Serial.print ("Stänga av LED"); Serial.print (i); Serial.println ("av 8"); } FlagState = 2; // ändra flaggstatus} ogiltiga RevLeds () {Serial.println ("i omvänd"); FirstLed = 8; LastLed = 7; för (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Vit; leds [FirstLed] = CRGB:: Vit; fördröjning (750); FastLED.show (); Serial.print ("White pass"); Serial.print (i); Serial.println ("av 8"); } FirstLed = 8; LastLed = 7; för (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Blå; leds [FirstLed] = CRGB:: Blå; fördröjning (250); FastLED.show (); Serial.print ("Blått pass"); Serial.print (i); Serial.println ("av 8"); } FirstLed = 8; LastLed = 7; för (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Lila; leds [FirstLed] = CRGB:: Lila; fördröjning (250); FastLED.show (); Serial.print ("Red pass"); Serial.print (i); Serial.println ("av 8"); }

FirstLed = 8;

LastLed = 7; för (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Svart; leds [FirstLed] = CRGB:: Svart; fördröjning (250); FastLED.show (); Serial.print ("Stänga av LED"); Serial.print (i); Serial.println ("av 8"); } FlagState = 2; // ändra flaggstatus} void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HIGH) {Serial.println ("framåt utlöst"); FlagState = 0; } annars if (buttonState2 == HIGH) {Serial.println ("Rev utlöst"); FlagState = 1; } Serial.println ("loop slutad väntar"); }

Rekommenderad: