Saltar la navegación

Código

Video de ejemplo

/*
 * HW-MS03 sensor tester
 * funciona perfectamente
 */
 
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,30);
    greenColor=random(0,30); 
    blueColor=random(0,10);
    }