Saltar la navegación

Platos de plastico y Sensor PIR

En este ejercicio vamos a crear un objeto con platos de plastico (hay que mirar que no
tengan dibujo en su superficie), una tira de leds y un sensor PIR.

Con la ayuda de unas hojas de papel crearemos unas plantillas simetricas que calcaremos 
en las caras de los platos de plastico. Las recortaremos. 
Así mismo utilizaremos trozos de cartón pluma/otro material (que sea como mínimo de 1 cm
de anchura -donde se engancharan las tiras de leds- en forma de circulo.
p1

Haremos unos agujeros en las piezas de plastico y también en los circulos.
En estos miraremos de cortarlos ligeramente, en dirección al centro, que será por donde
pasarán los cables.

p2

Vamos a crear una disposición en 4 pisos para la que vamos a necesitar 4
fragmentos de tiras de leds: Hay que comprobar la dirección de estos segmentos.
En este ejemplo, la base tiene 9 leds, 8 en el primer piso, 7 en el segundo y 6 en el
último, sobre el que irá el sensor led.
p3

En el piso superior hay que dejar espacio para poner el sonsor PIR.
p4

Hay que comprobar que hay suficiente espacio para el sensor, el fragmento 
de tira y los cables.
p5

Ahora ya es cuestión de ir pasando la tira en el orden correcto.
p6

Todas las capas puestas. Hay que ir probando constantemente para estar seguros de que no
se ha desconectado alguna soldadura.

p8

p7

Resultado final

En función del tiempo de activación de las luces, estas cambiaran más rápido o más
despacio. Podéis probar a cambiar el tiempo que aparece en la variable "tiempo encendido"
p9

Codigo

/*
 * PIR sensor tester
 * funciona perfectamente
posición sensor PIR H
mirar pines conexión PIR debajo semiesfera
 */
 
 
int inputPin = 3;               // Entrada señal proveniente del sensor PIR
int pirState = LOW;             // Estado inicial PIR sin movimiento
int val = 0;                    // variable donde colocar estado PIR
int tiempo_encendido=10000;     // Tiempo que permanece encendida la tira después de haber detectado movimiento
 
//para  configurar neopixels
#include <Adafruit_NeoPixel.h>
#define NUMPIXELS      30       // Número de neopixels de la tira
#define PIN 6                   // Pin de salida a la tira neopixels
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int redColor=0;
int greenColor=0;
int blueColor=0;
void setup() {
  pinMode(inputPin, INPUT);     // Pin inputPin declarado como entrada
  pixels.begin();
 
  Serial.begin(9600);
}
 
void loop(){
  val = digitalRead(inputPin);  // Lee valor procedente de PIR
  if (val == HIGH) {            
   for (int i=0; i < NUMPIXELS; i++) {
    setColor();
    pixels.setPixelColor(i, pixels.Color(redColor, greenColor, blueColor));//fija el color de la tira RGB
    pixels.show();
   
  }  Serial.println("Detectado movimiento!");
     delay(tiempo_encendido);
    if (pirState == LOW) {
   
     pirState = HIGH;
     
    }
  } else {
    for (int i=0; i < NUMPIXELS; i++) {
    pixels.setPixelColor(i, pixels.Color(0, 0, 0));//apaga la tira
    pixels.show();
   
  }
    if (pirState == HIGH){
     Serial.println("Detectado reposo!");
     pirState = LOW;
    }
  }
}
void setColor(){
    redColor=random(0,150);
    greenColor=random(0,150); 
    blueColor=random(0,150);
    }