Сделал градусник с вертикальной шкалой , подключил датчик , при считывании температуры раз в N минут двигатель вращает направляющую, стрелка едет к температуре на N сигналов. При увеличении температуры - стрелка штатно едет вверх, при уменьшении - почему то так же вверх, хотя должна вниз .Все данные в порт выводятся верные ( температура, в какую поз по сигналам нужно ехать и т.д.) Помогите разобраться. Вот часть кода с движением :
void moveStepperToPosition(int position) {
long targetPosition1 = position * stepsPerDegree;
Serial.print("dvijenie v poz: ");
Serial.println(targetPosition1);
if (stepper.currentPosition() < targetPosition1) {
Serial.println("dvigaemsya vverx...");
stepper.moveTo(targetPosition1);
stepper.runToPosition();
} else if (stepper.currentPosition() > targetPosition1) {
Serial.println("dvigaemsya vniz...");
stepper.moveTo(targetPosition1);
stepper.runToPosition();
}
else {
Serial.println("yje tyt .");
}
while (stepper.distanceToGo() != 0) {
stepper.run();
delay(1);
position - градусы с датчика
stepsPerDegree - количество шагов двигателя на 1 градус ( задаю сам в зависимости от размеров шкалы градусника).Когда тестовый код запускаю ,указываю текущую позицию условно 1000, а движение в поз. 500, то едет вниз на 500 сигналов исправно ,в моем же коде в любом раскладе едет вверх.