Однострелочные часы-спидометр



На шаговике хочу сделать часы по подобию-симбиозу таких. Не подскажите простой онлайн редактор нетипичных круговых шкал с достаточно точной отрисовкой положения рисок? Мотор такой, а у него шагов 2048, что не кратно 144.
28BYJ48-Stepper-Motor-Gear-Ratio-Explanation

У меня есть два (не онлайн, правда). Подойдёт ли Вам, сами смотрите.

Спасибо, нашёл такой рисовальщик
https://soulmare.github.io/scale_master/#


Даже попробовал, что то типа такого надо будет делать.

Степпер полон сюрпризов. Пишут
http://robotosha.ru/arduino/stepper-motor-28byj-uln2003-arduino.html
… в действительности передаточное число равно 63.68395:1. Это означает, что в рекомендованном полушаговом режиме мы имеем: 64 шага на оборот мотора помноженное на передаточное число 63.684 ≈ 4076 шагов на полный оборот…
Но на практике нет. В шаговом режиме 2048 вместо 2038.


Размеры шкалы напечатанной тоже не совсем соответствуют размерам поставленным в онлайн редакторе, но в целом под конкретный мотор можно сделать конкретную шкалу.

//Тест мотора 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() {
 // тестируем шкалу на 144 деления с шаганием стрелки через полсекунды 
 for(int j=0;j<144;j++){
 for(int i=0;i<12;i++){//смещение на одно деление шкалы (всего 144 деления) 
 schag_1();
 }
 stoptok();
 delay(500);
 }
 for(int k=0;k<320;k++){//переход от 12 часов к 0 часов (желательно 144*12+320=2048!!!)
 schag_1(); 
 }
/*
 //определяем экспериментально число шагов на полный круг
 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);
 }
//////////////////////////////////////

Нашёл:

Видимо в природе их два типа бывает.

Видимо их в природе бывает столько, сколько шестеренок на верстаке китайском найдётся ))