const int ldr = A2;
const int trimmerPin = A0; // Pin del trimmer
const int buttonPin = 2; // Pin del pulsante
const int lightPin = 13; // Pin della luce
unsigned long timerStart; // Variabile per il tempo di inizio
unsigned long duration; // Variabile per la durata
unsigned long sens; // Sensibità sensore ldr
int lightState = LOW; // Variabile per lo stato della luce
void setup() {
Serial.begin(9600);
pinMode(trimmerPin, INPUT);
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ldr, INPUT_PULLUP);
pinMode(lightPin, OUTPUT);
timerStart = millis();
}
void loop() {
int trimmerValue = analogRead(trimmerPin);
duration = map(trimmerValue, 0, 1023, 1000, 10000); //Mappiamo il valore del trimmer da 0 a 1023 a una durata compresa tra 1000 e 10000 millisecondi
int sensValue = analogRead(ldr);
sens = map(sensValue, 0, 1023, 10, 1000);
Serial.println(sens);
if (digitalRead(buttonPin) == LOW && sens >= 500){
lightState = !lightState;
digitalWrite(lightPin, lightState);
timerStart = millis();
}
if ((millis() - timerStart >= duration) && (lightState == HIGH)) {
digitalWrite(lightPin, LOW);
lightState = LOW;
}
}