Hc-sr04 видит препятствие

Bounce
Offline
Зарегистрирован: 10.06.2020

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

Bounce
Offline
Зарегистрирован: 10.06.2020

Код

#include //Adafruit Motor Driver Shield library
#define Trig A1
#define Echo A0

AF_DCMotor motor1(1); //motor1 connected to M1
AF_DCMotor motor2(2); //motor 2 connected to M2

long duration; //duration of ultrasonic pulse
int distanceCm; //distance in cm

void setup()
{

pinMode(Trig, OUTPUT); //Analog pin A1 connected to TRIG
pinMode(Echo, INPUT); //Analog pin A0 connected to ECHO

motor1.setSpeed(255); //motor speed set to max. range:0-255
motor2.setSpeed(255);

motor1.run(RELEASE); //stop both motors
motor2.run(RELEASE);

}

void loop()
{

digitalWrite(Trig, LOW);
delayMicroseconds(2);
digitalWrite(Trig, HIGH); //give a pulse of 10us on TRIG
delayMicroseconds(10);
digitalWrite(Trig, LOW);
duration = pulseIn(Echo, HIGH);
distanceCm = duration*0.034/2; //convert to distance in cm

if(distanceCm <= 20) //if distance less than 20cm make the turn
{
motor1.run(BACKWARD);
motor2.run(FORWARD); //and motor2.run(FORWARD)
delay(500); //play with delay to set the angle of turn
}
else //else keep moving forward
{
motor1.run(RELEASE);
motor2.run(FORWARD);
}

}

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

м.б, он по каким-то причинам начал НЕ видеть препятствие?

подсказка: прочитай описание функции pulseIn()

и вставь код, как положено.

 

Bounce
Offline
Зарегистрирован: 10.06.2020

Спасибо, попробую