Demonstra uma técnica de se calibrar um sensor. As leituras provenientes do sensor durante os primeiros cinco segundos da execução do esboço abaixo define os valores esperados mínimo e máximo.
Sensor analógico (ex.: potenciômetro, sensor de luz) ligado ao pino analógico 2 e um LED no pino digital 9.
int sensorPin = 2; int ledPin = 9; int val = 0; int sensorMin = 1023, sensorMax = 0; void setup() { // sinalize o início do período de calibração pinMode(13, OUTPUT); digitalWrite(13, HIGH); // calibre durante os 5 segundos iniciais while (millis() < 5000) { val = analogRead(sensorPin); // registre o máximo valor do sensor if (val > sensorMax) { sensorMax = val; } // registre o mínimo do sensor if (val < sensorMin) { sensorMin = val; } } // sinalize o fim do período de calibração digitalWrite(13, LOW); } void loop() { val = analogRead(sensorPin); // aplique a calibração à leitura no sensor val = map(val, sensorMin, sensorMax, 0, 255); // caso o valor esteja fora do intervalo visto durante a calibração val = constrain(val, 0, 255); analogWrite(ledPin, val); }