Месяцок назад приобрел все необхдоимо для теста JSN-SR04T. Все работало корректно. 1.5 метра показывало. Даже 2 метра показывало.
Сегодня открыл IDE, какие то обновления были - обновлися. Не придал значения.
Запустил программу, а она не показыает значения дальше 55см.
Код программы
#include <NewPing.h>
#define TRIGGER_PIN 11
#define ECHO_PIN 12
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
pinMode(12, INPUT);
pinMode(11, OUTPUT);
Serial.begin(115200);
}
void loop() {
delay(1000);
int cm = sonar.ping_cm();
Serial.print("Ping: ");
Serial.print(cm);
Serial.println("cm");
}
Выдает рандом на растоянии больше 60см
Ping: 58cm
Ping: 65cm
Ping: 65cm
Ping: 66cm
Ping: 62cm
Ping: 68cm
Ping: 65cm
Ping: 59cm
Ping: 67cm
Ping: 64cm
В диапазоне от 20 до 55 см значение выдается стабильное - не прыгающее.
Что произошло? Железо поломалось? Что то с программой не то или могли библиотеки обновиться так что такой эффект получился?
Буду благодарен любым мыслям. Спасибо.
UPD
Вру, месяц назад растояние мерял вот такой функцией
long request_dist(int echo, int trigger) {
digitalWrite(trigger, LOW);
delayMicroseconds(2);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
long duration = pulseIn(echo, HIGH);
long distance_cm = duration /58;
return distance_cm;
}