Tartalomjegyzék:

Interaktív udvari fények, sétányi fények: 3 lépés
Interaktív udvari fények, sétányi fények: 3 lépés

Videó: Interaktív udvari fények, sétányi fények: 3 lépés

Videó: Interaktív udvari fények, sétányi fények: 3 lépés
Videó: Karácsonyi fények 2022 | Piktor Kert 2024, November
Anonim
Interaktív udvari fények, sétányi fények
Interaktív udvari fények, sétányi fények
Interaktív udvari fények, sétányi fények
Interaktív udvari fények, sétányi fények

Szerettem volna valamilyen interaktív udvari lámpát építeni a hátsó udvaromra. Az ötlet az volt, hogy ha valaki az egyik irányba sétált, akkor animációt indított el abba az irányba, ahol Ön járt. A Dollar General 1,00 dolláros napelemes lámpáival kezdtem

1. lépés: Zúzza le a Solor Lights -ot

Bél a Solor Lights
Bél a Solor Lights
Bél a Solor Lights
Bél a Solor Lights
Bél a Solor Lights
Bél a Solor Lights

Az első lépés az volt, hogy eloltották a lámpákat, hogy szórakoztatóbb dolgokat tegyenek. Az eredeti led és az akkumulátor kivágásával kezdtem. Feltétlenül mentse el ezeket az alkatrészeket, mert hasznosak lesznek egy másik projektben. Én is eltávolítottam a króm kupolát, amely a napfény alján volt, és ragasztottam a tetejére, amint a képeken látható

2. lépés: Jobb fények telepítése

Jobb fények telepítése
Jobb fények telepítése
Jobb fények telepítése
Jobb fények telepítése
Jobb fények telepítése
Jobb fények telepítése

a ledhez vízálló ws2811b -t használtam, amely itt található

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

Eredetileg azt terveztem, hogy a PIR -érzékelőket a napelemek belsejébe helyezem. de ez bizonyult némi problémásnak, mert az érzékelő alapvetően nem látott a műanyag mellett. biztos van benne valamilyen UV szűrő. így inkább valami hasonló mellett döntöttem

www.thingiverse.com/thing:2590216

3. lépés: Kódolás

ha azt szeretné, hogy a lámpák ne használhassák az érzékelőt, vagy csak folyton működjenek, akkor csak keresse meg azt a helyet, amelyet "zászlóállapot megváltoztatása" megjegyzésként megjegyzett, és állítsa be 1 vagy 0 éterre, további képeket adok hozzá, amikor befejezem ezt magamnak, így még folyamatban van, de szerintem túl ügyes ahhoz, hogy ne ossza meg azonnal. köszönöm, hogy megnézted

void setup () {

// tegye ide a beállítási kódot, hogy egyszer fusson: FastLED.addLeds (ledek, NUM_LEDS); Sorozat.kezdet (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

void loop () {

Serial.println (FlagState);

if (FlagState == 0) {ForwardLeds (); } if (FlagState == 1) {RevLeds (); } if (FlagState == 2) {Várakozás (); }}

void ForwardLeds () {

ElsőLed = -1; UtolsóLed = 16; for (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; ledek [UtolsóLed] = CRGB:: Fehér; ledek [FirstLed] = CRGB:: Fehér; késleltetés (750); FastLED.show (); Serial.print ("fehér bérlet"); Sorozatnyomat (i); Serial.println ("of 8"); } ElsőLed = -1; UtolsóLed = 16; for (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; ledek [UtolsóLed] = CRGB:: Kék; ledek [FirstLed] = CRGB:: Kék; késleltetés (250); FastLED.show (); Serial.print ("Blue Pass"); Sorozatnyomat (i); Serial.println ("of 8"); } ElsőLed = -1; UtolsóLed = 16; for (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; ledek [UtolsóLed] = CRGB:: Lila; ledek [FirstLed] = CRGB:: Lila; késleltetés (250); FastLED.show (); Serial.print ("Red Pass"); Sorozatnyomat (i); Serial.println ("of 8"); } ElsőLed = -1; UtolsóLed = 16; for (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; ledek [UtolsóLed] = CRGB:: Fekete; ledek [FirstLed] = CRGB:: Fekete; késleltetés (250); FastLED.show (); Serial.print ("A led kikapcsolása"); Sorozatnyomat (i); Serial.println ("of 8"); } FlagState = 2; // zászló állapot megváltoztatása} void RevLeds () {Serial.println ("in reverse"); FirstLed = 8; UtolsóLed = 7; for (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; ledek [UtolsóLed] = CRGB:: Fehér; ledek [FirstLed] = CRGB:: Fehér; késleltetés (750); FastLED.show (); Serial.print ("Fehér passz"); Sorozatnyomat (i); Serial.println ("of 8"); } FirstLed = 8; UtolsóLed = 7; for (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; ledek [UtolsóLed] = CRGB:: Kék; ledek [FirstLed] = CRGB:: Kék; késleltetés (250); FastLED.show (); Serial.print ("Blue pass"); Sorozatnyomat (i); Serial.println ("of 8"); } FirstLed = 8; UtolsóLed = 7; for (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; ledek [UtolsóLed] = CRGB:: Lila; ledek [FirstLed] = CRGB:: Lila; késleltetés (250); FastLED.show (); Serial.print ("Red pass"); Sorozatnyomat (i); Serial.println ("of 8"); }

FirstLed = 8;

UtolsóLed = 7; for (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; ledek [UtolsóLed] = CRGB:: Fekete; ledek [FirstLed] = CRGB:: Fekete; késleltetés (250); FastLED.show (); Serial.print ("A LED kikapcsolása"); Sorozatnyomat (i); Serial.println ("of 8"); } FlagState = 2; // zászló állapotának megváltoztatása} void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HIGH) {Serial.println ("előre aktivált"); FlagState = 0; } else if (buttonState2 == HIGH) {Serial.println ("Rev trigged"); FlagState = 1; } Serial.println ("ciklus Várakozás befejezve"); }

Ajánlott: