в чем тут причина? просто надо что бы при наличии препятствия робот остановился
как контролировать двигатели в зависимости от расстояния препятствия перед датчиком?
по отдельности и то и то работает
в тебе, скобки и точку с запятой, ты ставишь где попало без всякого понимания.
ну подскажите где именно. вроде все в коде логично
вот, если все подключено правильно должно работать
int trigPin = 13; // назначаем имя для pin9
int echoPin = 12; // назначаем имя для pin8
int In2 = 2;
int In4 = 4;
int duration, cm;
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT); // назначаем trigPin, как выход
pinMode(echoPin, INPUT); // назначаем echoPin, как вход
//Переведем данные пины/порты в режим вывода.
pinMode(In2, OUTPUT);
pinMode(In4, OUTPUT);
}
void loop() {
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");
if (cm > 30) {
digitalWrite(In2, HIGH);
digitalWrite(In4, HIGH);
} else {
digitalWrite(In2, LOW);
digitalWrite(In4, LOW);
}
delay(1000);
}
и тя умоляю, иди учи уроки, а то всю жизнь так и будешь код на форумах клянчить.
Скобка не там стояла.
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);
}
и ещё есть сомнительные места.
неясно почему дальномер только один раз мерит дистанцию.
…проблема в голове у вас, нет логики.
Нет конечно. Но тут логика нарушена, а не столько орфография.
…про структуру простеньких скетчей почитать надо и их логическую работу.
Отлично. Все работает. Спасибо.
Спасибо.
Давай дальше выдумывай скетчи не работающие и тилибунькай форумчан
Чёрт с ней, с логикой, раз и без неё всё работает.
а дальше теперь я подключу к нему светодиод и зумер и они эти электронные модули должны будут активироваться в зависимости от расстояния до препятствия)
давай, мы ждем
уроки сделал?
))уроки еще сделаем
А сами-то Вы проверяли? И каковы результаты? Или Вы считаете, что Вам тут кто-то должен попу подтирать?
Боюсь, Вы неправильно понимаете это слово. Загляните в словарь.
пищать и мигать, минимум.
Светодиод уже добавил. Работает.
Если с кодом проблемы, рекомендую перейти на уровень программирования через Scratch. Реально поможет подтянуть логику. Позже руки запросят вернуться к текстовому виду, когда голова будет готова.