mirror of
https://github.com/arduino/Arduino.git
synced 2025-02-12 06:54:24 +01:00
Compilation still has problems (Thread error on success, and can't handle non-pde files in a sketch). Modified the Mac OS X make.sh to copy the hardware, avr tools, and example over. Removing some of the antlr stuff. Disabling the Commander (command-line execution) for now. Added Library, LibraryManager, and Target. Added support for prefixed preferences (e.g. for boards and programmers).
50 lines
1.1 KiB
Plaintext
50 lines
1.1 KiB
Plaintext
/*
|
|
* 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);
|
|
}
|