#include <Servo.h>
Servo servoMotor;
int buttonPin = 2; // Butoni është lidhur në pinin 2
int angle = 0; // Fillimisht servoMotori është në pozicionin e zero
int previousButtonState = LOW; // Gjendja e mëparshme e butonit
unsigned long previousMillis = 0; // Koha e mëparshme e përdorur për pushimin
void setup() {
servoMotor.attach(9); // ServoMotori është i lidhur në pinin 9
pinMode(buttonPin, INPUT_PULLUP);
servoMotor.write(angle); // Vendos servoMotorin në pozicionin e zero në fillim
}
void loop() {
int buttonState = digitalRead(buttonPin); // Lexo gjendjen e butonit
unsigned long currentMillis = millis(); // Merr kohën aktuale në milidetaje
if (buttonState == HIGH && previousButtonState == LOW) { // Nëse butoni është shtypur
angle = 90; // Cakto këndin në 90 gradë
servoMotor.write(angle); // Drejto servoMotorin në këndin 90 gradë
previousMillis = currentMillis; // Ruaj kohën e fillimit të pushimit
}
// Kontrollo nëse butoni është liruar dhe kthe servoMotorin në pozicionin e zero
if (buttonState == LOW && previousButtonState == HIGH) {
angle = 0; // Cakto këndin në 0 gradë
servoMotor.write(angle); // Kthe servoMotorin në pozicionin e zero
}
// Kontrollo kohën e qëndrimit në pozicionin 90 gradë dhe kthe servoMotorin në pozicionin e zero
if (currentMillis - previousMillis >= 4000 && angle == 90) {
angle = 0; // Cakto këndin në 0 gradë
servoMotor.write(angle); // Kthe servoMotorin në pozicionin e zero
}
previousButtonState = buttonState; // Ruaj gjendjen e tanishme të butonit për herën tjetër
}