// Функция следования по линии void followLine(int speed, int followTime) { // Задаём пропорционаальный коэффициеент П-регулятора int Kp = 5; // Сохраняем время начала движения int startTime = millis(); // Следуем по линии в течение задангого времени waitTime while (millis() - startTime < followTime) { // Считываем показания датчиков линии int leftLine = readLineL(); int rightLine = readLineR(); // Расчитываем оибку int err = leftLine - rightLine; // Формируем управляющий сигнал int out = Kp * err ; // Ограничиваем максимальное и минимальное значения управляющего сингала out = constrain(out, 0, 200); // Ругулируем скорость моторов в соответсвии с управляющим сигналом motorsDrive(speed + out, speed - out); } // Останавливаем моторы motorsDrive(0, 0); }