2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Tahtsin oma tagahoovile ehitada mingisugused interaktiivsed õuevalgustid. Idee oli selles, et kui keegi kõndis ühte suunda, käivitas see animatsiooni selles suunas, kus te kõndisite. Alustasin Dollar General 1,00 -dollaristest päikesevalgustitest
Samm: sisestage Solor -tuled
Esimene samm oli kustutada tuled, et teha lõbusam kraam. Alustasin algse LED -i ja aku väljalõikamisega. Salvestage need osad kindlasti, sest need on mõnes teises projektis kasulikud. Eemaldasin ka päikesevalguse põhjas asuva kroomkupli ja liimisin selle ülaosale, nagu fotodel näha
Samm: paremate tulede paigaldamine
LED -i jaoks kasutasin veekindlat ws2811b, mille leiate siit
www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…
Plaanisin algselt panna PIR -andurid päikesetulede sisse. kuid see osutus probleemseks, kuna andur ei näinud plastikust mööda. sellel peab olema mingisugune UV -filtreerimine. nii et ma valisin midagi sellist
www.thingiverse.com/thing:2590216
Samm: kodeerimine
kui soovite, et tuled ei kasutaks andurit või lihtsalt jookseksid kogu aeg, otsige üles koht, mida kommenteeritakse kui "lipuriigi muutmine", ja seadke see eetrisse 1 või 0, lisan rohkem pilte, kui ma selle enda jaoks lõpetan, nii see on veel pooleli, kuid minu arvates on see liiga puhas, et seda kohe jagada. aitäh vaatamast
tühine seadistus () {
// pange oma seadistuskood siia, et seda korra käivitada: FastLED.addLeds (ledid, NUM_LEDS); Seriaalne algus (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }
void loop () {
Serial.println (FlagState);
if (FlagState == 0) {ForwardLeds (); } if (FlagState == 1) {RevLeds (); } if (FlagState == 2) {Ootel (); }}
void ForwardLeds () {
FirstLed = -1; LastLed = 16; jaoks (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; ledid [LastLed] = CRGB:: Valge; ledid [FirstLed] = CRGB:: Valge; viivitus (750); FastLED.show (); Serial.print ("valge pass"); Seeriatrükk (i); Serial.println ("8 -st"); } FirstLed = -1; LastLed = 16; jaoks (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; ledid [LastLed] = CRGB:: Sinine; ledid [FirstLed] = CRGB:: Sinine; viivitus (250); FastLED.show (); Serial.print ("Blue Pass"); Seeriatrükk (i); Serial.println ("8 -st"); } FirstLed = -1; LastLed = 16; jaoks (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; ledid [LastLed] = CRGB:: Purple; ledid [FirstLed] = CRGB:: Purple; viivitus (250); FastLED.show (); Serial.print ("Punane pass"); Seeriatrükk (i); Serial.println ("8 -st"); } FirstLed = -1; LastLed = 16; jaoks (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; ledid [LastLed] = CRGB:: Must; ledid [FirstLed] = CRGB:: Must; viivitus (250); FastLED.show (); Serial.print ("LED -i väljalülitamine"); Seeriatrükk (i); Serial.println ("8 -st"); } Lipuriik = 2; // lipuriigi muutmine} void RevLeds () {Serial.println ("tagurpidi"); FirstLed = 8; LastLed = 7; jaoks (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; ledid [LastLed] = CRGB:: Valge; ledid [FirstLed] = CRGB:: Valge; viivitus (750); FastLED.show (); Serial.print ("Valge pass"); Seeriatrükk (i); Serial.println ("8 -st"); } FirstLed = 8; LastLed = 7; jaoks (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; ledid [LastLed] = CRGB:: Sinine; ledid [FirstLed] = CRGB:: Sinine; viivitus (250); FastLED.show (); Serial.print ("Sinine pass"); Seeriatrükk (i); Serial.println ("8 -st"); } FirstLed = 8; LastLed = 7; jaoks (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; ledid [LastLed] = CRGB:: Purple; ledid [FirstLed] = CRGB:: Purple; viivitus (250); FastLED.show (); Serial.print ("Punane pass"); Seeriatrükk (i); Serial.println ("of 8"); }
FirstLed = 8;
LastLed = 7; jaoks (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; ledid [LastLed] = CRGB:: Must; ledid [FirstLed] = CRGB:: Must; viivitus (250); FastLED.show (); Serial.print ("Led väljalülitamine"); Seeriatrükk (i); Serial.println ("8 -st"); } Lipuriik = 2; // lipuriigi muutmine} void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HIGH) {Serial.println ("edasi käivitatud"); Lipuriik = 0; } else if (buttonState2 == HIGH) {Serial.println ("Rev käivitati"); Lipuriik = 1; } Serial.println ("loop Lõpetas ootamise"); }