Движение шагового двигателя Arduino

Сделал градусник с вертикальной шкалой , подключил датчик , при считывании температуры раз в 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 градус ( задаю сам в зависимости от размеров шкалы градусника)


Ответы (0 шт):