#include <Servo.h>
int pot1;
int pot2;
float pot1Scaled;
float pot2Scaled;
float pot1Smoothed;
float pot2Smoothed;
float pot1SmoothedPrev;
float pot2SmoothedPrev;
Servo servo1;
Servo servo2;
void setup() {
pinMode(A0, INPUT);
pinMode(A1, INPUT);
Serial.begin(115200);
servo1.attach(4);
servo2.attach(5);
servo1.writeMicroseconds(1650);
servo2.writeMicroseconds(1650);
}
void loop() {
pot1 = analogRead(A0);
pot2 = analogRead(A1);
// scale all pots for the servo microseconds range
pot1Scaled = (pot1 - 512) + 1500;
pot2Scaled = (pot2 - 512) + 1500;
// smooth pots
pot1Smoothed = (pot1Scaled * 0.02) + (pot1SmoothedPrev * 0.98);
pot2Smoothed = (pot2Scaled * 0.02) + (pot2SmoothedPrev * 0.98);
// bookmark previous values
pot1SmoothedPrev = pot1Smoothed;
pot2SmoothedPrev = pot2Smoothed;
Serial.print(pot1Smoothed);
Serial.print(" , ");
Serial.print(pot2Smoothed);
Serial.println(" , ");
// write servos
servo1.writeMicroseconds(pot1Smoothed);
servo2.writeMicroseconds(pot2Smoothed);
delay(5); // run loop 200 times/second
}