#include Servo myServo; const int servoPin = 9; // Pino onde o servo motor está conectado const int angleOpen = 90; // Ângulo para empurrar o cigarro const int angleClose = 0; // Ângulo para posição de repouso unsigned long previousMillis = 0; // Armazena o último tempo em que o servo foi ativado const long interval = 3600000; // Intervalo de 1 hora (em milissegundos) void setup() { myServo.attach(servoPin); // Conecta o servo motor myServo.write(angleClose); // Inicializa na posição de repouso previousMillis = millis(); // Define o tempo inicial } void loop() { unsigned long currentMillis = millis(); // Obtém o tempo atual // Verifica se 1 hora (3600000 milissegundos) já se passou desde a última liberação if (currentMillis - previousMillis >= interval) { liberarCigarro(); // Libera o cigarro previousMillis = currentMillis; // Atualiza o último tempo } // Verifica a cada 1 segundo (ou outro intervalo curto) delay(1000); } void liberarCigarro() { myServo.write(angleOpen); // Move o servo para empurrar o cigarro delay(1000); // Espera 1 segundo para garantir que o servo complete o movimento myServo.write(angleClose); // Retorna o servo à posição de repouso }