duda con codigo de arduino para sensor de distancia SR04T

Estimados tengo el sensor SR04T y busque el codigo en internet para hacerlo funcionar, pero no entiendo muy bien el delay que contiene el codigo, busque en internet y sale mas informacion del sensor HC-SR04 y no puedo utilizar valores de otro sensor, adjunto codigo.

int  TRIG = 13, ECHO = 12;
long Duracion, Distancia;
  
void setup() {
  Serial.begin (9600);
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
  pinMode(LED_BUILTIN, OUTPUT);}

void loop() {
  Serial.print("Sensor SR04T: ");
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2); // <--- ESTE NO LO ENTIENDO, es el minimo que se puede colocar o puede ser mas?
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10); //<--- este es el disparo del pulso que genera el sensor, el valor puede ser menor? cual es el valor minimo que se puede colocar a los sensores para realizar el pulso?
  digitalWrite(TRIG, LOW);
  Duracion = pulseIn(ECHO, HIGH);
  Distancia = (Duracion / 2) / 29.1;
  if (Distancia >= 250 || Distancia < 25)  {
    Serial.println("Fuera de Rango");
    digitalWrite(LED_BUILTIN, HIGH);
    }
  else {
    Serial.print(Distancia);
    Serial.println(" cm");
    digitalWrite(LED_BUILTIN, LOW);}
  delay(500);  }

Usá la librería NewPing
En arduino antes de hacer algo debes buscar si existe librería que te resuelva la mayor parte del trabajo.
Acabo de recomendar esto a alguien que preguntó algo similar en el foro Proyectos.

te voy a intentar explicar las dudas, como yo entendi las cosas:

diegoDelgado:

int  TRIG = 13, ECHO = 12;

long Duracion, Distancia;
 
void setup() {
  Serial.begin (9600);
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
  pinMode(LED_BUILTIN, OUTPUT);}

void loop() {
  Serial.print("Sensor SR04T: ");
  digitalWrite(TRIG, LOW);
  delayMicroseconds(2); // <--- ESTE NO LO ENTIENDO, es el minimo que se puede colocar o puede ser mas?

/eso creo recordar que se pone hay porque si por cualquier razon el estado era high antes, eso estaba enviando ultrasonidos, asi que lo pones en low y le das dos micro segundos de tiempo a los ultrasonidos para que desaparezcan y al rebotar no causen interferencias en la lectura siguiente/

digitalWrite(TRIG, HIGH);
  delayMicroseconds(10); //<--- este es el disparo del pulso que genera el sensor, el valor puede ser menor? cual es el valor minimo que se puede colocar a los sensores para realizar el pulso?
/*
este valor no es asi por ninguna razon en concreto creo que es solo porque no es ni muy poco para que se pierda por accidente, ni mas de lo necesario, pero eso lo puedes probar tu camiandolo, aunque si lo subes mucho me parece haras imposible la lectura de cerca, poruqe estaras enviando los ultrasonido tanto tiempo que los estaras recibiendo antes de poder leerlos,y las lecturas seran malas*/

espero haber sido de ayuda, y haberte solucionado la duda :stuck_out_tongue:

gracias por las respuestas, tengo otra duda, con respecto a un codigo, descarge la libreria que indica surbyte y utilice el codigo de NewPingExample y lo modifique para que pueda captar distancias con dos sensores SR04T, pero cuando veo las distancias que arroja algunas de estas estan mal, asi que mi pregunta es ¿Cual es la mejor manera de tomar las distancias de un objeto al momento de pasar frente al sensor? dejar los sensores que esten siempre en distancia "0" y asi captar cuando algun objeto pase por delante del sensor o dejar a los sensores que muestren las distancias(con este metodo da lecturas de distancias falsas algunas veces)

#include <NewPing.h>

#define TRIGGER_PIN  12 
#define ECHO_PIN     11  
#define MAX_DISTANCE 200
#define PIN_TRIGGER  9
#define PIN_ECHO     8

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
NewPing sonar2(PIN_TRIGGER, PIN_ECHO, MAX_DISTANCE);

void setup() {
  Serial.begin(115200);
}

void loop() {
  
  delay(100);

  int distanciaIzq = sonar.ping_cm();
  int distanciaDer = sonar2.ping_cm();
  
  if(distanciaIzq < 20){
    Serial.print("fuera de rango");
  }else{
    Serial.print("izquierda: ");
    Serial.print(distanciaIzq);
    Serial.print("cm");
  }
  Serial.print("    |     ");
  if(distanciaDer < 20){
    Serial.println("fuera de rango");

  }else{
  Serial.print("derecha: ");
  Serial.print(distanciaDer);
  Serial.print("cm");

  }

NewPing es la unica libreria que existe para los sensores SR04T?

NewPing es la mejor librería asi que no la pongas en duda.
El objeto debe estar frente al sensor, si pasas rápido no pidas milagros.
Coloca un objeto y prueba las lecturas y luego me dirás.

ya eh realizado las pruebas con objetos quietos y las lecturas son buenas pero cuando un objeto pasa por delante toma lecturas falsa algunas veces, los sensores estan apuntando a la misma direccion y separados por 10 cm aprox.

Los sensores deberian tener 1cm a 5cm aprox de diferencia cuando un objeto pasa delante de ellos pero cuando veo las distancias que arrojan tiene una diferencia de 30cm o mas, tomando la distancia de un objeto quieto ningun problema pero es cosa de que pase algo lo suficientemente rapido para que tome lecturas erroneas, es por esto que me pregunto que era mejor dejar los sensores con distancia "0" o que este tomando siempre las distancias.

gracias por responder

Hola diego.
Yo uso la librería Ultrasonic
Es de lo mejor que he probado para estos módulos. Esta la mas exacta. Leete la wiki del autor si quieres modificar las distancias a todo ello. Por defecto viene a máximo de 51 cm.