Вопрос по праграммированию ардуино

JesterKING
Offline
Зарегистрирован: 09.03.2021

Всем привет. Возникла проблема. Делаю робота с ультразвуковым датчиком и двумя моторами. Самый обычный, видит препятствие, разворачивается едет в другую сторону. Система не работает! Помогите найти ошибку в коде пожалуйста...

JesterKING
Offline
Зарегистрирован: 09.03.2021
int trigPin = 10;     
int echoPin = 9;     
int revleft4 = 4;       
int fwdleft5 = 5;      
int revright6 =6;     
int fwdright7 = 7;      
long duration, distance;
void setup() {
  
  delay(random(500,2000)); 
  Serial.begin(9600);
  pinMode(revleft4, OUTPUT);   
  pinMode(fwdleft5, OUTPUT);
  pinMode(revright6, OUTPUT);
  pinMode(fwdright7, OUTPUT);
  
  pinMode(trigPin, OUTPUT);         
  pinMode(echoPin, INPUT);       
}
void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);   
  digitalWrite(trigPin, HIGH);     
  delayMicroseconds(10);
  duration = pulseIn(echoPin, HIGH); 
  distance = duration / 58.2;  
  delay(10);
    
  if (distance > 19)            
  {
    digitalWrite(fwdright7, HIGH);                   
    digitalWrite(revright6, LOW);
    digitalWrite(fwdleft5, HIGH);                                
    digitalWrite(revleft4, LOW);                                                       
  }
  if (distance < 18)
  {
    digitalWrite(fwdright7, LOW);                
    digitalWrite(revright6, LOW);
    digitalWrite(fwdleft5, LOW);                                
    digitalWrite(revleft4, LOW);
    delay(500);
    digitalWrite(fwdright7, LOW);              
    digitalWrite(revright6, HIGH);
    digitalWrite(fwdleft5, LOW);                                
    digitalWrite(revleft4, HIGH);
    delay(500);
    digitalWrite(fwdright7, LOW);            
    digitalWrite(revright6, LOW);
    digitalWrite(fwdleft5, LOW);                                
    digitalWrite(revleft4, LOW);  
    delay(100);  
    digitalWrite(fwdright7, HIGH);       
    digitalWrite(revright6, LOW);   
    digitalWrite(revleft4, LOW);                                 
    digitalWrite(fwdleft5, LOW);  
    delay(500);
  }
}

 

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

Не вдаваясь в код, а что будет, если distance будет равен 18 или 19?

JesterKING
Offline
Зарегистрирован: 09.03.2021

Если больше 19, то едет вперед, если меньше тормозит, разворот, едет дальше

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

JesterKING пишет:
Система не работает! Помогите найти ошибку в коде пожалуйста...

в чем выражается "не работает"? - не едет, не поворачивает, или поворачивает, но не туда...? А может у вас просто ардуина не прошивается. а мы тут будем сидеть ломать голову над кодом.

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

JesterKING пишет:

Если больше 19, то едет вперед, если меньше тормозит, разворот, едет дальше

JesterKING, тебе лет-то сколько? Ты этот код где списал? ничего вообще в нем не понимаешь?

JesterKING
Offline
Зарегистрирован: 09.03.2021

Не едет

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

JesterKING пишет:

Не едет

а подробнее?

Не хочешь отвечать на вопросы нормально - разбирайся сам

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

JesterKING пишет:

Не едет

И не поедет, для этого IQ надо побольше. 

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

DetSimen пишет:

И не поедет, для этого IQ надо побольше. 

нашел в поиске по нику еще пару вопросов от этого персонажа - такие же бессмысленные. Похоже, что человек так ничему и не научился

v258
v258 аватар
Offline
Зарегистрирован: 25.05.2020

JesterKING пишет:

Если больше 19, то едет вперед, если меньше тормозит, разворот, едет дальше

для этого вместо строки 36 должно стоять else

Но суть проблемы один хрен непонятна

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Уважаемый, а Вы можете простым языком, по возможности русским, написать алгоритм программы. Пример:

ЕСЛИ на пине 3 появился высокий уровень, то на пине 4 устанавливается высокий уровень, а на пине 5 низкий, ИНАЧЕ ....

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