Web Sacosta
HW-MS03
Sensor de presencia
Sensor de presencia
Sensor HW-MS03
Este sensor detecta presencia en todas direcciones. En el video se puede ver un ejemplo.
Pines del sensor con Arduino
La conexión es muy sencilla pues solo necesita tres cables
En el ejemplo que se muestra en el video se ha utilizado este esquema. Los tres cables ya citados anteriormente
Y los correspondientes a la tira de neopixels: VIN, GND y los Datos que los hacemos pasar por D6.
Código del ejemplo
Este código se puede modificar en función del numero de leds utilizados, el nivel de brillo deseado, etc.
Solo hace falta copiarlo y subirlo a una placa.
Solo hace falta copiarlo y subirlo a una placa.
int inputPin = 2; // Sortida senyal sensor HW-MS03, entrada a Nano per pin digital 2
int hwState = LOW; // Estat inicial HW-MS03 sense moviment
int val = 0; // variable on col·locar estat HW-MS03
int permanencia=100; // Temps de permanència després d'haver detectat moviment
//para configurar neopixels
#include <Adafruit_NeoPixel.h>
#define NUMPIXELS 60 // Nombre de neopixels de la tira
#define PIN 6 // Pin de sortida senyal 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 declarat com entrada
pixels.begin();
Serial.begin(9600);
}
void loop(){
val = digitalRead(inputPin); // Llegeix valors procedents del sensor
if (val == HIGH) {
for (int i=0; i < NUMPIXELS; i++) {
setColor();
pixels.setPixelColor(i, pixels.Color(redColor, greenColor, blueColor));//fixa el color RGB de cada pixel de la tira
pixels.show();
} Serial.println("Detectat movimient!");
delay(permanencia);
if (hwState == LOW) {
hwState = HIGH;
}
} else {
for (int i=0; i < NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 0, 0));//apaga la tira
pixels.show();
}
if (hwState == HIGH){
Serial.println("Detectat repos!");
hwState = LOW;
}
}
}
//funció que assigna un color a cada neopíxel de la tira
//es pot modificar la brillantor de la tira modificant l'amplada del random
void setColor(){
redColor=random(0,100);
greenColor=random(0,100);
blueColor=random(0,100);
}
Captura del producto enAliExpress
Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0