// these constants won't change. They are the lowest and highest readings you
// get from your sensor:
const int sensorMin = 0; // sensor minimum, discovered through experiment
const int sensorMax = 600; // sensor maximum, discovered through experiment
const int ledbright = 2;
const int ledmedium = 3;
const int leddim = 4;
const int leddark = 5;
const int releCarga = 6;
const int threshold = 600;
void setup() {
// initialize serial communication:
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void Pisca(){
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
}
void loop() {
// read the sensor:
int sensorReading = analogRead(A0);
// map the sensor range to a range of four options:
Serial.println(sensorReading);
int range = map(sensorReading, sensorMin, sensorMax, 0, 3);
// do something different depending on the range value:
switch (range) {
case 0: // your hand is on the sensor
Serial.println("dark");
//digitalWrite(5, HIGH);
Pisca();
digitalWrite(4, LOW);
digitalWrite(3, LOW);
digitalWrite(2, LOW);
break;
case 1: // your hand is close to the sensor
Serial.println("dim");
digitalWrite(5, LOW);
digitalWrite(4, HIGH);
digitalWrite(3, LOW);
digitalWrite(2, LOW);
break;
case 2: // your hand is a few inches from the sensor
Serial.println("medium");
//digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
break;
case 3: // your hand is nowhere near the sensor
Serial.println("bright");
//digitalWrite(5, LOW);
digitalWrite(4, LOW);
digitalWrite(3, LOW);
digitalWrite(2, HIGH);
break;
}
if (sensorReading > threshold) {
digitalWrite(6, LOW);
} else {
digitalWrite(6, HIGH);
}
delay(1); // delay in between reads for stability
}