Saltar la navegación

HW-MS03

Sensor de presencia

sensor

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
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.
esquema

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.
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
precio