Obsah:

Interaktivní Yard Lights, Walkway Lights: 3 kroky
Interaktivní Yard Lights, Walkway Lights: 3 kroky

Video: Interaktivní Yard Lights, Walkway Lights: 3 kroky

Video: Interaktivní Yard Lights, Walkway Lights: 3 kroky
Video: How To Install a Light Fixture 2024, Listopad
Anonim
Interaktivní dvůrová světla, chodníková světla
Interaktivní dvůrová světla, chodníková světla
Interaktivní dvůrová světla, chodníková světla
Interaktivní dvůrová světla, chodníková světla

Chtěl jsem pro svůj dvůr postavit nějaké interaktivní osvětlení dvora. Myšlenka byla, že když někdo šel jedním směrem, spustil animaci ve směru, kterým kráčíte. Začal jsem solárními světly Dollar General 1,00 $

Krok 1: Vykuchejte solární světla

Vykuchejte solární světla
Vykuchejte solární světla
Vykuchejte solární světla
Vykuchejte solární světla
Vykuchejte solární světla
Vykuchejte solární světla

Prvním krokem bylo vykuchat světla, aby uvolnily místo zábavnějším věcem. Začal jsem vyříznutím původní LED a baterie. Tyto části určitě uložte, protože budou užitečné v jiném projektu. Také jsem odstranil chromovou kopuli, která byla na spodní straně slunečního světla, a nalepil ji na vrchol, jak je vidět na fotografiích

Krok 2: Instalace lepších světel

Instalace lepších světel
Instalace lepších světel
Instalace lepších světel
Instalace lepších světel
Instalace lepších světel
Instalace lepších světel

pro LED jsem použil vodotěsný ws2811b, který najdete zde

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

Původně jsem plánoval umístit PIR senzory dovnitř slunečních světel. ale ukázalo se to jako problematické, protože senzor v podstatě neviděl přes plast. musí mít nějaký druh vhodnosti filtrování UV. tak jsem se rozhodl pro něco takového

www.thingiverse.com/thing:2590216

Krok 3: Kódování

pokud chcete, aby světla nepoužívala senzor nebo jen pořád běžela, stačí vyhledat místo, které je označeno jako „měnící se stav vlajky“a nastavit jej na ether 1 nebo 0, přidám další obrázky, až to dokončím pro sebe, je to stále nedokončená práce, ale myslím, že je příliš úhledné, abychom se o ni hned nesdíleli. díky za shlédnutí

neplatné nastavení () {

// sem vložte instalační kód, aby se spustil jednou: FastLED.addLeds (leds, NUM_LEDS); Serial.begin (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

prázdná smyčka () {

Serial.println (FlagState);

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

neplatné ForwardLeds () {

FirstLed = -1; LastLed = 16; pro (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: White; leds [FirstLed] = CRGB:: White; zpoždění (750); FastLED.show (); Serial.print („bílý průchod“); Serial.print (i); Serial.println ("z 8"); } FirstLed = -1; LastLed = 16; pro (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Blue; leds [FirstLed] = CRGB:: Blue; zpoždění (250); FastLED.show (); Serial.print („Blue Pass“); Serial.print (i); Serial.println ("z 8"); } FirstLed = -1; LastLed = 16; pro (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Purple; leds [FirstLed] = CRGB:: Purple; zpoždění (250); FastLED.show (); Serial.print („Red Pass“); Serial.print (i); Serial.println ("z 8"); } FirstLed = -1; LastLed = 16; pro (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Black; leds [FirstLed] = CRGB:: Black; zpoždění (250); FastLED.show (); Serial.print ("Vypnutí LED"); Serial.print (i); Serial.println ("z 8"); } FlagState = 2; // změna stavu vlajky} void RevLeds () {Serial.println ("v opačném směru"); FirstLed = 8; LastLed = 7; pro (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: White; leds [FirstLed] = CRGB:: White; zpoždění (750); FastLED.show (); Serial.print („White pass“); Serial.print (i); Serial.println ("z 8"); } FirstLed = 8; LastLed = 7; pro (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Blue; leds [FirstLed] = CRGB:: Blue; zpoždění (250); FastLED.show (); Serial.print („Blue pass“); Serial.print (i); Serial.println ("z 8"); } FirstLed = 8; LastLed = 7; pro (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Purple; leds [FirstLed] = CRGB:: Purple; zpoždění (250); FastLED.show (); Serial.print („červený průchod“); Serial.print (i); Serial.println ("z 8"); }

FirstLed = 8;

LastLed = 7; pro (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Black; leds [FirstLed] = CRGB:: Black; zpoždění (250); FastLED.show (); Serial.print ("Vypnutí LED"); Serial.print (i); Serial.println ("z 8"); } FlagState = 2; // změna stavu vlajky} void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HIGH) {Serial.println ("spuštěno dopředu"); FlagState = 0; } else if (buttonState2 == HIGH) {Serial.println ("Rev spuštěno"); FlagState = 1; } Serial.println ("smyčka dokončena čekání"); }

Doporučuje: