HC-SR04 лаги
- Войдите на сайт для отправки комментариев
Когда провожу рукой перед датчиком бывает что значения падают, но после того как руки уже нет перед датчиком значения не возвращаются на стандартную позицию. И чтобы они вернулиь необходимо потрести перед ним рукой какое-то время.
Вот как тут:
157 50 95 157 157 48 97 48 96 50
95 158 48 48 99 47 48 156 157 48
98 158 106 157 157 157 157 157 157 157
157 157 157 157 157 157 157 157 157 71
72 74 71 75 71 75 71 73 72 73 //тут он увидел руку
71 74 71 74 71 73 72 73 73 74
71 74 72 74 72 73 73 74 72 73
72 75 73 74 74 72 74 72 75 72
73 73 73 73 73 72 73 72 73 73
71 74 72 73 72 73 73 73 74 72
72 74 73 73 73 72 74 72 74 72
73 72 74 72 75 71 75 71 74 72
73 73 73 73 74 72 73 72 73 73// а где-то тут ее уже нету перед ним
72 73 72 73 72 73 73 73 73 74
70 77 69 78 68 78 68 79 67 78
66 77 69 76 70 75 71 75 71 75
70 76 70 76 70 76 70 76 70 76
69 78 68 77 69 77 69 77 69 76
68 77 69 76 70 76 70 76 70 76
68 77 69 75 70 75 70 75 71 75
70 74 72 74 73 73 73 73 73 73
72 74 72 75 71 74 72 75 72 75
69 75 70 74 72 73 73 72 76 70
75 71 75 71 76 71 76 70 76 70
В чем проблема, как это можно исправить?
Программа многократно изменялась, но проблема эта оставалась, сейчас алгоритм получения этих значений вот такой:
digitalWrite(trig, 0);
delayMicroseconds(2);
digitalWrite(trig, 1);
delayMicroseconds(10);
digitalWrite(trig, 0);
double rast = pulseIn(echo, HIGH) / 58;
return round(rast);
latunev, а какой таймаут у Вашего pulseIn?
?
???
Я за вас почитаю....
http://arduino.ru/Reference/PulseIn
pulseIn(pin, value, timeout)
timeout (опционально): время ожидания сигнала (таймаут) в микросекундах; по умолчанию - одна секунда. (unsigned long)