#include <Servo.h>
// Definire i pin
const int photoresistorPin = A0; // Pin analogico per il fotoresistore
const int servoPin = 9; // Pin digitale per il servomotore
// Creare un oggetto Servo
Servo myServo;
// Soglia di luce per determinare se la tenda deve aprirsi o chiudersi
const int lightThreshold = 500;
// Variabili per gestione del tempo
unsigned long previousMillis = 0;
const long interval = 1000; // Intervallo di lettura in millisecondi
void setup() {
// Inizializzare il servo
myServo.attach(servoPin);
// Posizionare inizialmente la tenda chiusa
myServo.write(0);
// Inizializzare la comunicazione seriale (opzionale, per debug)
Serial.begin(9600);
}
void loop() {
// Ottieni il tempo corrente
unsigned long currentMillis = millis();
// Controlla se è trascorso l'intervallo di tempo
if (currentMillis - previousMillis >= interval) {
// Salva il tempo corrente
previousMillis = currentMillis;
// Leggi il valore dal fotoresistore
int lightLevel = analogRead(photoresistorPin);
// Stampa il valore letto (opzionale, per debug)
Serial.println(lightLevel);
// Controlla se il valore supera la soglia di luce
if (lightLevel > lightThreshold) {
// Apri la tenda (180 gradi)
myServo.write(180);
} else {
// Chiudi la tenda (0 gradi)
myServo.write(0);
}
}
}