Bomba de agua automatica con sensor ultrasonico HC-SR04

me podrian ayudar con este codigo. es que al activar el sensor no esta encendiendo la bomba cuando esta en novel bajo o medio y cuando esta al nivel aceptable si baja elnivel ya enciende la bomba o de plano no apaga la bomba: [code]
#include<LiquidCrystal.h>
LiquidCrystal lcd (2,3,4,5,6,7);
const int relay=8;
int Trigger = A1;
int Echo = A0;
int Verde = 10;
int Ambar = 11;
int Rojo = 12;
void setup ()
{
lcd.begin(16,2);
pinMode(relay,OUTPUT);
pinMode(Verde,OUTPUT);
pinMode(Ambar,OUTPUT);
pinMode(Rojo,OUTPUT);
digitalWrite(Trigger,HIGH);
pinMode(Trigger,OUTPUT);
pinMode(Echo,INPUT);
digitalWrite(Trigger,LOW);
}
void loop()
{
lcd.setCursor(0,0);
lcd.print(" Nivel de tanque");
lcd.print("Contraste");
long t;
long distancia;
digitalWrite(Trigger,HIGH);
delayMicroseconds(10);
digitalWrite(Trigger, LOW);
t = pulseIn(Echo, HIGH);
distancia = t/58;
lcd.setCursor(11,1);
lcd.print(distancia);
lcd.print("cm ");
delay(500);
//Validacion con distancia fuera de rango
lcd.setCursor(0,1);
if (distancia <=4){
digitalWrite(Verde,HIGH);
digitalWrite(Ambar,LOW);
digitalWrite(Rojo,LOW);
lcd.print(" Aceptable ");
digitalWrite(relay,HIGH);

  }
else if (distancia >= 5 && distancia <=7){
  digitalWrite(Verde, LOW);
  digitalWrite(Ambar,HIGH);
  digitalWrite(Rojo,LOW);
  lcd.print("   Nivel Medio  ");
  digitalWrite(relay,LOW);
  }
 else{
  digitalWrite(Verde, LOW);
  digitalWrite(Ambar,LOW);
  digitalWrite(Rojo,HIGH);
  lcd.print("   Nivel BAJO  ");
  digitalWrite(relay,LOW);
  }
   delay(500);
}

[/code]

Tu tema ha sido movido a la sección en español del foro. Utiliza el inglés en las secciones en inglés del foro.

A pesar de que no concuerdo con el código, en principio está aceptable y simulado en wokwi trabaja como se espera.

En lo personal, encendería la bomba si el nivel baja del mínimo y la apagaría cuando llega al nivel máximo.
Por otro lado, no verificaría ambos niveles continuamente. Solo verificaría el nivel máximo cuando la bomba esté encendida (para apagarla si es el caso) y el mínimo cuando está apagada (y encenderla si corresponde).

el detalle es que en fisico parece los if ignora y no se que mas le puedo mover al codigo, entre un punto enel que me estanque y no se si puedas ayudarme con el codigo

Como te dije el problema no estaría en código.

Adjunta un esquema con las conexiones incluyendo alimentaciones (puedes hacerlo a mano y sacar una foto).

Moderador:
Por favor, lee las Normas del foro y publica/edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado/editado, lo cortas y click en (<CODE/>)