// Функция прямого опроса ультразвукового датчика возврат в микросекундах эха
float us(int trg, int ech, float temp, long cnt) {
long count=0;
long microssum=0;
while (count < cnt) {
count++;
pinMode(trg, OUTPUT );
pinMode(ech, INPUT);
digitalWrite(trg,1);
delayMicroseconds(10);
digitalWrite(trg,0);
long n=0;
long limit=100000;
long startmic,endmicros;
while (n<limit){
n++;
if(digitalRead(ech) == 1)
{
startmic=micros();
long z=0;
while (digitalRead(ech) == 1 and z<20000) {
z++;
ArduinoOTA.handle();
endmicros=micros();
}
n=limit;
// delay(200);
}
}
microssum=microssum+(endmicros-startmic);
}
vSound=20.046796*sqrt(273.15+currentTemperature);
if (((vSound/10000)*(((microssum)/count)/2)) > 0 && ((vSound/10000)*(((microssum)/count)/2)) < 23) {
return ((vSound/10000)*(((microssum)/count)/2));}
ArduinoOTA.handle();