]> git.piffa.net Git - sketchbook_andrea/blob - basic/analog_input/photo_4_calibrated/photo_4_calibrated.ino
analog cleanup
[sketchbook_andrea] / basic / analog_input / photo_4_calibrated / photo_4_calibrated.ino
1 /*
2   Photoresistor
3  
4  Utilizzare una fotoresistenza come analog input.
5  Il comportamento della foto resistenza e' simile
6  a un potenziometro: varia la resistenza in base alla 
7  quantita' di luce.
8  
9  Per ottenere valori significativi utilizzare unaresistenza
10  da ~5k - 10k ohms in serie con il sensore.
11  
12  Questo sketch modifica l'intervallo di intermittenza di un led
13  in base alla luminosita' rilevata.
14  
15  Schema: https://learn.adafruit.com/assets/460
16  */
17
18 int sensorPin = A0;    // select the input pin for the potentiometer
19 int ledPin = 11;      // select the pin for the LED
20 int sensorValue = 0;  // variable to store the value coming from the sensor
21
22 int min = 60;        // valore minimo rilevato dal sensore
23 int max = 600;        // valore massimo rilevato dal sensore
24
25 void setup() {
26   // declare the ledPin as an OUTPUT:
27   pinMode(ledPin, OUTPUT);  
28   // initialize serial communications at 9600 bps:
29   Serial.begin(9600); 
30 }
31
32 void loop() {
33   // read the value from the sensor:
34   sensorValue = analogRead(sensorPin);   
35   delay(5); // stabilizziamo il sensore
36   int calValue = map(sensorValue,min,max,0,255) ; 
37   analogWrite(ledPin, calValue);  
38   // Debug, per disabilitarlo togliere l'inizializzazione della seriale
39   // dal setup()
40   Serial.print("sensor = " );                       
41   Serial.print(sensorValue);      
42   Serial.print("\t cal delay = ");      
43   Serial.println(calValue);
44 }
45
46 /*
47 Domande:
48 1. Come fare per costringere la variabile dentro un intervallo stabilito?
49 2. Come si potrebbe eseguire la calibrazione automaticamente?
50 .
51 .
52 .
53 .
54 .
55 .
56 .
57 .
58 .
59 .
60 .
61 .
62 .
63 .
64 .
65
66 1. Utilizzando costrain()
67 2. Vedi esercizio sucessivo
68 */
69