Calibração

Demonstra uma técnica para calibrar um sensor de entrada. As leituras do sensor durante os primeiros cinco segundos da execução do projeto irá definir os valores mínimos e máximos esperados.

Circuito

Sensor analógico (e.g. potenciómetro, sensore de luminosidade) na entrada analógica 2. LED no pino digital 9.

Código

int sensorPin = 2;
int ledPin = 9;

int val = 0;
int sensorMin = 1023, sensorMax = 0;

void setup() {
// signal the start of the calibration period
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);

// calibrate during the first five seconds
while (millis() < 5000) {
val = analogRead(sensorPin);

// record the maximum sensor value
if (val > sensorMax) {
sensorMax = val;
}

// record the minimum sensor value
if (val < sensorMin) {
sensorMin = val;
}
}

// signal the end of the calibration period
digitalWrite(13, LOW);
}

void loop() {
val = analogRead(sensorPin);

// apply the calibration to the sensor reading
val = map(val, sensorMin, sensorMax, 0, 255);

// in case the sensor value is outside the range seen during calibration
val = constrain(val, 0, 255);

analogWrite(ledPin, val);
}

O conteúdo desta página é uma tradução para o português a partir do site original do Arduino.

Esta obra está licenciada sob uma Licença Creative Commons.

Creative Commons License