Я хочу управлять сервоприводом с последовательным входом в сочетании с потенциометром. Серво можно контролировать отдельно. Если я комментирую часть кода, такую как последовательный ввод, то я могу управлять сервоприводом через потенциометр. Если я комментирую часть кода потенциометра, то я могу управлять сервоприводом с помощью последовательного входа. Но я хочу управлять комбинацией.
Я уже попробовал следующее: я сделал целое число, чтобы сохранить старое значение, и сделал оператор if, чтобы проверить, было ли изменено старое значение. Конечно, он изменяется, потому что программа всегда считывает измененное значение, которое представляет собой значение потенциометра
Код:
void loop()
{
controlMeter();
}
void controlMeter()
{
int potValue = map(analogRead(aiPot), 0, 1023, 0, 180);
int keyValue = 0;
if(Serial.available())
{
String SkeyValue = Serial.readStringUntil('\n');
keyValue = SkeyValue.toInt();
Serial.println("There is something in serial!");
if (oldValue != keyValue)
{
oldValue = keyValue;
Serial.print("keyValue: ");
Serial.println(keyValue);
servo.write(oldValue);
delay(2000);
}
}
else
{
if (oldValue != potValue)
{
oldValue = potValue;
Serial.print("potValue: ");
Serial.println(potValue);
servo.write(oldValue);
delay(2000);
}
}
}
Я ожидаю, что если я введу 150, то сервопривод перейдет к 150 и останется на150, но если я изменю это значение с помощью потенциометра на 30, то сервопривод должен перейти к 30 и оставаться там.
Любая помощь будет принята.