Broche Luciérnaga

Broche luciérnaga

Idea desarrollada para los talleres de  Womenteck.
Proyecto de un broche con forma de luciérnaga.
Consiste en cuando hay luz la luciérnaga tiene una luz fija y cuando se hace oscuro la luz cambia aleatoria mente de color.
Usando neopixel RGB y un sensor de luz.
Ademas de la placa de lilypad y un porta pilas CR-2032.

Para empezar dibujaremos nuestro broche sobre la felpa.
Recortaremos las distintas partes.
Yo he usado un redondo blanco de base. Otro redondo blanco para separar la placa lilypad y el porta pilas.( para evitar futuros cortocircuitos)

Después en felpa rojo hice el cuerpo y las alas en felpa negro para que destaquen.
Con un rotulador blanco definí algunos detalles de mi luciérnaga.
En la cabeza y en el culo le hice unos pequeños agujeros para poder sacar el sensor de luz y el led.

Una vez tengo todas las partes, me planteo como voy a colocar el circuito electrónico evitando hacer cortocircuitos al coser.

Cosemos todo tal cual el esquema.

Y cargamos el código de ejemplo.
Por ultimo una vez programado y desenchufado le ponemos la pila y comprobamos su funcionamiento.

Observaciones: NUNCA CARGAR EL PROGRAMA CON ALIMENTACIÓN EXTERNA.

Material usado:
x1 placa lilypad usb
x1 sensor de luz
x1 neopixel RGB
x1 porta pilas CR-2032 + pila CR-2032
x1 hilo conductor + hilo normal
x3 colores de felpa

Placa de lilypad usb

neopixel RGB

Sensor de luz ambiente

Conexiones:


Código:


//sensor luz ambiente

const int darkLevel = 50;//nivel oscuro
int lightValue;//nivel luz
int sensorPin = A3;

//led culo
int greenPin=9;
int bluePin=10;
int redPin=11;


void setup() {
  pinMode(sensorPin, INPUT);
  pinMode(A5, OUTPUT);
  digitalWrite(A5, HIGH);


  pinMode(redPin,OUTPUT);  //color rojo salida
  pinMode(bluePin,OUTPUT); //color azul salida
  pinMode(greenPin,OUTPUT); //color verde salida
 }


long valoraleatorio; // variable tipo long para crear valor aleatorio


void loop() {

   
   lightValue = analogRead(sensorPin);
 
    if (lightValue <=50){    // mayor que....>    menor que.....<
                     
                              valoraleatorio=random((3));                     // '3' tres valores aleatorios 0-1-2
                                                         if(valoraleatorio==0){
                                                                               analogWrite(redPin,255);//color ROJO OFF
                                                                               delay(200);
                                                                               analogWrite(redPin,0);// color ROJO FULL
                                                                               delay(500);
                                                                               analogWrite(redPin,255);//color ROJO OFF
                                                                               }
                                                 
                                                         if (valoraleatorio==1)                            
                                                                               analogWrite(greenPin,255);// color VERDE OFF
                                                                               delay(200);
                                                                               analogWrite(bluePin,0);// color ROJO FULL
                                                                               delay(500);
                                                                               analogWrite(greenPin,255);// color VERDE OFF
                                                                               }

                                                                             
                                                          if (valoraleatorio==2){
                                                                                analogWrite(bluePin,255);// color AZUL OFF
                                                                                delay(200);
                                                                                analogWrite(greenPin,0);// color ROJO FULL
                                                                                delay(500);
                                                                                analogWrite(bluePin,255);// color AZUL OFF
                                                                                }
    }
 

     if (lightValue >=50){
      analogWrite(redPin,125);//color ROJO OFF
     }
     }//cierre loop


Video:
Circuito electrónico
Señales del sensor de luz con osciloscopio

Comentarios

Entradas populares