Sensor movimiento sr-505 y tiras led

Hola a todos , en primer lugar pedir perdón por lo errores que pueda cometer , soy nuevo en este mundo , tengo en mi poder sensores de movimiento , transistor mosfet , Arduino uno y tiras led 12v,
Mi idea es, quiero que cuando se active el sensor de movimiento se enciendan las tiras led de forma progresiva (de 0 a 255) y que estén encendidas mientras la persona este en presencia del sensor , y que después se apaguen progresivamente . Y no lo consigo . Alguna ayuda , gracias por todo un saludo.

Hola, enseñanos tu sketch por lo menos, si no lo vemos no podemos adivinar donde esta el fallo.

const int LEDPin = 13;        // pin para el LED
const int PIRPin = 2;         // pin de entrada (for PIR sensor)

int pirState = LOW;           // de inicio no hay movimiento
int val = 0;                  // estado del pin

void setup() 
{
  pinMode(LEDPin, OUTPUT); 
  pinMode(PIRPin, INPUT);
  Serial.begin(9600);
}

void loop()
{
  val = digitalRead(PIRPin);
  if (val == HIGH)   //si está activado
  { 
     digitalWrite(LEDPin, HIGH);  //LED ON
     if (pirState == LOW)  //si previamente estaba apagado
     {
       Serial.println("Sensor activado");
       pirState = HIGH;
     }
  } 
  else   //si esta desactivado
  {
     digitalWrite(LEDPin, LOW); // LED OFF
     if (pirState == HIGH)  //si previamente estaba encendido
     {
       Serial.println("Sensor parado");
       pirState = LOW;
     }
  }
}

Yo e encontrado este código para el sensor . Pero no sé modificarlo para que el encendido y apagado sean progresivos, muchas gracias de antemano.

Lee el privado que te he enviado y edita tu post según las intrucciones.

1er problema. Cuando un PIR se dispara por presencia de un objeto o persona, lo hace por unos cuantos segundos. Detrás tiene un control de tiempo que se ajusta con un destronillador. Puede estar hasta 30 segundos activos..

Entonces esa acción de que permaneza activo mientras este frente al sensor, queda descartada. De hecho si tu te quedas delante de un PIR este no se dispara porque funciona por variacion de temperatura.
Si no te mueves no hay variación de temperatura y no hay disparo.

Lo que se puede hacer es que detecte algo, veamos el cambio del sensor de supongamos LOW a HIGH o 0 -> 1 y iniciemos ahi el aumento del brillo de los leds pero luego viene el problema... como iniciamos el apagado o desvanecimiento.

No hay modo con un PIR común en detectar el momento en que la persona se aleje del campo de detección.

Existe un sensor PIR + RADAR que es mas caro pero si hace lo que tu quieres. Pero estamos hablando de algo mas caro, mucho mas.

Muchas gracias , lo primero que no encuentro los mensajes privados jeje, y después , se podría hacer , que el sensor detecté un encendido progresivo , un delay de un minuto o así y después un apagado progresivo y listo para volver a detectar movimiento ??. Gracias

muchas gracias por indicarme los errores creo que los he corregido bien a ver si consigo solución . Gracias por todo

Si gracias, lo has hecho correctamente.

se podría hacer , que el sensor detecté un encendido progresivo , un delay de un minuto o así y después un apagado progresivo y listo para volver a detectar movimiento

Claro que se puede.

El sensor detecta asi que esperas una transición 0-1 y haces el encendido.
El sensor termina al minuto y entonces hace un cambio 1-0 y comienzas el apagado.

surbyte:
Si gracias, lo has hecho correctamente.

Claro que se puede.

El sensor detecta asi que esperas una transición 0-1 y haces el encendido.
El sensor termina al minuto y entonces hace un cambio 1-0 y comienzas el apagado.

si no es molestia puedes poner un ejemplo del código o de la variación , gracias.

Hola, si te sirve de ayuda, yo hace unos meses encontré uno para leds ws2812b y lo modifiqué un poco para mi proyecto, muy parecido al tuyo.

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIXEL_COUNT 30
#define LEDPin 13
#define PIRPin 2


// Parámetro 1 = número de píxeles en tira, neopixel stick tiene 8
// Parámetro 2 = número pin (la mayoría son válidos)
// Parámetro 3 = banderas de tipo de píxeles, agregue cuando sea necesario:
// NEO_RGB Los píxeles están conectados para el flujo de bits RGB
// NEO_GRB Los píxeles están cableados para el flujo de bits GRB, correcto para el stick neopixel
// NEO_KHZ400 Flujo de bits de 400 KHz (por ejemplo, píxeles FLORA)
// NEO_KHZ800 Transmisión de bits de 800 kHz (por ejemplo, tira de LED de alta densidad), correcta para el stick neopixel
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(PIXEL_COUNT, LEDPin, NEO_GRB + NEO_KHZ800);


 
int pirState = LOW;           // de inicio no hay movimiento
int val = 0;                  // estado del pin
int delayval = 50; // delay entre leds
void setup() 
{
   pinMode(LEDPin, OUTPUT); 
   pinMode(PIRPin, INPUT);
   Serial.begin(9600);
}
 
void loop()
            
{
   val = digitalRead(PIRPin);
   if (val == LOW)   //si está desactivado
   { 
      for(int i=0;i<PIXEL_COUNT;i++){

    // pixels.Color valores RGB, desde 0,0,0 a 255,255,255
    pixels.setPixelColor(i, pixels.Color(0,0,0)); // apagado.

    pixels.show(); // Envía la ordena los leds.

    delay(delayval); // Retraso en milisegundos.
        
      }
   } 
   else   //si esta desactivado
   {
      for(int i=0;i<PIXEL_COUNT;i++){

    // pixels.Color valores RGB, desde 0,0,0 a 255,255,255
    pixels.setPixelColor(i, pixels.Color(125,125,125)); // blanco.

    pixels.show(); // Envía la orden a los leds.

    delay(delayval); // Retraso en milisegundos.
       }
   }
}

Muchas gracias por el aporte DJuan, a mi me ha servido para lo que estaba montando.