использование шагового двигателя для привода стрелки прибора

Вопросы об управлении шаговыми двигателями
by7
Сообщения: 1
Зарегистрирован: 07 июл 2019, 13:38

использование шагового двигателя для привода стрелки прибора

Сообщение by7 » 07 июл 2019, 14:24

собственно, задача в заголовке. привод должен двигать стрелку спидометра
привод-донор взят из панели приборов автомобиля( с двумя обмотками)
управление реализовал через библиотеку Stepper. Привод имеет внутренние механические упоры для крайних положений, поэтому за 0 взято левое крайнее положение (из крайнего в крайнее положение около 500 шагов) рабочий диапазон - 450 шагов( по шкале спидометра)
суть проблемы: при имитации кратковременного сигнала на входе датчика скорости стрелка останавливается на нужной позиции и возвращается назад в исходное, но при удержании скорости стрелка уходит за рабочий диапазон и при пропадании сигнала скорости возвращается назад, но уже не в исходное положение (0) - не могу понять почему это происходит?
код:
void loop() {
int ST=ceil(SPEED*2.22-pos); //дэльта расчетного и факт положения
int pos=ceil(SPEED*2.22); //факт позиция стрелки

servo.step(ST); //повернуть серву с учетом дэльты

lcd.setCursor(2,0);
lcd.print(ODO);
lcd.setCursor(2,12);
lcd.print(pos); //вывод расстояния на дисплей


if ((millis()-lastturn)>1000){ //если сигнала нет больше 2 секунды
SPEED=0; //считаем что SPEED 0
servo.step(-pos);


Вернуться в «Шаговые двигатели и драйверы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя