Некорректная работа ультразвукового датчика HC-SR04

PAFIY
Offline
Зарегистрирован: 12.12.2018

Собираю конструктор-робота SunFounder Sloth Robot. Подключаю датчик по инструкции (ссылка на картинку прилагается). Всё время в мониторе порта выдаёт расстояние до объекта 0cm. Буду благодарен за помощь! 

Ссылка на изображение: https://imgur.com/a/c9keYY9

b707
Offline
Зарегистрирован: 26.05.2017

код выкладывайте, как вы работаете с датчиком

PAFIY
Offline
Зарегистрирован: 12.12.2018

Скачал с сайта разработчика готовый скетч. Также здесь используется библиотека NewPing: 

#include <Servo.h>
#include <NewPing.h>

Servo myservo1;
Servo myservo2;
Servo myservo3;
Servo myservo4;
int i = 0;

#define TRIGGER_PIN  4  // Arduino pin 4 tied to trigger pin on the ultrasonic sensor.
#define ECHO_PIN     3  // Arduino pin 3 tied to echo pin on the ultrasonic sensor.
#define MAX_DISTANCE 200 // Maximum distance we want to ping for (in centimeters). Maximum sensor distance is rated at 400-500cm.

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // NewPing setup of pins and maximum distance.

//#define SERVO
#define ULTRASONIC

void setup()
{
  myservo1.attach(9);    // Connect the signal wire of servo to pin 9 
  myservo2.attach(10);    // Connect the signal wire of servo to pin 10 
  myservo3.attach(11);    // Connect the signal wire of servo to pin 11 
  myservo4.attach(12);    // Connect the signal wire of servo to pin 12 
  Serial.begin(115200);  // Open serial monitor at 115200 baud to see ping results.
}

void loop()
{
#ifdef ULTRASONIC
  delay(50);                      // Wait 50ms between pings (about 20 pings/sec). 29ms should be the shortest delay between pings.
  unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).
  Serial.print("Ping: ");
  Serial.print(uS / US_ROUNDTRIP_CM); // Convert ping time to distance in cm and print result (0 = outside set distance range)
  Serial.println("cm");
#endif

#ifdef SERVO
  for ( i = 0; i < 180; i++ )
  {
    myservo1.write(i);
    myservo2.write(i);
    myservo3.write(i);
    myservo4.write(i);
    delay(20);
  }
  
  for ( i = 180; i > 0; i-- )
  {
    myservo1.write(i);
    myservo2.write(i);
    myservo3.write(i);
    myservo4.write(i);
    delay(20);
  }
#endif
}

 

SLKH
Offline
Зарегистрирован: 17.08.2015

для начала выкинь всю порнографию и проверь работу датчика первым скетчем отсюда: http://wiki.amperka.ru/продукты:hc-sr04-ultrasonic-sensor-distance-module

PAFIY
Offline
Зарегистрирован: 12.12.2018

Хорошо, спасибо. Если проблема не решится, то отпишу снова!)

PAFIY
Offline
Зарегистрирован: 12.12.2018

Датчик работает, но показывает расстояние только при отключенном состоянии (всегда 140-150cm). Нумерацию пинов Trig и Echo выставил в соответствии с цоколёвкой платы, на которой стоит сама плата Arduino Nano.

Скетч, по которому делал:

#include <NewPing.h>
 
#define TRIGGER_PIN  4
#define ECHO_PIN     3
#define MAX_DISTANCE 400
 
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
 
void setup() {
  Serial.begin(9600);
}
 
void loop() {
  delay(50);
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm());
  Serial.println("cm");
}

 

SLKH
Offline
Зарегистрирован: 17.08.2015

PAFIY пишет:

Датчик работает, но показывает расстояние только при отключенном состоянии (всегда 140-150cm).

Так работает или нет ? Переведи. 

 

