Anfänger Projekt - Dimmen von LEDs mit Arduino

Soso,

ich habe heute die beiden IR-Sensoren intergriert.
Ich habe diese hier verwendet: Gravity: 80cm Arduino Infrared Proximity Sensor - DFRobot

Ich war noch meinen Code schuldig:

#include "Tlc5940.h"

const int v_fade_in = 40; // Geschwindigkeit Fade-In
const int v_fade_out = 20; // Geschwindigkeit Fade-Out
const int einschaltdauer = 10; //Einschaltdauer in Sekunden
const int sensor_oben = 4; // DigitalPin des oberen Sensors
const int sensor_unten = 5; //DigitalPin des unteren Sensors

const int t_einschaltdauer = einschaltdauer * 1000; // Umrechnung in Millsekunden

void setup()
{
  Tlc.init();

  pinMode(sensor_unten,INPUT);
  pinMode(sensor_oben,INPUT);
  
}

void loop()
{
Tlc.clear(); // Setzt den TLC zurück

if(digitalRead(sensor_oben) == LOW)  fade_in_oben(); 
if(digitalRead(sensor_unten) == LOW)  fade_in_unten(); 
  
}

// Wenn Sensor OG betätigt wird, LED von oben nach unten einschalten
void fade_in_oben(){
      for(int led=0;led<11;led++){
          for (int p=0; p<4095; p+=v_fade_in) {
            Tlc.set(led, p);
            Tlc.update();
            delay(5);
          }
        }
        // Eingeschaltet lassen
        delay(t_einschaltdauer);
        // Ausschalten
        fade_out_oben();
        
}

// Wenn Licht von oben eingeschaltet wurde in umgekehrter Reihenfolge ausschalten
void fade_out_oben(){
      for(int led=10;led>=0;led--){
          for (int r=4095; r>=0; r-=v_fade_out) { 
              if(r<v_fade_out){r=0;} // Nachglimmen der LED verhinden (Wert 0 wird nicht erreicht)
              Tlc.set(led, r);
              Tlc.update();
              delay(5);
          }
      }
}

// Wenn Sensor EG betätigt wird, LED von unten nach oben einschalten
void fade_in_unten(){
      for(int led=10;led>=0;led--){
          for (int p=0; p<4095; p+=v_fade_in) {
            Tlc.set(led, p);
            Tlc.update();
            delay(5);
          }
      }
      // Eingeschaltet lassen
        delay(t_einschaltdauer);
        // Ausschalten
        fade_out_unten();
}

// Wenn Licht von unten eingeschaltet wurde in umgekehrter Reihenfolge ausschalten
void fade_out_unten(){
      for(int led=0;led<11;led++){
          for (int r=4095; r>=0; r-=v_fade_out) {    {
            if(r<v_fade_out){r=0;} // Nachglimmen der LED verhinden (Wert 0 wird nicht erreicht)
            Tlc.set(led, r);
            Tlc.update();
            delay(5);
          }
      }
}

Was mir noch eingefallen ist: Unten hat die Treppe 3 Stufen ohne seitliche Wand oder ein Geländer - Den Sensor dort irgendwo in Position zu bringen erscheint mir noch unmöglich.

Eine Lichtschranke fällt ohne seitliche Begrenzungen auch flach. Ich hatte noch an einen Trittsensor gedacht - Die Treppe soll gefliest werden. Gibt es vielleicht noch andere Ideen?