From: eaman Date: Fri, 14 Oct 2016 14:14:23 +0000 (+0200) Subject: Merge branch 'master' of kim:/home/git/sketchbook_andrea X-Git-Url: http://git.piffa.net/web?p=sketchbook_andrea;a=commitdiff_plain;h=73cca4ec0dc13cbe69de5670c1b9c4115e33e442 Merge branch 'master' of kim:/home/git/sketchbook_andrea --- 73cca4ec0dc13cbe69de5670c1b9c4115e33e442 diff --cc oggi/photo_5_calibration/photo_5_calibration.ino index 0000000,ede9ca8..1d9b4d7 mode 000000,100644..100644 --- a/oggi/photo_5_calibration/photo_5_calibration.ino +++ b/oggi/photo_5_calibration/photo_5_calibration.ino @@@ -1,0 -1,85 +1,83 @@@ + /* + Calibration + + Demonstrates one technique for calibrating sensor input. The + sensor readings during the first five seconds of the sketch + execution define the minimum and maximum of expected values + attached to the sensor pin. + + The sensor minimum and maximum initial values may seem backwards. + Initially, you set the minimum high and listen for anything + lower, saving it as the new minimum. Likewise, you set the + maximum low and listen for anything higher as the new maximum. + + The circuit: + * Analog sensor (potentiometer will do) attached to analog input 0 + * LED attached from digital pin 9 to ground + + created 29 Oct 2008 + By David A Mellis + modified 30 Aug 2011 + By Tom Igoe + + http://arduino.cc/en/Tutorial/Calibration + + This example code is in the public domain. + + */ + + // These constants won't change: + const int sensorPin = A0; // pin that the sensor is attached to + const int ledPin = 9; // pin that the LED is attached to + + // variables: + int sensorValue = 0; // the sensor value + int sensorMin = 1023; // minimum sensor value + int sensorMax = 0; // maximum sensor value + + + void setup() { + // turn on LED to signal the start of the calibration period: + pinMode(13, OUTPUT); - pinMode(9, OUTPUT); + digitalWrite(13, HIGH); + - + // calibrate during the first five seconds + while (millis() < 5000) { + sensorValue = analogRead(sensorPin); + + // record the maximum sensor value + if (sensorValue > sensorMax) { + sensorMax = sensorValue; + } + + // record the minimum sensor value + if (sensorValue < sensorMin) { + sensorMin = sensorValue; + } + delay(5); // Let the sensor rest a bit and stabilize + } + + // signal the end of the calibration period + digitalWrite(13, LOW); + } + + void loop() { + // read the sensor: + sensorValue = analogRead(sensorPin); + + // apply the calibration to the sensor reading - sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 254); ++ sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 255); + + // in case the sensor value is outside the range seen during calibration + sensorValue = constrain(sensorValue, 0, 255); + + // fade the LED using the calibrated value: + analogWrite(ledPin, sensorValue); + } + /* + Domande: + 1. Modificare lo sketch in modo che modifichi la luminosita' di un led + via PWM tramite il valore letto dal sensore. + 2. Come fare per costringere la variabile dentro un intervallo stabilito? + */ +