Цитата:
Нумерацию пинов Trig и Echo выставил в соответствии с цоколёвкой платы, на которой стоит сама плата Arduino Nano.
какой ещё платы? На NANO выводы промаркированы. У тебя D3 и D4, или что-то ещё?

Цитата:
Скетч, по которому делал:

#include <NewPing.h>
 
#define TRIGGER_PIN  4
#define ECHO_PIN     3
#define MAX_DISTANCE 400
 
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
 
void setup() {
  Serial.begin(9600);
}
 
void loop() {
  delay(50);
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm());
  Serial.println("cm");
}

 

выкинь всю порнографию и проверь работу датчика первым скетчем отсюда: http://wiki.amperka.ru/продукты:hc-sr04-ultrasonic-sensor-distance-module

PAFIY
Offline
Зарегистрирован: 12.12.2018

При подключении к пинам датчик все время показывает 0cm, а если отключен от них, то показывает 140-150cm.

Плата Arduino Nano стоит на плате, как на картинке (ссылка ниже). Такие проблемы могут возникнуть из-за того, что цоколёвка жёлтой платы и цоколёвка Ардуино не совпадают?

https://imgur.com/a/l3jxmQw

PAFIY
Offline
Зарегистрирован: 12.12.2018

При подключении к пинам датчик все время показывает 0cm, а если отключен от них, то показывает 140-150cm.

Плата Arduino Nano стоит на плате, как на картинке (ссылка ниже). Такие проблемы могут возникнуть из-за того, что цоколёвка жёлтой платы и цоколёвка Ардуино не совпадают?

https://imgur.com/a/l3jxmQw

SLKH
Offline
Зарегистрирован: 17.08.2015

PAFIY пишет:

При подключении к пинам датчик все время показывает 0cm, а если отключен от них, то показывает 140-150cm.

Плата Arduino Nano стоит на плате, как на картинке (ссылка ниже). Такие проблемы могут возникнуть из-за того, что цоколёвка жёлтой платы и цоколёвка Ардуино не совпадают?

https://imgur.com/a/l3jxmQw

Ну а сам ты как думаешь?

подключи датчик к пинам D4 и D3 платы нано - для начала напрямую.

потом можно буде с  твоей желтой платой разбираться.

 

PAFIY
Offline
Зарегистрирован: 12.12.2018

Датчик исправен. Значит, что-то с той самой желтой платой. Может быть такое, что цоколёвка гнёзд под контакты Нано не совпадает с цоколёвкой самой Нано?

SLKH
Offline
Зарегистрирован: 17.08.2015

PAFIY пишет:

Датчик исправен. Значит, что-то с той самой желтой платой. Может быть такое, что цоколёвка гнёзд под контакты Нано не совпадает с цоколёвкой самой Нано?

у тя тестер есть? 

PAFIY
Offline
Зарегистрирован: 12.12.2018

SLKH пишет:

PAFIY пишет:

Датчик исправен. Значит, что-то с той самой желтой платой. Может быть такое, что цоколёвка гнёзд под контакты Нано не совпадает с цоколёвкой самой Нано?

у тя тестер есть? 


К сожалению, нет(

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

PAFIY пишет:
SLKH пишет:

PAFIY пишет:

Датчик исправен. Значит, что-то с той самой желтой платой. Может быть такое, что цоколёвка гнёзд под контакты Нано не совпадает с цоколёвкой самой Нано?

у тя тестер есть? 


К сожалению, нет(

А глаза есть?

PAFIY
Offline
Зарегистрирован: 12.12.2018

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

sadman41
Offline
Зарегистрирован: 19.10.2016

Для решения проблемы Вам нужен мультиметр, а не саркастический ответ.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

sadman41 пишет:

Для решения проблемы Вам нужен мультиметр, а не саркастический ответ.


Я например очень часто умею глазами проследить
куда идёт дорожка на плате....

PAFIY
Offline
Зарегистрирован: 12.12.2018

Я попробую посмотреть на той плате дорожки