Bob Arduino linje-efter roboten (18 / 24 steg)
Steg 18: Bryta ner koden: kalibrera del 2
Int kalibrera (int SENSOR_PIN, int INDICATOR_PIN)
{
int sensor_mid = 0; Inledande gissning på medianvärdet för sensorn.
int sensor_high = 0; inledande gissning för högsta värdet sensorn kommer att läsa
int sensor_low = 1023; Inledande gissning för lägsta värdet sensorn kommer att
osignerade långa current_time = millis(); Få aktuell tid i millisekunder
osignerade långa end_time = current_time + 5000; Vi kommer att ta sensormätningar för 5000 millisekunder (5 sek)
digitalWrite (INDICATOR_PIN, hög); Vända på LED att visa vilken sensor (höger, vänster eller mitten är att vara kalibrerad)
medan (current_time < end_time)
{
CURRENT_TIME = millis(); Uppdatera den aktuella tiden
int sensor_value = analogRead(SENSOR_PIN); Läs sensorn
om (sensor_value < sensor_low)
sensor_low = sensor_value; Uppdatera sensor låg till nuvarande sensor läsning om sensor_low är större än nuvarande sensor läsning
om sensor_high > sensor_value)
sensor_high = sensor_value; Uppdatera sensor hög till nuvarande sensor läsa om sensor_high är mindre än nuvarande sensor läsa
}
digitalWrite (INDICATOR_PIN, låg); Stänga av lampan att Visa sensorn (höger, vänster eller mitten har kalibrerats
återgå sensor_mid = ((sensor_high + sensor_low)/2); Returnera medianvärdet mellan sensor hög och sensor låg
}