Вопрос по праграммированию ардуино
- Войдите на сайт для отправки комментариев
Ср, 09/03/2022 - 19:23
Всем привет. Возникла проблема. Делаю робота с ультразвуковым датчиком и двумя моторами. Самый обычный, видит препятствие, разворачивается едет в другую сторону. Система не работает! Помогите найти ошибку в коде пожалуйста...
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); } }Не вдаваясь в код, а что будет, если distance будет равен 18 или 19?
Если больше 19, то едет вперед, если меньше тормозит, разворот, едет дальше
в чем выражается "не работает"? - не едет, не поворачивает, или поворачивает, но не туда...? А может у вас просто ардуина не прошивается. а мы тут будем сидеть ломать голову над кодом.
Если больше 19, то едет вперед, если меньше тормозит, разворот, едет дальше
JesterKING, тебе лет-то сколько? Ты этот код где списал? ничего вообще в нем не понимаешь?
Не едет
Не едет
а подробнее?
Не хочешь отвечать на вопросы нормально - разбирайся сам
Не едет
И не поедет, для этого IQ надо побольше.
И не поедет, для этого IQ надо побольше.
нашел в поиске по нику еще пару вопросов от этого персонажа - такие же бессмысленные. Похоже, что человек так ничему и не научился
Если больше 19, то едет вперед, если меньше тормозит, разворот, едет дальше
для этого вместо строки 36 должно стоять else
Но суть проблемы один хрен непонятна
Уважаемый, а Вы можете простым языком, по возможности русским, написать алгоритм программы. Пример:
ЕСЛИ на пине 3 появился высокий уровень, то на пине 4 устанавливается высокий уровень, а на пине 5 низкий, ИНАЧЕ ....
и т.д. Это можно несложно перевести на любой язык программирования, а то что Вы пишете в программе, как я понимаю не представляя алгоритма, не поддается алгоритмическому дешифрованию.