Колебания данных с датчиком AJ-SR04M

ultrasonics

Я работаю над датчиком уровня воды, используя lolin nodemcu v3 и датчик AJ-SR04M, водонепроницаемый ультразвуковой датчик. Он отлично работает на близком расстоянии менее одного метра или около того. Однако для больших расстояний > 1 метр, я получаю разные результаты.

Используя следующий код:

void setup() {
  
  Serial.begin (115200);
  pinMode(TRIGGER, OUTPUT);
  pinMode(ECHO, INPUT);
  pinMode(BUILTIN_LED, OUTPUT);
}

void loop() {
  
  long duration, distance;
  digitalWrite(TRIGGER, LOW);  
  delayMicroseconds(2); 
  
  digitalWrite(TRIGGER, HIGH);
  delayMicroseconds(10); 
  
  digitalWrite(TRIGGER, LOW);
  duration = pulseIn(ECHO, HIGH);
  distance= duration*0.034/2;
  
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");
  delay(1000);
}

Вот что у меня получается в мониторе на том же расстоянии 2-3 метра:

Distance: 141 cm
Distance: 135 cm
Distance: 225 cm
Distance: 195 cm
Distance: 226 cm
Distance: 226 cm
Distance: 129 cm
Distance: 135 cm
Distance: 134 cm
Distance: 146 cm
Distance: 136 cm
Distance: 129 cm
Distance: 154 cm
Distance: 123 cm
Distance: 147 cm
Distance: 226 cm
Distance: 181 cm
Distance: 137 cm
Distance: 134 cm
Distance: 136 cm
Distance: 137 cm
Distance: 145 cm
Distance: 227 cm
Distance: 179 cm
Distance: 226 cm
Distance: 226 cm
Distance: 101 cm
Distance: 134 cm
Distance: 270 cm
Distance: 294 cm
Distance: 266 cm
Distance: 281 cm
Distance: 146 cm
Distance: 279 cm
Distance: 128 cm
Distance: 579 cm
Distance: 138 cm

Итак, есть ли способ сделать это правильно, или это означает, что мой датчик неисправен?

, 👍1

Обсуждение

попробуй соединить сопротивление 4K7 на выводе триггера с землей, @catalin

Выдающийся! Резистор 4к7 работает!, @spiralbrain

Этот датчик работает не на 3,3В, а на 5В. Подключите красный провод к Vin (=питание USB = 5В), @Harm van Vugt