#include <Servo.h>
Servo vikingsServo;
int potPin = A0;
int buttonPin = 2;
int ledPin = 13;
bool isRunning = false;
void setup() {
vikingsServo.attach(9);
pinMode(potPin, INPUT);
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
isRunning = !isRunning;
delay(300); // debounce
}
if (isRunning) {
digitalWrite(ledPin, HIGH);
int potValue = analogRead(potPin);
int angle = map(potValue, 0, 1023, 60, 120); // swing range
vikingsServo.write(angle);
delay(100);
vikingsServo.write(180 - angle);
delay(100);
} else {
digitalWrite(ledPin, LOW);
vikingsServo.write(90); // neutral position
}
}