#include <Servo.h>
Servo myservo; // create servo object to control a servo
int servoSpeedPin = A0; // analog pin for the servo speed potentiometer
int ledPotPin = A1; // analog pin for the LED potentiometer
int ledPin = 13; // digital pin for the LED
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
pinMode(ledPin, OUTPUT); // set the LED pin as an output
Serial.begin(9600); // initialize serial communication for debugging
}
void loop() {
int servoSpeedPotValue = analogRead(servoSpeedPin); // read the servo speed potentiometer value (0-1023)
// Invert the mapping to increase speed with an increase in potentiometer value
int servoSpeed = map(servoSpeedPotValue, 0, 1023, 25, 5); // adjust the range as needed
int ledPotValue = analogRead(ledPotPin); // read the LED potentiometer value (0-1023)
int ledBrightness = map(ledPotValue, 0, 1023, 0, 255); // map pot value to LED brightness
Serial.print("Servo Speed Pot: ");
Serial.print(servoSpeedPotValue);
Serial.print(" LED Pot: ");
Serial.println(ledPotValue);
analogWrite(ledPin, ledBrightness); // control LED brightness
for (pos = 0; pos <= 180; pos += 1) {
myservo.write(pos);
delay(servoSpeed); // control servo speed
}
for (pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
delay(servoSpeed);
}
}
// controlling led and servo motor speed and brightness using potentiometer