Código
/*
* 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);
}
Obra publicada con Licencia Creative Commons Reconocimiento Compartir igual 4.0