Я хочу управлять сервоприводом с последовательным входом в сочетании с потенциометром. Сервопривод может управляться отдельно. Если я прокомментирую часть кода, например последовательный ввод, то смогу управлять сервоприводом через потенциометр. Если я прокомментирую часть кода потенциометра, то смогу управлять сервоприводом с помощью последовательного ввода. Но я хочу контролировать в сочетании.
Я уже пробовал следующее: я сделал целое число, чтобы сохранить старое значение, и сделал оператор 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 и остаться там.
Любая помощь будет оценена по достоинству.