[SOLUCIONADO] Problema celda de carga y condicionales

Hola, buenos días.
Este es mi primer post y soy nuevo en el foro por lo que me disculpo de antemano si hay alguna cosa mal explicada.Hace poco empecé a trabajar con una celda de carga, el transmisor hx711 y arduino. Comencé con un proyecto para activar un led cuando el peso disminuía y que al pasar 1 segundo se apagara y no se volviera a encender hasta que volviese a disminuir el peso. La báscula está calibrada y detecta perfectamente cualquier cambio de peso.
Para realizar el proyecto utilicé el código que he adjuntado. El problema es que al pasar el tiempo que declaro como intervalo, 10 segundos en este caso,lo puse haciendo pruebas para ver el error, el led se apaga y da igual si cambia el peso o no siempre esta encendido el tiempo que dura el intervalo y luego se apaga.
Muchas gracias por su atención, si tienen alguna idea o saben cual puede ser el problema me gustaría que me ayudasen.
Un saludo.

#include "HX711.h"
#define CLK  A0 
# define DOUT  A1
HX711 scale(DOUT, CLK);
float calibration_factor = -990000.00;// factor variable según la báscula 
 int Peso = scale.get_units();
 int Peso_anterior ;
unsigned long tiempo = 0;
  unsigned long intervalo = 10000;//10 segundos
 void setup() {
 Serial.begin(9600); 
 scale.set_scale(-990000.00);  //COnversor obtenido de la calibración
  scale.tare();        // Tara
  digitalWrite(13,OUTPUT);// activa el led
  }
  void loop() {
    
  Serial.print("Peso: ");
  Serial.print(scale.get_units(), 3);  //número de decimales, en este caso 3 
  Serial.println(" kg"); //unidad de peso con la que se trabaja: kg , g...
 Peso = scale.get_units();


  }
    if(Peso < Peso_anterior){  // si el disminuye se enciende el led, tras esto igualo el peso al peso anterior 
      digitalWrite(13,HIGH);
      Peso_anterior = Peso; 
      tiempo = millis();}
     else if (Peso > Peso_anterior){
      Peso_anterior = Peso;
      
      }
   
   else if (intervalo <  millis() - tiempo){
    digitalWrite(13,LOW);
      }
 
    
     }

codigo_alternativo.ino (1.12 KB)

Bueno aca tienes una versión que espero funcione

#include "HX711.h"
#define CLK   A0 
#define DOUT  A1
#define LED   13
HX711 scale(DOUT, CLK);

float calibration_factor = -990000.00;// factor variable según la báscula 
int Peso = scale.get_units();
int Peso_anterior ;
unsigned long tiempo = 0;
unsigned long intervalo = 10000;//10 segundos

void setup() {
    Serial.begin(9600); 
    scale.set_scale(-990000.00);  //COnversor obtenido de la calibración
    scale.tare();        // Tara
    digitalWrite(13,OUTPUT);// activa el led
}

void loop() {
    
  Serial.print("Peso: ");
  Serial.print(scale.get_units(), 3);  //número de decimales, en este caso 3 
  Serial.println(" kg"); //unidad de peso con la que se trabaja: kg , g...
  Peso = scale.get_units();

  if (Peso < Peso_anterior) {  // si el disminuye se enciende el led, tras esto igualo el peso al peso anterior 
      digitalWrite(LED, HIGH);
      tiempo = millis();
  }
  Peso_anterior = Peso; 
  if (millis() - tiempo > intervalo){
      digitalWrite(LED, LOW);
  }
}

CONSEJOS:
Cuando postees códigos, éstos deben verse para facilitar las respuestas.
Otra cosa es que debes usar etiquetas y la ultima que no pongas códigos caóticos sino que puedes usar AUTOFORMATO para luzcan ordenados.
No hay razón para que quien te ayude ademas deba ordenarlo.

Muchas gracias. El código que pusiste funciona perfectamente, no hubiera caído en que había que sacar la igualación de Peso = Peso_ anterior fuera del condicional. Mil disculpas por el desorden del código, ya sabiendo de la existencia del Auto Formato no volverá a ocurrir. Ansioso por seguir aprendiendo. Un saludo y mil gracias. PD: Para poner que el post está solucionado tengo que editar el mensaje ?

No editaste lo que te pedí por privado.