Sisällysluettelo:

Interaktiiviset pihavalot, kävelytien valot: 3 vaihetta
Interaktiiviset pihavalot, kävelytien valot: 3 vaihetta

Video: Interaktiiviset pihavalot, kävelytien valot: 3 vaihetta

Video: Interaktiiviset pihavalot, kävelytien valot: 3 vaihetta
Video: Interaktiiviset efektit 2024, Heinäkuu
Anonim
Interaktiiviset pihavalot, kävelytien valot
Interaktiiviset pihavalot, kävelytien valot
Interaktiiviset pihavalot, kävelytien valot
Interaktiiviset pihavalot, kävelytien valot

Halusin rakentaa jonkinlaisia interaktiivisia pihavalaisimia takapihalleni. Ajatuksena oli, että kun joku käveli yhdellä tavalla, se käynnisti animaation kulkemasi suuntaan. Aloitin Dollar Generalin 1,00 dollarin aurinkovaloilla

Vaihe 1: Gut Solor Lights

Gut Solor -valot
Gut Solor -valot
Gut Solor -valot
Gut Solor -valot
Gut Solor -valot
Gut Solor -valot

Ensimmäinen askel oli sammuttaa valot, jotta hauskempaa tavaraa. Aloitin katkaisemalla alkuperäisen ledin ja akun. Muista tallentaa nämä osat, koska ne ovat hyödyllisiä toisessa projektissa. Poistin myös auringonvalon pohjassa olevan kromikupolin ja liimasin sen yläosaan kuvien mukaisesti

Vaihe 2: Asenna parempia valoja

Paremman valon asentaminen
Paremman valon asentaminen
Paremman valon asentaminen
Paremman valon asentaminen
Paremman valon asentaminen
Paremman valon asentaminen

ledille käytin vedenpitävää ws2811b, joka löytyy täältä

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

Suunnittelin alun perin PIR -antureiden asettamista aurinkovalojen sisään. mutta tämä osoittautui ongelmalliseksi, koska anturi ei käytännössä voinut nähdä muovin ohi. sillä on oltava jonkinlainen UV -suodatus. joten valitsin jotain tällaista

www.thingiverse.com/thing:2590216

Vaihe 3: Koodaus

jos haluat, että valot eivät käytä anturia tai vain juoksevat koko ajan, etsi vain paikka, joka on kommentoitu "muuttuvaksi lipputilaksi" ja aseta se eetteriksi 1 tai 0, lisään kuvia, kun suoritan tämän itselleni, joten se on vielä kesken, mutta mielestäni se on liian siisti olla jakamatta heti. kiitos kun katsoit

void setup () {

// laita asennuskoodi tähän, jotta se suoritetaan kerran: FastLED.addLeds (ledit, NUM_LEDS); Sarja.alku (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

void loop () {

Serial.println (FlagState);

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

void ForwardLeds () {

FirstLed = -1; LastLed = 16; for (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; ledit [LastLed] = CRGB:: Valkoinen; ledit [FirstLed] = CRGB:: Valkoinen; viive (750); FastLED.show (); Serial.print ("valkoinen passi"); Sarjanjälki (i); Serial.println ("of 8"); } FirstLed = -1; LastLed = 16; for (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; ledit [LastLed] = CRGB:: Sininen; ledit [FirstLed] = CRGB:: Sininen; viive (250); FastLED.show (); Serial.print ("Blue Pass"); Sarjanjälki (i); Serial.println ("of 8"); } FirstLed = -1; LastLed = 16; for (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; ledit [LastLed] = CRGB:: Violetti; ledit [FirstLed] = CRGB:: Violetti; viive (250); FastLED.show (); Serial.print ("Red Pass"); Sarjanjälki (i); Serial.println ("of 8"); } FirstLed = -1; LastLed = 16; for (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; ledit [LastLed] = CRGB:: Musta; ledit [FirstLed] = CRGB:: Musta; viive (250); FastLED.show (); Serial.print ("LED -valojen sammuttaminen"); Sarjanjälki (i); Serial.println ("of 8"); } Lipputila = 2; // lipun tilan muuttaminen} void RevLeds () {Serial.println ("in reverse"); FirstLed = 8; LastLed = 7; for (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; ledit [LastLed] = CRGB:: Valkoinen; ledit [FirstLed] = CRGB:: Valkoinen; viive (750); FastLED.show (); Serial.print ("Valkoinen pass"); Sarjanjälki (i); Serial.println ("of 8"); } FirstLed = 8; LastLed = 7; for (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; ledit [LastLed] = CRGB:: Sininen; ledit [FirstLed] = CRGB:: Sininen; viive (250); FastLED.show (); Serial.print ("Blue pass"); Sarjanjälki (i); Serial.println ("of 8"); } FirstLed = 8; LastLed = 7; for (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; ledit [LastLed] = CRGB:: Violetti; ledit [FirstLed] = CRGB:: Violetti; viive (250); FastLED.show (); Serial.print ("Red pass"); Sarjanjälki (i); Serial.println ("of 8"); }

FirstLed = 8;

LastLed = 7; for (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; ledit [LastLed] = CRGB:: Musta; ledit [FirstLed] = CRGB:: Musta; viive (250); FastLED.show (); Serial.print ("Ledin sammuttaminen"); Sarjanjälki (i); Serial.println ("of 8"); } Lipputila = 2; // lipun tilan muuttaminen} void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HIGH) {Serial.println ("eteenpäin laukaisu"); Lipputila = 0; } else if (buttonState2 == HIGH) {Serial.println ("Rev triggered"); Lipputila = 1; } Serial.println ("silmukka valmis odotus"); }

Suositeltava: