Tabla de contenido:

Luces de patio interactivas, luces de pasarela: 3 pasos
Luces de patio interactivas, luces de pasarela: 3 pasos

Video: Luces de patio interactivas, luces de pasarela: 3 pasos

Video: Luces de patio interactivas, luces de pasarela: 3 pasos
Video: JOSE ROBERTO TRABAJA EN EL HOOTERS?! 😱😳🤣 2024, Junio
Anonim
Luces de patio interactivas, luces de pasarela
Luces de patio interactivas, luces de pasarela
Luces de patio interactivas, luces de pasarela
Luces de patio interactivas, luces de pasarela

Quería construir algún tipo de luces de jardín interactivas para mi patio trasero. La idea era que, cuando alguien caminaba en una dirección, se activaba una animación en la dirección en la que estabas caminando. Empecé con las luces solares de $ 1.00 de Dollar General

Paso 1: Destripa las luces de color

Destripa las luces de color
Destripa las luces de color
Destripa las luces de color
Destripa las luces de color
Destripa las luces de color
Destripa las luces de color

El primer paso fue destripar las luces para dar paso a más cosas divertidas. Empecé cortando el led y la batería originales. Asegúrese de guardar estas partes ya que serán útiles en otro proyecto. También quité la cúpula cromada que estaba en la parte inferior de la luz solar y la pegué en la parte superior como se ve en las fotos.

Paso 2: Instalación de mejores luces

Instalación de mejores luces
Instalación de mejores luces
Instalación de mejores luces
Instalación de mejores luces
Instalación de mejores luces
Instalación de mejores luces

para el led utilicé ws2811b a prueba de agua que se puede encontrar aquí

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

Originalmente planeé colocar los sensores PIR dentro de las luces solares. pero esto resultó ser algo problemático porque el sensor básicamente no podía ver más allá del plástico. debe tener algún tipo de propiedad de filtrado UV. así que opté por algo más como esto

www.thingiverse.com/thing:2590216

Paso 3: codificación

Si desea que las luces no usen el sensor o simplemente funcionen todo el tiempo, busque el lugar que se comenta como "cambio de estado de la bandera" y configúrelo en ether 1 o 0, agregaré más fotos cuando complete esto por mí mismo, así que todavía es un trabajo en progreso, pero creo que es demasiado bueno para no compartirlo de inmediato. gracias por mirar

configuración vacía () {

// ponga su código de configuración aquí, para que se ejecute una vez: FastLED.addLeds (leds, NUM_LEDS); Serial.begin (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, ENTRADA); }

bucle vacío () {

Serial.println (FlagState);

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

void ForwardLeds () {

FirstLed = -1; LastLed = 16; para (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Blanco; leds [FirstLed] = CRGB:: Blanco; retraso (750); FastLED.show (); Serial.print ("pase blanco"); Serial.print (i); Serial.println ("de 8"); } FirstLed = -1; LastLed = 16; para (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Azul; leds [FirstLed] = CRGB:: Azul; retraso (250); FastLED.show (); Serial.print ("Blue Pass"); Serial.print (i); Serial.println ("de 8"); } FirstLed = -1; LastLed = 16; para (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Violeta; leds [FirstLed] = CRGB:: Purple; retraso (250); FastLED.show (); Serial.print ("Red Pass"); Serial.print (i); Serial.println ("de 8"); } FirstLed = -1; LastLed = 16; para (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Negro; leds [FirstLed] = CRGB:: Negro; retraso (250); FastLED.show (); Serial.print ("Apagar led"); Serial.print (i); Serial.println ("de 8"); } FlagState = 2; // cambiando el estado de la bandera} void RevLeds () {Serial.println ("al revés"); FirstLed = 8; LastLed = 7; para (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Blanco; leds [FirstLed] = CRGB:: Blanco; retraso (750); FastLED.show (); Serial.print ("Pase blanco"); Serial.print (i); Serial.println ("de 8"); } FirstLed = 8; LastLed = 7; para (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Azul; leds [FirstLed] = CRGB:: Azul; retraso (250); FastLED.show (); Serial.print ("Pase azul"); Serial.print (i); Serial.println ("de 8"); } FirstLed = 8; LastLed = 7; para (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Violeta; leds [FirstLed] = CRGB:: Purple; retraso (250); FastLED.show (); Serial.print ("Pase rojo"); Serial.print (i); Serial.println ("de 8"); }

FirstLed = 8;

LastLed = 7; para (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Negro; leds [FirstLed] = CRGB:: Negro; retraso (250); FastLED.show (); Serial.print ("Apagar LED"); Serial.print (i); Serial.println ("de 8"); } FlagState = 2; // cambiando el estado de la bandera} void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HIGH) {Serial.println ("disparado hacia adelante"); FlagState = 0; } else if (buttonState2 == HIGH) {Serial.println ("Rev activada"); FlagState = 1; } Serial.println ("bucle terminado en espera"); }

Recomendado: