Мой ультразвуковой датчик показывает диапазон только 4 см?

Я использую ультразвуковой датчик SR04 с Arduino Uno и пример программы, которую я взял из библиотеки. Однако мое выходное показание составляет всего 4 см, даже если перед ним нет объекта. Я даже использовал другой пример программы, который выдавал тот же результат. Проблема в датчике или библиотеке?

#define TRIGGER_PIN  12
#define ECHO_PIN     11
#define MAX_DISTANCE 200

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

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

void loop() {
  delay(50);
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm());
  Serial.println("cm");
}

, 👍0

Обсуждение

извините, это ультразвуковой датчик SR04, @Sultan Morbiwala

Да, я поменял контакты на 11 и 12. Это работает лучше, чем раньше, но все равно показывает показания на расстоянии около 4 см. Что-то доходит до 100см. Это не точно, это нормально или у меня неисправен датчик?, @Sultan Morbiwala


2 ответа


Лучший ответ:

0

Если вам нужна надежность, я рекомендую перейти на датчик HY-SRF05. Проблема SR04 в том, что когда перед датчиком ничего нет (или цель находится за пределом), датчик иногда «блокируется», и приходится его сбрасывать, чтобы он снова заработал корректно. SR04 на несколько центов дешевле остальных; для этого есть причина.

Кроме того, для этих датчиков доступно несколько библиотек. Я рекомендую библиотеку NewPing Тима Экеля, доступную здесь: https://bitbucket.org/teckel12/arduino- new-ping/wiki/Главная

Я никак не связан с Тимом, но у него хорошая библиотека.

,

1

Похоже, что вы питаете SR04 напряжением 3,3 В вместо 5 В.

,

Я подключил его к 5В, @Sultan Morbiwala