/*
Triple Servo Controller
By AnonEngeneering
Added a delay of 20 ms in the loop().
Sep 17, 2026: Forgot to connect the grounds, now fixed.
*/
#include <Servo.h>
const int NUM_SERVOS = 3;
const int SERVO_PINS[] = {4, 3, 2};
const int POT_PINS[] = {A2, A1, A0};
int posVal[NUM_SERVOS];
int oldPosVal[NUM_SERVOS] = {-1, -1, -1};
Servo servo[NUM_SERVOS];
void setup() {
Serial.begin(9600);
for (int i = 0; i < NUM_SERVOS; i++) {
servo[i].attach(SERVO_PINS[i]);
}
}
void loop() {
for (int i = 0; i < NUM_SERVOS; i++) {
posVal[i] = map(analogRead(POT_PINS[i]), 0, 1023, 0, 180);
if (posVal[i] != oldPosVal[i]) {
servo[i].write(posVal[i]);
Serial.print("Servo ");
Serial.print(i);
Serial.print(" position: ");
Serial.println(posVal[i]);
oldPosVal[i] = posVal[i];
}
}
delay(20);
}BATTERY
↖ The grounds are connected.