Paso 6: Ajuste el bucle de control
El objetivo es conseguir ambos fotorresistores leer el mismo nivel de luz. El programa calcula este restando un valor de sensor de luz del otro. Si este valor es igual a cero (0), los sensores de luz ambos leyendo el mismo nivel de luz. Si no, el programa rotará el robot para corregir este error. Una vez que esto se logra, el robot debe hacer frente la fuente de luz.
En este bucle de control muy simple, el punto de referencia es igual a cero (donde ambos sensor de luz están leyendo el mismo valor). La salida es la velocidad del motor y la dirección.
Es poco probable que el programa funcionará muy bien sin algún ajuste. Esto se llama "ajuste del lazo".
El valor de ganancia se establece en "3" para empezar. El valor de ajuste es cómo se afina el bucle de control. Si el robot gira rápido o es actuar "jumpy" reducir la ganancia. Si el robot se mueve a poco a poco, aumentar el valor de ganancia. Después de ajustar la ganancia, volver a cargar el programa y ver si ha mejorado el comportamiento del robot. ¡Buena suerte!
caso 'g': //follow la luz
ganancia = 3;
temp_var = (lightsensor_left - lightsensor_right) * ganancia;
Si (temp_var > 0)
{
digitalWrite (dir_a, HIGH);
digitalWrite (dir_b, bajo);
Serial.println ("gira Left\n");
}
otra cosa
{
digitalWrite (dir_a, LOW);
digitalWrite (dir_b, HIGH);
Serial.println ("gire de\n");
}
Serial.println(temp_var);
temp_var=ABS(temp_var);
if(temp_var > 255)
{
temp_var = 255;
}
analogWrite (pwm_a, temp_var);
analogWrite (pwm_b, temp_var);
rotura;