Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Norėjau pastatyti kažkokius interaktyvius kiemo žibintus savo kieme. Idėja buvo ta, kad kai kas nors vaikščiojo vienu keliu, jis pradės animaciją ta kryptimi, kuria jūs einate. Pradėjau nuo „Dollar General“1,00 USD saulės lempučių
1 žingsnis: nusausinkite „Solor Lights“
Pirmasis žingsnis buvo užgesinti žibintus, kad atsirastų daugiau įdomių dalykų. Pradėjau iškirpdama originalią lemputę ir bateriją. Būtinai išsaugokite šias dalis, nes jos bus naudingos kitame projekte. Aš taip pat pašalinau chromo kupolą, esantį saulės šviesos apačioje, ir priklijavau prie viršaus, kaip matyti nuotraukose
2 žingsnis: Geresnių žibintų montavimas
„led i“naudoju vandeniui atsparų „ws2811b“, kurį galite rasti čia
www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…
Iš pradžių planavau įdėti PIR jutiklius į saulės šviesas. tačiau tai pasirodė esanti problemiška, nes jutiklis iš esmės negalėjo matyti pro plastiko. jis turi turėti tam tikrą UV filtravimo savybę. todėl pasirinkau kažką panašaus
www.thingiverse.com/thing:2590216
3 žingsnis: kodavimas
jei norite, kad žibintai nenaudotų jutiklio arba tiesiog veiktų visą laiką, tiesiog ieškokite vietos, kuri komentuojama kaip „keičiama vėliavos būsena“, ir nustatykite ją į 1 arba 0 eterį, pridėsiu daugiau nuotraukų, kai tai padarysiu sau jis vis dar nebaigtas, bet manau, kad jis yra per daug tvarkingas, kad iš karto nesidalytų. ačiū, kad žiūrite
void setup () {
// įdėkite čia savo sąrankos kodą, kad paleistumėte vieną kartą: FastLED.addLeds (LED, NUM_LEDS); Serial.begin (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }
void loop () {
Serial.println (vėliavos valstybė);
if (FlagState == 0) {ForwardLeds (); } if (FlagState == 1) {RevLeds (); } if (FlagState == 2) {Waiting (); }}
void ForwardLeds () {
PirmasisLed = -1; PaskutiniaiLed = 16; už (int i = 0; i <8; i ++) {LastLed--; „FirstLed“++; LED [LastLed] = CRGB:: Balta; šviesos diodai [FirstLed] = CRGB:: Balta; vėlavimas (750); FastLED.show (); Serial.print („baltas leidimas“); Serijinis atspaudas (i); Serial.println ("iš 8"); } FirstLed = -1; PaskutiniaiLed = 16; už (int i = 0; i <8; i ++) {LastLed--; „FirstLed“++; LED [LastLed] = CRGB:: Mėlyna; šviesos diodai [FirstLed] = CRGB:: Mėlyna; vėlavimas (250); FastLED.show (); Serial.print („Blue Pass“); Serijinis atspaudas (i); Serial.println ("iš 8"); } FirstLed = -1; PaskutiniaiLed = 16; už (int i = 0; i <8; i ++) {LastLed--; „FirstLed“++; LED [LastLed] = CRGB:: Violetinė; šviesos diodai [FirstLed] = CRGB:: Violetinė; vėlavimas (250); FastLED.show (); Serial.print („Raudonasis leidimas“); Serijinis atspaudas (i); Serial.println ("iš 8"); } FirstLed = -1; PaskutiniaiLed = 16; už (int i = 0; i <8; i ++) {LastLed--; „FirstLed“++; LED [LastLed] = CRGB:: Juoda; šviesos diodai [FirstLed] = CRGB:: Juoda; vėlavimas (250); FastLED.show (); Serial.print („LED išjungimas“); Serijinis atspaudas (i); Serial.println ("iš 8"); } Vėliavos būsena = 2; // vėliavos būsenos keitimas} void RevLeds () {Serial.println ("atvirkščiai"); FirstLed = 8; PaskutinisLed = 7; už (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; LED [LastLed] = CRGB:: Balta; šviesos diodai [FirstLed] = CRGB:: Balta; vėlavimas (750); FastLED.show (); Serial.print („Baltas leidimas“); Serijinis atspaudas (i); Serial.println ("iš 8"); } FirstLed = 8; PaskutinisLed = 7; už (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; LED [LastLed] = CRGB:: Mėlyna; šviesos diodai [FirstLed] = CRGB:: Mėlyna; vėlavimas (250); FastLED.show (); Serial.print („Mėlynasis leidimas“); Serijinis atspaudas (i); Serial.println ("iš 8"); } FirstLed = 8; PaskutinisLed = 7; už (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; LED [LastLed] = CRGB:: Purpurinė; šviesos diodai [FirstLed] = CRGB:: Violetinė; vėlavimas (250); FastLED.show (); Serial.print („Raudonasis leidimas“); Serijinis atspaudas (i); Serial.println ("iš 8"); }
FirstLed = 8;
PaskutinisLed = 7; už (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; LED [LastLed] = CRGB:: Juoda; šviesos diodai [FirstLed] = CRGB:: Juoda; vėlavimas (250); FastLED.show (); Serial.print („LED išjungimas“); Serijinis atspaudas (i); Serial.println ("iš 8"); } Vėliavos būsena = 2; // vėliavos būsenos keitimas} void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HIGH) {Serial.println ("įjungtas į priekį"); Vėliavos būsena = 0; } else if (buttonState2 == HIGH) {Serial.println ("Rev suaktyvintas"); Vėliavos būsena = 1; } Serial.println ("ciklas baigtas laukti"); }