2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Htio sam izgraditi neku vrstu interaktivnih dvorišnih svjetala za svoje stražnje dvorište. Ideja je bila da, kad bi netko hodao u jednom smjeru, pokrenula bi se animacija u smjeru u kojem ste hodali. Počeo sam sa Dollar General solarnim svjetlima od 1,00 USD
Korak 1: Uklonite Solor svjetla
Prvi korak bio je ugasiti svjetla kako bi se napravilo mjesta za zabavniju stvar. Počeo sam izrezivanjem originalnog LED -a i baterije. Svakako spremite ove dijelove jer će biti korisni u drugom projektu. Također sam uklonio kromiranu kupolu koja se nalazila na dnu solarne svjetlosti i zalijepio je na vrh kao što se vidi na fotografijama
Korak 2: Instaliranje boljih svjetala
za led sam koristio vodootporni ws2811b koji se može pronaći ovdje
www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…
Prvotno sam planirao staviti PIR senzore u solarna svjetla. ali to se pokazalo kao problematično jer senzor u osnovi nije mogao vidjeti pokraj plastike. mora imati neku vrstu svojstva UV filtriranja. pa sam se odlučio za nešto više poput ovoga
www.thingiverse.com/thing:2590216
Korak 3: Kodiranje
ako želite da svjetla ne koriste senzor ili da samo rade cijelo vrijeme, samo potražite mjesto koje se komentira kao "mijenja stanje zastave" i postavite ga na eter 1 ili 0, dodat ću još slika kad ovo dovršim za sebe pa još uvijek je u tijeku, ali mislim da je previše uredno da ga ne podijelim odmah. hvala što ste pogledali
void setup () {
// ovdje postavite svoj kôd za postavljanje, da biste ga jednom pokrenuli: FastLED.addLeds (LED, NUM_LEDS); Serial.begin (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }
void loop () {{100} {101}
Serial.println (FlagState);
if (FlagState == 0) {ForwardLeds (); } if (FlagState == 1) {RevLeds (); } if (FlagState == 2) {Waiting (); }}
void ForwardLeds () {
FirstLed = -1; LastLed = 16; za (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; LED diode [LastLed] = CRGB:: Bijela; LED diode [FirstLed] = CRGB:: Bijela; kašnjenje (750); FastLED.show (); Serial.print ("bijela propusnica"); Serijski.ispis (i); Serial.println ("od 8"); } FirstLed = -1; LastLed = 16; za (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; LED diode [LastLed] = CRGB:: Plava; LED diode [FirstLed] = CRGB:: Plava; kašnjenje (250); FastLED.show (); Serial.print ("Plava propusnica"); Serijski.ispis (i); Serial.println ("od 8"); } FirstLed = -1; LastLed = 16; za (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; LED diode [LastLed] = CRGB:: Ljubičasta; LED diode [FirstLed] = CRGB:: Ljubičasta; kašnjenje (250); FastLED.show (); Serial.print ("Red Pass"); Serijski.ispis (i); Serial.println ("od 8"); } FirstLed = -1; LastLed = 16; za (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; LED diode [LastLed] = CRGB:: Crna; LED diode [FirstLed] = CRGB:: Crna; kašnjenje (250); FastLED.show (); Serial.print ("Isključivanje LED -a"); Serijski.ispis (i); Serial.println ("od 8"); } FlagState = 2; // promjena stanja zastave} void RevLeds () {Serial.println ("obrnuto"); FirstLed = 8; LastLed = 7; za (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; LED diode [LastLed] = CRGB:: Bijela; LED diode [FirstLed] = CRGB:: Bijela; kašnjenje (750); FastLED.show (); Serial.print ("Bijela propusnica"); Serijski.ispis (i); Serial.println ("od 8"); } FirstLed = 8; LastLed = 7; za (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; LED diode [LastLed] = CRGB:: Plava; LED diode [FirstLed] = CRGB:: Plava; kašnjenje (250); FastLED.show (); Serial.print ("Plava propusnica"); Serijski.ispis (i); Serial.println ("od 8"); } FirstLed = 8; LastLed = 7; za (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; LED diode [LastLed] = CRGB:: Ljubičasta; LED diode [FirstLed] = CRGB:: Ljubičasta; kašnjenje (250); FastLED.show (); Serial.print ("Crvena propusnica"); Serijski.ispis (i); Serial.println ("od 8"); }
FirstLed = 8;
LastLed = 7; za (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; LED diode [LastLed] = CRGB:: Crna; LED diode [FirstLed] = CRGB:: Crna; kašnjenje (250); FastLED.show (); Serial.print ("Isključivanje LED -a"); Serijski.ispis (i); Serial.println ("od 8"); } FlagState = 2; // promjena stanja zastave} void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HIGH) {Serial.println ("prema naprijed aktivirano"); FlagState = 0; } else if (buttonState2 == HIGH) {Serial.println ("Rev triggered"); FlagState = 1; } Serial.println ("petlja završena na čekanju"); }