2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Ek wou 'n soort interaktiewe tuinligte vir my agterplaas bou. Die idee was dat as iemand een kant toe loop, dit 'n animasie in die rigting waarin jy loop stap. Ek het begin met Dollar General $ 1.00 sonligte
Stap 1: Gut the Solor Lights
Die eerste stap was om die ligte in te sit om plek te maak vir meer lekker dinge. Ek het begin deur die oorspronklike led en battery uit te sny. Stoor hierdie dele, aangesien dit nuttig sal wees vir 'n ander projek. Ek het ook die chroom -koepel wat aan die onderkant van die sonlig was, verwyder en dit aan die bokant vasgeplak, soos op foto's gesien
Stap 2: Installeer beter ligte
Vir die LED gebruik ek waterdigte ws2811b wat u hier kan vind
www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…
Ek was oorspronklik van plan om die PIR -sensors in die sonligte te plaas. maar dit was 'n probleem, want die sensor kon basies nie verby die plastiek kom nie. dit moet 'n soort UV -filtreerbaarheid hê. so ek het gekies vir iets meer soos hierdie
www.thingiverse.com/thing:2590216
Stap 3: Kodering
As u wil hê dat die ligte nie 'n sensor gebruik nie, of net die hele tyd hardloop, soek dan net die plek wat as 'veranderende vlagstaat' beskou word en stel dit op ether 1 of 0, ek sal meer foto's byvoeg as ek dit vir myself voltooi het dit is nog steeds aan die gang, maar ek dink dit is te netjies om nie dadelik te deel nie. dankie dat u gekyk het
ongeldige opstelling () {
// sit u opstellingskode hier om een keer te hardloop: FastLED.addLeds (leds, NUM_LEDS); Serial.begin (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }
leemte -lus () {
Serial.println (FlagState);
as (FlagState == 0) {ForwardLeds (); } as (FlagState == 1) {RevLeds (); } as (FlagState == 2) {Waiting (); }}
nietig ForwardLeds () {
FirstLed = -1; LastLed = 16; vir (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Wit; leds [FirstLed] = CRGB:: Wit; vertraging (750); FastLED.show (); Serial.print ("wit pas"); Serial.print (i); Serial.println ("van 8"); } FirstLed = -1; LastLed = 16; vir (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Blou; leds [FirstLed] = CRGB:: Blou; vertraging (250); FastLED.show (); Serial.print ("Blue Pass"); Serial.print (i); Serial.println ("van 8"); } FirstLed = -1; LastLed = 16; vir (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Pers; leds [FirstLed] = CRGB:: Pers; vertraging (250); FastLED.show (); Serial.print ("Rooi pas"); Serial.print (i); Serial.println ("van 8"); } FirstLed = -1; LastLed = 16; vir (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Swart; leds [FirstLed] = CRGB:: Swart; vertraging (250); FastLED.show (); Serial.print ("LED uitskakel"); Serial.print (i); Serial.println ("van 8"); } FlagState = 2; // veranderende vlagstaat} ongeldig RevLeds () {Serial.println ("in reverse"); FirstLed = 8; LastLed = 7; vir (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Wit; leds [FirstLed] = CRGB:: Wit; vertraging (750); FastLED.show (); Serial.print ("Wit pas"); Serial.print (i); Serial.println ("van 8"); } FirstLed = 8; LastLed = 7; vir (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Blou; leds [FirstLed] = CRGB:: Blou; vertraging (250); FastLED.show (); Serial.print ("Blue pass"); Serial.print (i); Serial.println ("van 8"); } FirstLed = 8; LastLed = 7; vir (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Pers; leds [FirstLed] = CRGB:: Pers; vertraging (250); FastLED.show (); Serial.print ("Rooi pas"); Serial.print (i); Serial.println ("van 8"); }
FirstLed = 8;
LastLed = 7; vir (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Swart; leds [FirstLed] = CRGB:: Swart; vertraging (250); FastLED.show (); Serial.print ("Led afskakel"); Serial.print (i); Serial.println ("van 8"); } FlagState = 2; // veranderende vlagstaat} leegte Wag () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HOOG) {Serial.println ("vorentoe geaktiveer"); FlagState = 0; } anders as (buttonState2 == HOOG) {Serial.println ("Rev geaktiveer"); FlagState = 1; } Serial.println ("lus klaar wag"); }