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
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: