HC-SR 04, Fotocelula, LM35 y Sensor Inclinacion.

Buenas, en primer lugar quiero agradecer a Surbyte, por ayudarme mucho en mi proyecto y pude sacarlo y lo que es mejor entenderlo y ahora quiero que me ayudeis en el segundo paso. He añadido un sensor de ultrasonidos HC-SR04. Lo que quiero hacer es que por una parte funcione el sensor de inclinacion con el led sin que influyan los demas sensores, y por otro lado quiero que por el monitor serial mande cada segundo la distancia recibida por el HC-SR04 y cada 5 segundos la temperatura e iluminacion de los sensores. Os mando mi codigo y una imagen del circuito y espero que me podais ayudar.

He llegado a conseguir que todo esto mas o menos funcione, lo que falla es que no he conseguido que se manden las señales al segundo y las otras a los 5.

este es mi codigo:

#define pecho 9
#define ptrig 10
 
long duracion, distancia;       // variables para el HC-SR04

int luminosidad = 0;            // porcentaje de luminosidad recibida en la ldr.
int pinldr = A0;                // Pin de la entrada de la ldr
int valorldr = 0;               // valor de 0 a 1023 de la ldr.

int sensortemp = A1;            // Pin del sensor del LM35.
float temp;                     // Variable tipo float del sensor.

const int sensorinclinacion = 8;   // entrada del sensor de inclinacion.
int estadoinclinacion = 0;         // estado del sensor de inclinacion.
const int led = 7;                 // pin del led que avisa la inclinacion.

long previousMillis = 0;           // previous millis es 0
long interval = 3000;              // 6 segundos para mandar temperatura y luminosidad

void setup() {
  Serial.begin(9600);                    //inicio de la comunicacion serial.
  
  pinMode (sensorinclinacion, INPUT);    // declaro entrada al sensor de inclinacion.
  pinMode (led, OUTPUT);                 // declaro salida al led avisador.
  
  pinMode(pecho, INPUT);
  pinMode(ptrig, OUTPUT);
}

void loop() {
  estadoinclinacion = digitalRead(sensorinclinacion);     // mando leer el pin del sensor de inclinacion y lo almaceno en la variable.
  
  valorldr = analogRead(pinldr);                          // calculo del valor de la ldr y la luminosidad.
  luminosidad = valorldr / 10,23;
  
  temp = analogRead(sensortemp);                          // calculo de la temperatura.
  temp = temp * 0.48828125;
  
  if(estadoinclinacion == LOW) {                          // si el sensor de inclinacion esta apagado o inclinado el led se enciende
    digitalWrite(led, HIGH); }
        
  if(estadoinclinacion == HIGH) {                         // si el sensor de inclinacion manda señal el led esta apagado
    digitalWrite(led, LOW); }
  
  digitalWrite(ptrig, LOW);
    delayMicroseconds(2); 
    digitalWrite(ptrig, HIGH);
    delayMicroseconds(10);
   
    duracion = pulseIn(pecho, HIGH);
    distancia = (duracion/2) / 29;
        
unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis > interval) {
    previousMillis = currentMillis;      
    
    Serial.print(luminosidad);                            
    Serial.println (" Por Ciento de Luz");   
  
    Serial.print("temperatura: ");                        
    Serial.print(temp);
    Serial.print(" Grados");
    Serial.println(); 
    
    if (distancia >= 500 || distancia <= 0){  // si la distancia es mayor a 500cm o menor a 0cm 
    Serial.println("---");                    // no mide nada
    }
    else {
    Serial.print(distancia);                  // envia el valor de la distancia por el puerto serial
    Serial.println("cm");                     // le coloca a la distancia los centimetros "cm"
    } 
    Serial.println("");
    
  } 
}

Y porque abriste un nuevo hilo si esta totalmente realcionado con el anterior. Lee las normas del foro please!!
Verás que no debes hacerlo hasta agotar este tema.
Lo que pides es una variante del anterios.

Para que sirve esto?

unsigned long currentMillis = millis();

si una instrucción dspues usas 
if(currentMillis - previousMillis > interval) {

no es mas fácil

if(millis() - previousMillis > interval) {

A ver. Lo vas a hacer tu, no yo u otro del foro.
A ver si puedes visualizar como mover las fichas para que funcione.

unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis > interval) {
    previousMillis = currentMillis;      
    
    Serial.print(luminosidad);                            
    Serial.println (" Por Ciento de Luz");   
  
    Serial.print("temperatura: ");                        
    Serial.print(temp);
    Serial.print(" Grados");
    Serial.println(); 
    
    if (distancia >= 500 || distancia <= 0){  // si la distancia es mayor a 500cm o menor a 0cm 
        Serial.println("---");                    // no mide nada
    }
    else {
         Serial.print(distancia);                  // envia el valor de la distancia por el puerto serial
          Serial.println("cm");                     // le coloca a la distancia los centimetros "cm"
    } 
    Serial.println("");
    
  }

Esto ahora imprime datos cada 3 segundos no es cierto?

quieres ver la distancia cada segundos
Define un intervalo de 1000 mseg
y mostremos distancia

fuera de ese if de 3 segundos tendras

 if(millis() - previous1seg > 1000UL) {
    previous1seg = millis();      // definir previus1seg en Variables globales
    
    if (distancia < 500 ){                      // si la distancia es menor a 500cm
         Serial.print(distancia);                  // envia el valor de la distancia por el puerto serial
          Serial.println("cm");                     // le coloca a la distancia los centimetros "cm"
    } // Distancia siempre es positiva asi que no existen valores negativos.

y la temperatua e iluminación en lugar de 3 le pones 5 seg o sea 5000 mseg

if(millis()- previousMillis > 5000UL) {  // UL es para decirle que es un numero unsigned long
    previousMillis = millis();      
    
    Serial.print(luminosidad);                            
    Serial.println (" Por Ciento de Luz");   
  
    Serial.print("temperatura: ");                        
    Serial.print(temp);
    Serial.print(" Grados");
    Serial.println(); 
}