]> git.piffa.net Git - sketchbook_andrea/commitdiff
Merge branch 'master' of kim:/home/git/sketchbook_andrea
authoreaman <andrea@piffa.net>
Fri, 14 Oct 2016 14:14:23 +0000 (16:14 +0200)
committereaman <andrea@piffa.net>
Fri, 14 Oct 2016 14:14:23 +0000 (16:14 +0200)
1  2 
oggi/photo_5_calibration/photo_5_calibration.ino

index 0000000000000000000000000000000000000000,ede9ca8fda53acb52457ae3982e91cefe6931980..1d9b4d75f35f6d607f1aebbff02156aa201851e9
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,85 +1,83 @@@
 -  pinMode(9, OUTPUT);
+ /*
+   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);
 -
+   digitalWrite(13, HIGH);
 -  sensorValue = map(sensorValue, sensorMin, sensorMax, 0, 254);
+   // 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, 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?
+ */