@aarav_builds
Three weeks of tuning and my line follower finally does the full track without leaving it once. The trick was dropping the base speed before the sharp turns instead of trying to fix it with a bigger correction. #robotics #linefollower #arduino
arduino
// PID line following — the values that finally worked for me
const float Kp = 0.08, Ki = 0.0002, Kd = 0.9;
int baseSpeed = 140; // was 200 — too fast for the hairpin
void loop() {
int error = readLinePosition() - 3500; // 0..7000, centre = 3500
integral += error;
int correction = Kp * error + Ki * integral + Kd * (error - lastError);
lastError = error;
// Slow down when we are far off the line; speed up on the straights.
int speed = baseSpeed - min(abs(error) / 40, 60);
setMotors(speed + correction, speed - correction);
}