#include <Servo.h> // Servo bibliotheek
Servo myservo; // Servo object
// Definieer pinnen
const int ledPin = 13; // LED aangesloten op digitale pin 13
const int potPin = A0; // Potentiometer aangesloten op analoge pin A0
const int buttonPin = 7; // Drukknop aangesloten op digitale pin 7
int buttonState = 0; // Variabele om de status van de drukknop op te slaan
int ledState = LOW; // Variabele om de status van de LED op te slaan
void setup() {
// Initialiseer de pinnen
pinMode(ledPin, OUTPUT); // Zet de LED pin als output
pinMode(buttonPin, INPUT); // Zet de drukknop pin als input
myservo.attach(9); // Verbind de servo met pin 9
Serial.begin(9600); // Start de seriële monitor (optioneel)
}
void loop() {
// Lees de positie van de potentiometer
int potValue = analogRead(potPin); // Lees de waarde van de potentiometer (0-1023)
int servoAngle = map(potValue, 0, 1023, 0, 180); // Schaal de waarde naar een hoek van de servo (0-180 graden)
myservo.write(servoAngle); // Beweeg de servo naar de berekende hoek
// Drukknop om de LED aan of uit te zetten
buttonState = digitalRead(buttonPin); // Lees de status van de drukknop
if (buttonState == HIGH) {
ledState = !ledState; // Wissel de status van de LED als de knop is ingedrukt
digitalWrite(ledPin, ledState); // Zet de LED aan of uit
delay(200); // Debounce: even wachten om te voorkomen dat de knop meerdere keren wordt gelezen
}
// Optioneel: debug-informatie
Serial.print("Potentiometer waarde: ");
Serial.print(potValue);
Serial.print(" -> Servo hoek: ");
Serial.println(servoAngle);
delay(10); // Een korte vertraging voor stabiliteit
}