2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Hteo sam da napravim neku vrstu interaktivnih dvorišnih svetala za svoje dvorište. Ideja je bila da, kada bi neko hodao u jednom smjeru, pokrenula bi se animacija u smjeru u kojem ste hodali. Počeo sam sa solarnim svjetlima od 1,00 dolara za Dollar General
Korak 1: Ugasite Solor svjetla
Prvi korak je bio ugasiti svjetla kako bi se napravilo mjesto za zabavniju stvar. Počeo sam izrezivanjem originalnog LED -a i baterije. Obavezno sačuvajte 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 boljeg svjetla
za LED sam koristio vodootporni ws2811b koji se može pronaći ovdje
www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…
Prvobitno sam planirao da postavim PIR senzore u solarna svetla. ali ovo se pokazalo kao problematično jer senzor u osnovi nije mogao vidjeti pokraj plastike. mora imati neku vrstu 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 na gledanju
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; for (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"); Serial.print (i); Serial.println ("od 8"); } FirstLed = -1; LastLed = 16; for (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"); Serial.print (i); Serial.println ("od 8"); } FirstLed = -1; LastLed = 16; for (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"); Serial.print (i); Serial.println ("od 8"); } FirstLed = -1; LastLed = 16; for (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 diode"); Serial.print (i); Serial.println ("od 8"); } FlagState = 2; // promjena stanja zastave} void RevLeds () {Serial.println ("obrnuto"); FirstLed = 8; LastLed = 7; for (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"); Serial.print (i); Serial.println ("od 8"); } FirstLed = 8; LastLed = 7; for (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"); Serial.print (i); Serial.println ("od 8"); } FirstLed = 8; LastLed = 7; for (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"); Serial.print (i); Serial.println ("od 8"); }
FirstLed = 8;
LastLed = 7; for (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"); Serial.print (i); Serial.println ("od 8"); } FlagState = 2; // promjena stanja zastavice} 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 čekanja završena"); }