Web Sacosta
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
Material
Para realizar este ejercicio vas a neces un Sensor PIR, un Arduino Nano y una tira de leds
La funda del sensor se puede retirar facilmente para poder ver donde hay que conectar los cables.
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);
}
Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0