Saltar la navegación

PIR y Leds

Video demo

En este ejercicio vamos a conectar un sensor de presencia (PIR) con un Arduino
y una tira de leds para que estos se disparen cuando algo se mueva delante del 
sensor.
Los colores de los leds seran escogidos de forma aleatoria.

Esquema

pir tira

Material

Para realizar este ejercicio vas a neces un Sensor PIR, un Arduino Nano y una tira de leds
lcd

La funda del sensor se puede retirar facilmente para poder ver donde hay que conectar los cables.

pir

Código

/*
PIR sensor tester
posición sensor PIR H
mirar pines conexión PIR debajo semiesfera
 */
 
int inputPin = 3;               // Entrada señal proveniente del sensor PIR
int pirState = HIGH;             // Estado inicial PIR sin movimiento
int val = 0;                    // variable donde colocar estado PIR
int tiempo_encendido=100;     // 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 == LOW) {            
   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 == HIGH) {
   
     pirState = LOW;
     
    }
  } else {
    for (int i=0; i < NUMPIXELS; i++) {
    pixels.setPixelColor(i, pixels.Color(0, 0, 0));//apaga la tira
    pixels.show();
   
  }
    if (pirState == LOW){
     Serial.println("Detectado reposo!");
     pirState = HIGH;
    }
  }
}
void setColor(){
    redColor=random(0,150);
    greenColor=random(0,150); 
    blueColor=random(0,150);
    }