Джойстик в нейтральном положении

Джойстик управляет сервоприводом элерона с отклонением на суммарный угол 110 градусов, т е по 55 градусов в каждую сторону. Так должно быть.
map(analogRead(roll), 0, 1023, 0, 110);
Но в нейтрали он стоит в положении 70. Конструктивно так, нейтраль не по середине. В итоге элерон отклоняется в одну сторону на 70 градусов, а в другую только на 40.
Как программно сравнять углы отклонения элерона в каждую сторону?

Почитать на ночь учебник арифметики за 5 класс.

если я правильно понял
map(analogRead(roll), 0, 1023, 15, 125);

1 лайк

Кто стоит в 70?, джойстик, элерон.

Джойстик стоит в нейтральном положении по середине и в монитор порта выдает 70, а не 55 как должно быть между 0 и 110 .

Вычесть 15…
Без map что выдаёт джойстик в нейтральном и крайних положениях ?

точно, надо отнимать и делить )))

1 лайк

То что он выдает 70 - это не причина, а следствие. Смотреть надо на то, что за значения приходят с аналогового порта…

стыдно такие вопросы на форуме задавать…

При каждом старте программы нужно считывать положение джойстика и высчитывать поправки по осям. И учитывать эти поправки в работе. И не доставать людей глупыми вопросами.

ЗЫ: ну припаяли китайцы потенциометр криво, что ж теперь, в депрессию впадать? :slightly_smiling_face:

1 лайк

такие джойстики (ИМХО) сразу в мусорку, управлять реальными девайсами не пойдут, так, на поиграться

1 лайк

Решил проблему смещением точки приложения силы, т е сдвинул кабанчик элерона.