Поворот шагового двигателя

Здраствуйте, у меня такой вопрос про шаговый двигатель (28BYJ-48) и его программирование через ардуино уно. Насколько я понял он имеет 64 шага (каждый шаг имеет 5,625 градусов ). То есть, чтобы ему сделать 1 оборот, нужно ему 64 шага, но на самом деле ему нужно 2050 (вычислено опытным путём). Использовал библиотеку с официального сайта. Осуществлял поворот с помощью кнопки. Что я делаю не так?
Прилагаю код:

#include<Stepper.h>
const int IN1=5;
const int IN2=4;
const int IN3=3;
const int IN4=2;


bool butt;

const int stepsPerRevolution =64;
Stepper mystep(stepsPerRevolution,IN1, IN2, IN3, IN4);

int i=0;

void setup() {
  mystep.setSpeed(150);
  pinMode(9, INPUT_PULLUP);
  Serial.begin(9600);
  
}

void loop() {
  butt=!digitalRead(9);

  if(butt&&butt_flag==false){
    mystep.step(2050);
    delay(500);
    i++;
    Serial.println(i);
    
  }

}

Заранее спасибо!

Коэффициент редукции просто кто то не учел…
Ну или просто забыл, что выходной вал, на самом деле является выходным валом редуктора

_ 2048

Перепроверьте, должно быть 2048 или меньше. А так 32 шага на 64 понижения редуктором.

//Тест мотора 28byj-48 и шкалы для однострелочных часов
// выводы для подключения модуля ULN2003 к Arduino
#define in1 8 //
#define in2 9 //
#define in3 10 //
#define in4 11 //

int dl=3;//длительность (мс) подачи тока в фазу мотора
bool f1=1;//переменные хранения состояния фаз мотора (ток включен,ток отключен)
bool f2=1;//
bool f3=0;//
bool f4=0;//

void setup() {
    pinMode(in1, OUTPUT);
    pinMode(in2, OUTPUT);
    pinMode(in3, OUTPUT);
    pinMode(in4, OUTPUT);
}

void loop() {
 //определяем экспериментально число шагов на полный круг
 for(int i=0;i<2048;i++){//полный круг
 schag_1();
 }
 stoptok();
 delay(2000);

}
///////////////////////////////////////
void schag_1(){//шаг по часовой стрелке
 bool c=f4;f4=f3;f3=f2;f2=f1;f1=c; 
 digitalWrite(in1, f1); digitalWrite(in2, f2); digitalWrite(in3, f3); digitalWrite(in4, f4);
 delay(dl);
}
//////////////////////////////////////
void schag_2(){//шаг против часовой стрелки
 bool c=f1;f1=f2;f2=f3;f3=f4;f4=c; 
 digitalWrite(in1, f1); digitalWrite(in2, f2); digitalWrite(in3, f3); digitalWrite(in4, f4);
 delay(dl);
}
//////////////////////////////////////
void stoptok(){
 digitalWrite(in1, 0); digitalWrite(in2, 0); digitalWrite(in3, 0); digitalWrite(in4, 0);
 }
//////////////////////////////////////


Вот на таком можно оттестировать скетче, с такой стрелкой.

спасибо, всем тем кто помог!