Робот не едет по черной линии. Крутится на месте.
unsigned long _time;
//====================================
int left_sensor_line = 9;
int right_sensor_line = 8;
//====================================
void setup()
{
// Переменные – номера контактов (пинов) Arduino.
// Для левых и правых моторов машинки.
setup_motor_system(2, 3, 4, 5);
_stop(); //Двигатели остановлены.
// Сенсорные пины переводим в состояние ввода данных.
pinMode(left_sensor_line, INPUT);
pinMode(right_sensor_line, INPUT);
_time = millis();
// Устанавливаем скорость порта связи с ПК.
Serial.begin(9600);
}
// Основная программа.
void loop()
{
while (true)
{
bool ls = digitalRead(left_sensor_line);
bool rs = digitalRead(right_sensor_line);
// Serial.println(ls);
// Serial.println(rs);
// Serial.println("======================================");
// delay(500);
//Готов к приему.
if ((!ls) && (!rs))
{
forward();
}
else
{
if (ls)
{
left();
}
else
{
right();
}
}
delayMicroseconds(500);
_stop();
delayMicroseconds(100);
}
}
int motor_L1, motor_L2;
int motor_R1, motor_R2;
//===============================================
// Функция инициализации управления моторами.
void setup_motor_system(int L1, int L2, int R1, int R2)
{
// Заносятся в переменные номера контактов (пинов) Arduino.
motor_L1 = L1; motor_L2 = L2;
// Для левых и правых моторов робота.
motor_R1 = R1; motor_R2 = R2;
// Переводятся указанные порты в состояние вывода данных.
pinMode(motor_L1, OUTPUT);
pinMode(motor_L2, OUTPUT);
pinMode(motor_R1, OUTPUT);
pinMode(motor_R2, OUTPUT);
}
//===============================================
// движение вперед.
void forward()
{
// Если двигатель будет работать не в ту сторону,
// поменять на нем контакты местами.
digitalWrite(motor_L1, HIGH);
digitalWrite(motor_L2, LOW);
digitalWrite(motor_R1, HIGH);
digitalWrite(motor_R2, LOW);
}
//===============================================
// Поворот налево с блокировкой левых колес.
void forward_left()
{
// блокировка вращения левых колес.
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, LOW);
// правые колеса вращаются.
digitalWrite(motor_R1, HIGH);
digitalWrite(motor_R2, LOW);
}
//===============================================
// Поворот направо с блокировкой правых колес.
void forward_right()
{
// левые колеса вращаются.
digitalWrite(motor_L1, HIGH);
digitalWrite(motor_L2, LOW);
// блокировка вращения правых колес.
digitalWrite(motor_R1, LOW);
digitalWrite(motor_R2, LOW);
}
// Поворот налево на месте.
void left()
{
// левые колеса вращаются назад.
digitalWrite(motor_L1, LOW);
digitalWrite(motor_L2, HIGH);
// правые колеса вращаются вперед.
digitalWrite(motor_R1, HIGH);
digitalWrite(motor_R2, LOW);
}
//===============================================
// Поворот направо на месте.
void right()
{
// левые колеса вращаются вперед.
digitalWrite(motor_L1, HIGH);
digitalWrite(motor_L2, LOW);
// правые колеса вращаются назад.
digitalWrite(motor_R1, LOW);
digitalWrite(motor_R2, HIGH);
}
// Включаем движение назад.
void backward()
{
// Смена направления вращения двигателей.
digitalWrite(motor_L2, HIGH);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_R1, LOW);
}
//===============================================
// Включаем движение назад.
void backward_left()
{
// Смена направления вращения двигателей.
digitalWrite(motor_L2, LOW);
digitalWrite(motor_L1, HIGH);
digitalWrite(motor_R2, HIGH);
digitalWrite(motor_R1, LOW);
}
//===============================================
// Включаем движение назад.
void backward_right()
{
// Смена направления вращения двигателей.
digitalWrite(motor_L2, HIGH);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_R2, LOW);
digitalWrite(motor_R1, HIGH);
}
//===============================================
void _stop()
{
// Блокировка всех колес.
digitalWrite(motor_L2, LOW);
digitalWrite(motor_L1, LOW);
digitalWrite(motor_R2, LOW);
digitalWrite(motor_R1, LOW);
}
Видео можно сюда загрузить? Как загрузить сюда видео?
зачем?
Хотел показать наглядно как машина себя ведет.
Вот это?
я и без видео могу представить
В чем интересно причина?
Восстание машин?
Ну эта то дааа. Само собой. ) Как заставить его ехать по черной линии то?)
Плеткой пробовали? На лошадей действует…
Вы читали что написали вам в предыдущих темах про мои поправки?
И плеткой пробовали, и на ковер вызывали и арбуз ставили. Ничего не помогает.
Что именно?
Пост 50.
Да. Это я на писал.
Это пост 49.
Лучше с видосом, но не на ютубе.
Пальчиком подправить.
А серьёзно может 1000 причин - от плохого контакта до плохого датчика или неисправного колеса. Подробностей надо больше. Например - оба колеса вертятся? Может робот без линии ехать прямо? Датчик света срабатывает?
Вы говорите загадками, мудрейший.
В данных листингах тоже ошибка?