Índice:

Luzes de quintal interativas, luzes de passagem: 3 etapas
Luzes de quintal interativas, luzes de passagem: 3 etapas

Vídeo: Luzes de quintal interativas, luzes de passagem: 3 etapas

Vídeo: Luzes de quintal interativas, luzes de passagem: 3 etapas
Vídeo: Eu não esperava por esse final 😱 (#SHORT) - Mansão Movie 2024, Julho
Anonim
Luzes de quintal interativas, luzes de passagem
Luzes de quintal interativas, luzes de passagem
Luzes de quintal interativas, luzes de passagem
Luzes de quintal interativas, luzes de passagem

Eu queria construir algum tipo de iluminação de quintal interativa para meu quintal. A ideia era que, quando alguém caminhava por um lado, uma animação era ativada na direção em que você estava caminhando. Comecei com a Dollar General $ 1,00 luz solar

Etapa 1: destrua as luzes do Solor

Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights
Gut the Solor Lights

O primeiro passo foi apagar as luzes para dar lugar a mais coisas divertidas. Comecei cortando o led original e a bateria. Não se esqueça de guardar essas peças, pois elas serão úteis em outro projeto. Eu também removi a cúpula cromada que estava na parte inferior da luz solar e colei na parte superior como pode ser visto nas fotos

Etapa 2: Instalando Better Lights

Instalando Melhores Luzes
Instalando Melhores Luzes
Instalando Melhores Luzes
Instalando Melhores Luzes
Instalando Melhores Luzes
Instalando Melhores Luzes

para o led, usei ws2811b à prova d'água, que pode ser encontrado aqui

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

Originalmente, planejei colocar os sensores PIR dentro das luzes solares. mas isso provou ser problemático porque o sensor basicamente não conseguia ver além do plástico. deve ter algum tipo de propriedade de filtragem UV. então optei por algo mais parecido com isso

www.thingiverse.com/thing:2590216

Etapa 3: codificação

se você quiser fazer as luzes não usarem sensor ou apenas correr o tempo todo, procure o local que está comentado como "alterando o estado do sinalizador" e configure-o para éter 1 ou 0 adicionarei mais fotos quando concluir isso para mim. ainda é um trabalho em andamento, mas acho que é muito legal não compartilhar imediatamente. obrigado por olhar

void setup () {

// coloque seu código de configuração aqui, para executar uma vez: FastLED.addLeds (leds, NUM_LEDS); Serial.begin (9600); pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); }

void loop () {

Serial.println (FlagState);

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

void ForwardLeds () {

FirstLed = -1; LastLed = 16; para (int i = 0; i <8; i ++) {LastLed--; FirstLed ++; leds [LastLed] = CRGB:: Branco; leds [FirstLed] = CRGB:: Branco; atraso (750); FastLED.show (); Serial.print ("passagem branca"); 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; atraso (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:: Roxo; leds [FirstLed] = CRGB:: Roxo; atraso (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:: Preto; leds [FirstLed] = CRGB:: Preto; atraso (250); FastLED.show (); Serial.print ("LED apagando"); Serial.print (i); Serial.println ("de 8"); } FlagState = 2; // alterando o estado do sinalizador} void RevLeds () {Serial.println ("in reverse"); FirstLed = 8; LastLed = 7; para (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Branco; leds [FirstLed] = CRGB:: Branco; atraso (750); FastLED.show (); Serial.print ("Passe branco"); 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; atraso (250); FastLED.show (); Serial.print ("Blue pass"); Serial.print (i); Serial.println ("de 8"); } FirstLed = 8; LastLed = 7; para (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Roxo; leds [FirstLed] = CRGB:: Roxo; atraso (250); FastLED.show (); Serial.print ("Passe vermelho"); Serial.print (i); Serial.println ("de 8"); }

FirstLed = 8;

LastLed = 7; para (int i = 0; i <8; i ++) {LastLed ++; FirstLed--; leds [LastLed] = CRGB:: Preto; leds [FirstLed] = CRGB:: Preto; atraso (250); FastLED.show (); Serial.print ("Desligando o Led"); Serial.print (i); Serial.println ("de 8"); } FlagState = 2; // alterando o estado do sinalizador} void Waiting () {buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); if (buttonState1 == HIGH) {Serial.println ("encaminhamento acionado"); FlagState = 0; } else if (buttonState2 == HIGH) {Serial.println ("Rev disparado"); FlagState = 1; } Serial.println ("loop concluído em espera"); }

Recomendado: