#include <ESP32Servo.h>
Servo myservo1;
Servo myservo2;
Servo myservo3;
int potpin1 = 33;
int potpin2 = 34;
int potpin3 = 35;
int val1, val2, val3;
int prejsnjaVrednost1 = 90;
int prejsnjaVrednost2 = 90;
int prejsnjaVrednost3 = 90;
const int prag = 3;
int povprecjeBranja(int pin) {
int vsota = 0;
for (int i = 0; i < 5; i++) {
vsota += analogRead(pin);
delay(2);
}
return vsota / 5;
}
void postopniPremik(Servo &servo, int &trenutniKot, int zeljeniKot) {
int korak = (trenutniKot < zeljeniKot) ? 1 : -1;
while (trenutniKot != zeljeniKot) {
trenutniKot += korak;
servo.writeMicroseconds(map(trenutniKot, 0, 180, 500, 2500));
delay(10);
}
}
void setup() {
myservo1.attach(21);
myservo2.attach(22);
myservo3.attach(23);
Serial.begin(9600);
}
void loop() {
val1 = povprecjeBranja(potpin1);
val1 = map(val1, 0, 4095, 180, 0); // Obrnjena smer vrtenja
if (abs(val1 - prejsnjaVrednost1) > prag) {
postopniPremik(myservo1, prejsnjaVrednost1, val1);
}
val2 = povprecjeBranja(potpin2);
val2 = map(val2, 0, 4095, 180, 0); // Obrnjena smer vrtenja
if (abs(val2 - prejsnjaVrednost2) > prag) {
postopniPremik(myservo2, prejsnjaVrednost2, val2);
}
val3 = povprecjeBranja(potpin3);
val3 = map(val3, 0, 4095, 180, 0); // Obrnjena smer vrtenja
if (abs(val3 - prejsnjaVrednost3) > prag) {
postopniPremik(myservo3, prejsnjaVrednost3, val3);
}
delay(20);
}