Робот должен ехать туда обратно и при появлении препятствия перед дальномеро останавливаться

#include <NewPing.h>
 
#define TRIGGER_PIN  13
#define ECHO_PIN     12
#define MAX_DISTANCE 400
 
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
  int In2, In4;
   int  Dist_front;;
void setup() {
  Serial.begin(9600);
  In2 = 2;
  In4 = 4;
  pinMode (In2, OUTPUT);
  pinMode (In4, OUTPUT);
}
 
void loop()  
{
  delay(50);
  Serial.print("Ping: ");
  Serial.print(sonar.ping_cm());
  Serial.println("cm");
  if   ( Dist_front < 30) {
    
  digitalWrite(In2, LOW); 
  digitalWrite(In4, LOW);
    }
 else {
  digitalWrite(In2, HIGH); 
  digitalWrite(In4, HIGH);
   }
}

ну во первых, можно же форматировать код?

#include <NewPing.h>

#define TRIGGER_PIN  13
#define ECHO_PIN     12
#define MAX_DISTANCE 400

NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
int In2, In4;
int  Dist_front;


void setup() {
  Serial.begin(9600);
  In2 = 2;
  In4 = 4;
  pinMode (In2, OUTPUT);
  pinMode (In4, OUTPUT);
}

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

  if   ( Dist_front > 30) {
    digitalWrite(In2, HIGH);
    digitalWrite(In4, HIGH);
  }
  else (Dist_front  < 30); {
    digitalWrite(In2, LOW);
    digitalWrite(In4, LOW);
  }
}

теперь рассказываете в какой строке вы сонар читаете?

ой, Петрович, я нечаянно :sleepy:

Точно! Чтение сонара ещё.

как найдете, рассказывайте что тут происходит…

Так и смотри вообще без датчика. В коде тупо включи, чтобы понять что разъёмы китайские говно и надо паять сразу.
Вот не работает по датчику мотор. Неужели трудно понять, что проблема в датчике, либо в моторе? Соответственно проверить отдельно одно и другое. Это сложно?

да не путай ты его))
не едет патамушо Dist_front нулю равна всегда.

1 лайк

Это не наш метод!

1 лайк

Да хз уже. Вроде в ранних листингах что-то было. Мне п*х))) Должен сам дойти до кондиции. Чувак явно смотрит в код, как я в китайские иероглифы. Зачем тогда это всё ему?) Сходил бы да купил в магазине. Там щас игрушки для мальчиков от 1 до 60 лет, на любой вкус.

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

Dist_front =  Sonar(400);

Во!
…добавить перед

правильно, только все равно не поедет))

Тогда сдаюсь :slight_smile:

ааа
ты про свой код, пропустил, сорян, должно заколоситься)))

Ну-у-у, так низзя!

2 лайка

ой Петрович, по лезвию ты ходишь))

:frowning:
Ну нет у меня машинки.
…а так бы я повоевал ещё.

ну сонар хоть купи…

анекдот вспомнился))
волк подъезжает на машине, приоткрывает пассажирское стекло
кричит, лиса иди прокачу, лиса бошку засунула, он ее придавил стеклом,
вышел и тр…
за углом стоит медведь - “да, на машину мне не хватит, но дверь пожалуй я куплю”

Да валяется где-то на полке.
…делал слежение глаз за предметом.
ролик картинки

2 лайка
int trigPin = 13; // назначаем имя для pin9
int echoPin = 12; // назначаем имя для pin8
int In2, In4;

void setup() { 
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT); // назначаем trigPin, как выход
  pinMode(echoPin, INPUT);  // назначаем echoPin, как вход
  {
   
   In2 = 2;
   In4 = 4;

  //Переведем данные пины/порты в режим вывода.
  pinMode(In2, OUTPUT);
  pinMode(In4, OUTPUT);
}
} 
 int duration, cm;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);

  cm = duration / 58; // вычисляем расстояние в сантиметрах
  Serial.print(cm);
  Serial.println(" cm");

  delay(1000);
 if   (duration, cm  > 30) {
  digitalWrite(In2, HIGH); 
  digitalWrite(In4, HIGH);
    }
 if (duration, cm < 30); {
  digitalWrite(In2, LOW); 
  digitalWrite(In4, LOW);
   }
void loop() 
 
{
  digitalWrite(In2, LOW); //Правые двигатели на роботе.
  digitalWrite(In4, LOW);
  delay(1000); // Ждем 1 сек.
  digitalWrite(In2, HIGH); //Включили один правый двигатель на роботе.
  digitalWrite(In4, HIGH); //Включили другой правый двигатель на роботе.
  delay(2000); // Ждем 1 сек.
  digitalWrite(In2, LOW); //Выключили
  digitalWrite(In4, LOW); //Выключили
  delay(1000); // Ждем 1 сек.
  digitalWrite(In2, HIGH); //Включили один правый двигатель на роботе.
  delay(500); // Ждем 1 сек.
  digitalWrite(In2, LOW); //Правые двигатели на роботе.
  digitalWrite(In4, LOW);
  delay(1000); // Ждем 1 сек.
  digitalWrite(In2, HIGH); //Включили один правый двигатель на роботе.
  digitalWrite(In4, HIGH); //Включили другой правый двигатель на роботе.
  delay(2000); // Ждем 1 сек.
  digitalWrite(In2, LOW); //Правые двигатели на роботе.
  digitalWrite(In4, LOW);
  delay(1000); // Ждем 1 сек.
  digitalWrite(In2, HIGH); //Включили один правый двигатель на роботе.
  delay(500);
 }

Проверьте код. Робот должен ехать туда обратно и когда появится препятствие остановиться.

проверил, не компилируется.