Този пример демонстрира как се калибрира сензор. Данните отчетени от сензора в първите пет секунди след като проргамата е стартирана обуславят максималната и минимална допустими стойности.
За този пример е нужен аналогов сензор (например потенциометър или фоторезистор) свързан към аналогов входен пин 2 и светотиод към дигитален пин 9. Контролен светодиод е свързан към дигитален пин 13.
Схема

Код
/* Kalibrovka
* ------------
*
* kalibrova dannite ot senzor
*
* ot David A. Mellis (Oktomvri 2008)
*
* podobrena ot Tom Igoe (Juni 2009)
*
* bulgarski prevod ot Simeon Ianchev / Robotev.com (Septemvri 2009)
*/
int sensorPin = A0; // pin za senzora
int ledPin = 9; // pin za svetodioda
int val = 0; // promenliva za stojnostite ot senzora
int sensorMin = 1023, sensorMax = 0; // promenlivi za otchitane na
//nai-golyamata i nai-malkata stojnosti v perioda za kalibrirane
void setup() {
// signal za nachalo na kalibriraneto; deklarira kato izhod i vklyuchva pin 13
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
// kalibrovka v pyrvite 5 sekundi
while (millis() < 5000) {
val = analogRead(sensorPin);
// zapazva nai-vosokata otchetena stojnost
if (val > sensorMax) {
sensorMax = val;
}
// zapazva nai-vosokata otchetena stojnost
if (val < sensorMin) {
sensorMin = val;
}
}
// signal za krai na kalibriraneto - izklyuchva pin 13
digitalWrite(13, LOW);
}
void loop() {
val = analogRead(sensorPin);
// kalibrova dannite ot senzora
val = map(val, sensorMin, sensorMax, 0, 255);
// ogranichava stojnostite mejdu 0 i 255 v sluchai che
// sa bili izvan tozi obhvat po vreme na kalibriraneto
val = constrain(val, 0, 255);
analogWrite(ledPin, val);
}