Table des matières:

Lumières de cour interactives, lumières de passerelle : 3 étapes
Lumières de cour interactives, lumières de passerelle : 3 étapes

Vidéo: Lumières de cour interactives, lumières de passerelle : 3 étapes

Vidéo: Lumières de cour interactives, lumières de passerelle : 3 étapes
Vidéo: JETTE tes fiches de révisions ! 2024, Novembre
Anonim
Lumières de cour interactives, lumières de passerelle
Lumières de cour interactives, lumières de passerelle
Lumières de cour interactives, lumières de passerelle
Lumières de cour interactives, lumières de passerelle

Je voulais construire une sorte d'éclairage de jardin interactif pour ma cour arrière. L'idée était que lorsque quelqu'un marchait dans un sens, cela déclenchait une animation dans la direction dans laquelle vous marchiez. J'ai commencé avec les lampes solaires Dollar General à 1,00 $

Étape 1: éviscérer les lumières Solor

Gut les lumières Solor
Gut les lumières Solor
Gut les lumières Solor
Gut les lumières Solor
Gut les lumières Solor
Gut les lumières Solor

La première étape consistait à vider les lumières pour faire place à des choses plus amusantes. J'ai commencé par découper la led et la batterie d'origine. Assurez-vous de conserver ces pièces car elles seront utiles dans un autre projet. J'ai également retiré le dôme chromé qui se trouvait au bas de la lampe solaire et je l'ai collé sur le dessus comme on le voit sur les photos

Étape 2: Installer de meilleures lumières

Installer de meilleures lumières
Installer de meilleures lumières
Installer de meilleures lumières
Installer de meilleures lumières
Installer de meilleures lumières
Installer de meilleures lumières

pour la led j'ai utilisé waterproof ws2811b qui peut être trouvé ici

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

J'avais initialement prévu de mettre les capteurs PIR à l'intérieur des lampes solaires. mais cela s'est avéré problématique car le capteur ne pouvait fondamentalement pas voir au-delà du plastique. il doit avoir une sorte de propriété de filtrage UV. alors j'ai opté pour quelque chose de plus comme ça

www.thingverse.com/thing:2590216

Étape 3: Codage

si vous voulez faire en sorte que les lumières n'utilisent pas de capteur ou simplement courir tout le temps, recherchez simplement l'endroit qui est commenté comme "changement d'état du drapeau" et réglez-le sur éther 1 ou 0, j'ajouterai plus de photos lorsque je terminerai cela pour moi-même, donc c'est encore un travail en cours mais je pense que c'est trop chouette pour ne pas partager tout de suite. merci d'avoir regardé

void setup() {

// mettez votre code de configuration ici, à exécuter une fois: FastLED.addLeds(leds, NUM_LEDS); Serial.begin(9600); pinMode(boutonPin1, INPUT); pinMode(boutonPin2, INPUT); }

boucle vide() {

Serial.println(FlagState);

if(FlagState == 0){ ForwardLeds(); } if(FlagState == 1){ RevLeds(); } if(FlagState == 2){ Waiting(); } }

void ForwardLeds(){

PremièreLed = -1; DernièreLed = 16; for(int i=0; i < 8; i++){ LastLed--; PremièreLed++; leds[DernièreLed] = CRGB::Blanc; leds[FirstLed] = CRGB::Blanc; retard (750); FastLED.show(); Serial.print ("white Pass "); Serial.print (i); Serial.println (" de 8 "); } PremièreLed = -1; DernièreLed = 16; for(int i=0; i < 8; i++){ LastLed--; PremièreLed++; leds[DernièreLed] = CRGB::Bleu; leds[FirstLed] = CRGB::Bleu; retard (250); FastLED.show(); Serial.print ("Blue Pass "); Serial.print (i); Serial.println (" de 8 "); } PremièreLed = -1; DernièreLed = 16; for(int i=0; i < 8; i++){ LastLed--; PremièreLed++; leds[DernièreLed] = CRGB::Violet; leds[FirstLed] = CRGB::Purple; retard (250); FastLED.show(); Serial.print (" Red Pass "); Serial.print (i); Serial.println (" de 8 "); } PremièreLed = -1; DernièreLed = 16; for(int i=0; i < 8; i++){ LastLed--; PremièreLed++; leds[DernièreLed] = CRGB::Noir; leds[FirstLed] = CRGB::Black; retard (250); FastLED.show(); Serial.print (" Éteindre la led "); Serial.print (i); Serial.println (" de 8 "); } FlagState = 2; // changement d'état du drapeau } void RevLeds(){ Serial.println("inverse"); PremièreLed = 8; DernièreLed = 7; for(int i=0; i < 8; i++){ LastLed++; PremièreLed--; leds[DernièreLed] = CRGB::Blanc; leds[FirstLed] = CRGB::Blanc; retard (750); FastLED.show(); Serial.print (" White pass "); Serial.print (i); Serial.println (" de 8 "); } PremièreLed = 8; DernièreLed = 7; for(int i=0; i < 8; i++){ LastLed++; PremièreLed--; leds[DernièreLed] = CRGB::Bleu; leds[FirstLed] = CRGB::Bleu; retard (250); FastLED.show(); Serial.print (" Blue pass "); Serial.print (i); Serial.println (" de 8 "); } PremièreLed = 8; DernièreLed = 7; for(int i=0; i < 8; i++){ LastLed++; PremièreLed--; leds[DernièreLed] = CRGB::Violet; leds[FirstLed] = CRGB::Purple; retard (250); FastLED.show(); Serial.print (" Red pass "); Serial.print (i); Serial.println (" de 8 "); }

PremièreLed = 8;

DernièreLed = 7; for(int i=0; i < 8; i++){ LastLed++; PremièreLed--; leds[DernièreLed] = CRGB::Noir; leds[FirstLed] = CRGB::Black; retard (250); FastLED.show(); Serial.print (" Éteindre Led "); Serial.print (i); Serial.println (" de 8 "); } FlagState = 2; //changer l'état du drapeau } void Waiting(){ buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2); if(buttonState1 == HIGH){ Serial.println("forward trigger"); FlagState = 0; } else if(buttonState2 == HIGH){ Serial.println("Rév déclenché"); État du drapeau = 1; } Serial.println("boucle terminée en attente"); }

Conseillé: