2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Ik wilde een soort interactieve tuinverlichting bouwen voor mijn achtertuin. Het idee was dat als iemand een kant op liep, er een animatie zou plaatsvinden in de richting waarin jij liep. Ik begon met Dollar General $ 1,00 zonnelampen
Stap 1: Gut de Solor Lights
De eerste stap was om de lichten te strippen om plaats te maken voor meer leuke dingen. Ik begon met het verwijderen van de originele led en batterij. Zorg ervoor dat u deze onderdelen bewaart, want ze zullen nuttig zijn in een ander project. Ik heb ook de chromen koepel verwijderd die zich aan de onderkant van de zonnelamp bevond en deze aan de bovenkant gelijmd zoals te zien is op foto's
Stap 2: Betere verlichting installeren
voor de led heb ik waterdichte ws2811b gebruikt die hier te vinden is
www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…
Ik was oorspronkelijk van plan om de PIR-sensoren in de zonnelampen te plaatsen. maar dit bleek wat problematisch te zijn omdat de sensor in principe niet voorbij het plastic kon kijken. het moet een soort UV-filter hebben. dus ik koos voor iets meer als dit
www.thingiverse.com/thing:2590216
Stap 3: Coderen
als je wilt dat de lichten geen sensor gebruiken of gewoon de hele tijd rennen, zoek dan naar de plaats die is becommentarieerd als "vlaggenstatus wijzigen" en stel deze in op ether 1 of 0 ik zal meer foto's toevoegen wanneer ik dit voor mezelf voltooi, dus het is nog steeds een werk in uitvoering, maar ik denk dat het te netjes is om niet meteen te delen. bedankt voor het kijken
ongeldige setup() {
// plaats hier uw setup-code om een keer uit te voeren: FastLED.addLeds(leds, NUM_LEDS); Serieel.begin(9600); pinMode (knopPin1, INPUT); pinMode (knopPin2, INPUT); }
lege lus() {
Serial.println (Vlagstatus);
if(FlagState == 0){ ForwardLeds(); } if(Vlagstatus == 1){ RevLeds(); } if(Vlagstatus == 2){ Wachten(); } }
ongeldig ForwardLeds(){
EersteLed = -1; LaatsteLed = 16; for(int i=0; i < 8; i++){ LastLed--; EersteLed++; leds [LaatsteLed] = CRGB::Wit; leds [EersteLed] = CRGB::Wit; vertraging (750); FastLED.show(); Serial.print ("witte pas"); Serieafdruk (i); Serial.println ("van 8"); } EersteLed = -1; LaatsteLed = 16; for(int i=0; i < 8; i++){ LastLed--; EersteLed++; leds [LaatsteLed] = CRGB::Blauw; leds [EersteLed] = CRGB::Blauw; vertraging (250); FastLED.show(); Serial.print ("Blauwe Pass"); Serieafdruk (i); Serial.println ("van 8"); } EersteLed = -1; LaatsteLed = 16; for(int i=0; i < 8; i++){ LastLed--; EersteLed++; leds[LastLed] = CRGB::Paars; leds[FirstLed] = CRGB::Paars; vertraging (250); FastLED.show(); Serial.print ("Red Pass"); Serieafdruk (i); Serial.println ("van 8"); } EersteLed = -1; LaatsteLed = 16; for(int i=0; i < 8; i++){ LastLed--; EersteLed++; leds [LaatsteLed] = CRGB::Zwart; leds [EersteLed] = CRGB::Zwart; vertraging (250); FastLED.show(); Serial.print (" Led uitzetten "); Serieafdruk (i); Serial.println ("van 8"); } Vlaggenstaat = 2; // vlagstatus wijzigen } void RevLeds () {Serial.println ("in omgekeerde richting"); EersteLed = 8; LaatsteLed = 7; for(int i=0; i <8; i++){ LastLed++; EersteLed--; leds [LaatsteLed] = CRGB::Wit; leds [EersteLed] = CRGB::Wit; vertraging (750); FastLED.show(); Serial.print ("Wit pass"); Serieafdruk (i); Serial.println ("van 8"); } EersteLed = 8; LaatsteLed = 7; for(int i=0; i <8; i++){ LastLed++; EersteLed--; leds [LaatsteLed] = CRGB::Blauw; leds [EersteLed] = CRGB::Blauw; vertraging (250); FastLED.show(); Serial.print ("Blauwe pas"); Serieafdruk (i); Serial.println ("van 8"); } EersteLed = 8; LaatsteLed = 7; for(int i=0; i <8; i++){ LastLed++; EersteLed--; leds[LastLed] = CRGB::Paars; leds[FirstLed] = CRGB::Paars; vertraging (250); FastLED.show(); Serial.print (" Rode pas "); Serieafdruk (i); Serial.println ("van 8"); }
EersteLed = 8;
LaatsteLed = 7; for(int i=0; i <8; i++){ LastLed++; EersteLed--; leds [LaatsteLed] = CRGB::Zwart; leds [EersteLed] = CRGB::Zwart; vertraging (250); FastLED.show(); Serial.print (" Led uitzetten "); Serieafdruk (i); Serial.println ("van 8"); } Vlaggenstaat = 2; // vlagstatus wijzigen } void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if(buttonState1 == HOOG){ Serial.println("forward geactiveerd"); Vlaggenstaat = 0; } else if(buttonState2 == HOOG){ Serial.println("Rev geactiveerd"); Vlaggenstaat = 1; } Serial.println("loop Klaar met wachten"); }