]> git.piffa.net Git - sketchbook_andrea/blob - basic/analog_input/photo_4_calibrated/photo_4_calibrated.ino
313598d2cd98f5bc375a17f3f9eec6857e086974
[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: http://lab.piffa.net/schemi/photoresistor_led.png
16  */
17
18 int sensorPin = A0;    // select the input pin for the potentiometer
19 int ledPin = 13;      // 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   int calValue = map(sensorValue,min,max,0,1000) ; 
36   // Max pausa = 1sec
37       // turn the ledPin on
38     digitalWrite(ledPin, HIGH);  
39   // stop the program for <sensorValue> milliseconds:
40   delay(calValue);          
41   // turn the ledPin off:        
42   digitalWrite(ledPin, LOW);   
43   // Debug, per disabilitarlo togliere l'inizializzazione della seriale
44   // dal setup()
45   Serial.print("sensor = " );                       
46   Serial.print(sensorValue);      
47   Serial.print("\t cal delay = ");      
48   Serial.println(calValue);
49   delay(calValue);                  
50 }
51
52 /*
53 Domande:
54 1. Modificare lo sketch in modo che modifichi la luminosita' di un led 
55 via PWM tramite il valore letto dal sensore.
56 2. Come fare per costringere la variabile dentro un intervallo stabilito?
57 3. Come si potrebbe eseguire la calibrazione automaticamente?
58 */
59