Sommario:

Luci da giardino interattive, luci per passerelle: 3 passaggi
Luci da giardino interattive, luci per passerelle: 3 passaggi

Video: Luci da giardino interattive, luci per passerelle: 3 passaggi

Video: Luci da giardino interattive, luci per passerelle: 3 passaggi
Video: 10 SEGRETI DA ELETTRICISTA 2024, Luglio
Anonim
Luci da giardino interattive, luci per passerelle
Luci da giardino interattive, luci per passerelle
Luci da giardino interattive, luci per passerelle
Luci da giardino interattive, luci per passerelle

Volevo costruire una sorta di luci interattive per il mio cortile. L'idea era che quando qualcuno camminava da una parte si attivava un'animazione nella direzione in cui stavi camminando. Ho iniziato con le luci solari Dollar General da $ 1,00

Passaggio 1: sventrare le luci di Solor

Sventri le luci di Solor
Sventri le luci di Solor
Sventri le luci di Solor
Sventri le luci di Solor
Sventri le luci di Solor
Sventri le luci di Solor

Il primo passo è stato quello di spegnere le luci per far posto a cose più divertenti. Ho iniziato tagliando il led originale e la batteria. Assicurati di salvare queste parti in quanto saranno utili in un altro progetto Ho anche rimosso la cupola cromata che si trovava nella parte inferiore della luce solare e l'ho incollata nella parte superiore come si vede nelle foto

Passaggio 2: installazione di luci migliori

Installazione di luci migliori
Installazione di luci migliori
Installazione di luci migliori
Installazione di luci migliori
Installazione di luci migliori
Installazione di luci migliori

per il led ho usato waterproof ws2811b che trovate qui

www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…

Inizialmente avevo pianificato di mettere i sensori PIR all'interno delle luci solari. ma questo si è rivelato un po' problematico perché il sensore fondamentalmente non riusciva a vedere oltre la plastica. deve avere una sorta di proprietà di filtraggio UV. quindi ho optato per qualcosa di più simile a questo

www.thingiverse.com/thing:2590216

Passaggio 3: codifica

se vuoi fare in modo che le luci non usino il sensore o semplicemente corri tutto il tempo, cerca il posto che è commentato come "cambiamento dello stato della bandiera" e impostalo su ether 1 o 0 aggiungerò altre foto quando lo completerò per me stesso così è ancora un lavoro in corso, ma penso che sia troppo pulito per non condividerlo subito. grazie per aver guardato

void setup() {

// inserisci qui il tuo codice di configurazione, da eseguire una volta: FastLED.addLeds(leds, NUM_LEDS); Serial.begin(9600); pinMode(buttonPin1, INPUT); pinMode(pulsantePin2, INGRESSO); }

ciclo vuoto() {

Serial.println(FlagState);

if(StatoFlag == 0){ ForwardLeds(); } if(StatoFlag == 1){ RevLeds(); } if(StatoFlag == 2){ In attesa(); } }

void ForwardLeds(){

Primo LED = -1; UltimoLed = 16; for(int i=0; i < 8; i++){ UltimoLed--; Primo LED++; leds[LastLed] = CRGB::White; leds[FirstLed] = CRGB::Bianco; ritardo(750); FastLED.show(); Serial.print ("pass bianco"); Stampa.seriale (i); Serial.println (" di 8"); } PrimoLed = -1; UltimoLed = 16; for(int i=0; i < 8; i++){ UltimoLed--; Primo LED++; leds[LastLed] = CRGB::Blue; leds[FirstLed] = CRGB::Blu; ritardo(250); FastLED.show(); Serial.print ("Blue Pass"); Stampa.seriale (i); Serial.println (" di 8"); } PrimoLed = -1; UltimoLed = 16; for(int i=0; i < 8; i++){ UltimoLed--; Primo LED++; leds[LastLed] = CRGB::Viola; leds[FirstLed] = CRGB::Viola; ritardo(250); FastLED.show(); Serial.print ("Pass rosso"); Stampa.seriale (i); Serial.println (" di 8"); } PrimoLed = -1; UltimoLed = 16; for(int i=0; i < 8; i++){ UltimoLed--; Primo LED++; leds[LastLed] = CRGB::Nero; leds[FirstLed] = CRGB::Nero; ritardo(250); FastLED.show(); Serial.print ("Spegnimento led "); Stampa.seriale (i); Serial.println (" di 8"); } FlagState = 2; // modifica dello stato del flag } void RevLeds(){ Serial.println("in reverse"); Primo LED = 8; UltimoLed = 7; for(int i=0; i < 8; i++){ UltimoLed++; Primo LED--; leds[LastLed] = CRGB::Bianco; leds[FirstLed] = CRGB::Bianco; ritardo(750); FastLED.show(); Serial.print ("Pass bianco"); Stampa.seriale (i); Serial.println (" di 8"); } PrimoLed = 8; UltimoLed = 7; for(int i=0; i < 8; i++){ UltimoLed++; Primo LED--; leds[LastLed] = CRGB::Blu; leds[FirstLed] = CRGB::Blu; ritardo(250); FastLED.show(); Serial.print (" Blue pass "); Stampa.seriale (i); Serial.println (" di 8"); } PrimoLed = 8; UltimoLed = 7; for(int i=0; i < 8; i++){ UltimoLed++; Primo LED--; leds[LastLed] = CRGB::Viola; leds[FirstLed] = CRGB::Viola; ritardo(250); FastLED.show(); Serial.print (" Red pass "); Stampa.seriale (i); Serial.println (" di 8"); }

Primo LED = 8;

UltimoLed = 7; for(int i=0; i < 8; i++){ UltimoLed++; Primo LED--; leds[LastLed] = CRGB::Nero; leds[FirstLed] = CRGB::Nero; ritardo(250); FastLED.show(); Serial.print (" Spegnimento Led "); Stampa.seriale (i); Serial.println (" di 8"); } FlagState = 2; //cambiamento dello stato del flag } void Waiting(){ buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2); if(buttonState1 == HIGH){ Serial.println("inoltro attivato"); FlagState = 0; } else if(buttonState2 == HIGH){ Serial.println("Rev attivato"); FlagState = 1; } Serial.println("ciclo finito in attesa"); }

Consigliato: