Enkla ljus efter Robot (6 / 6 steg)
Steg 6: Trimma den kontrollerar kretsar
Målet är att få båda photoresistors att läsa samma nivå av ljus. Detta beräknas genom att subtrahera en ljussensor värde från den andra. Om detta värde är lika med noll (0), läser ljussensorer båda samma nivå av ljus. Om inte, programmet kommer att rotera roboten detta fel. När detta är uppnått, roboten vara vänd mot ljuskällan.
I denna mycket enkel kontroll loop är normvärdet lika med noll (där båda ljussensor läser samma värde). Utdata är motorisk hastighet och riktning.
Det är osannolikt att programmet kommer att fungera mycket väl utan några justeringar. Detta kallas "tuning slingan".
Vinst är värdet "3" att starta. Justera värdet är hur den kontrollerar kretsar är inställd. Om roboten vänder snabbt eller är agerar "hoppigt" minska känsligheten. Om roboten flyttar till långsamt, öka värdet för vinst. Efter justering av vinst, ladda om programmet och se om robotens beteende har förbättrats. Lycka till!
fallet "g": //follow ljuset
vinna = 3;
temp_var = (lightsensor_left - lightsensor_right) * få;
om (temp_var > 0)
{
digitalWrite (dir_a, hög);
digitalWrite (dir_b, låg);
Serial.println ("rotera Left\n");
}
annat
{
digitalWrite (dir_a, låg);
digitalWrite (dir_b, hög);
Serial.println ("rotera Right\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);
bryta;