Adding a calibration example and moving knock into the sensors folder.

This commit is contained in:
David A. Mellis 2008-11-01 18:03:07 +00:00
parent 3b8db8909b
commit f856428cb1
2 changed files with 49 additions and 0 deletions

View File

@ -0,0 +1,49 @@
/*
* Calibration
*
* Demonstrates one techinque for calibrating sensor input. The
* sensor readings during the first five seconds of the sketch
* execution define the minimum and maximum of expected values.
*/
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);
}