Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
и не способны проследить за цепочкой уравнений
Грубо говоря, я хочу написать написать управление для сервомотора: у меня есть текущее положение оси привода и текущая скорость её вращения, я хочу её остановить в заданном положении.
Таким образом, реальное положение каретки слегка отличается от теоретического, я полагаю, что это из-за неучтённого трения: чем ближе к нулю, тем меньше подаваемое напряжение, и однажды оно уже не может бороться с трением. Борьба с этим феноменом будет темой одной из следующих статей. Stay tuned!
В распоряжении имеется оптический энкодер (1000 пульсов на оборот), электродвигатель (750 rpm при 12В без нагрузки), драйвер L6201 и atmega 328 (arduino nano).
Ну… ну… Не получится. Я на это потратил довольно много времени. Используя исключительно предложенный в статье метод, добиться точного позиционирования невозможно в принципе.
Оптически энкодер 1000/оборот и ATMega не имеющая аппаратной схемы работы с энкодером (как у серий STM32, например) — это тупик. «Дребезг» энкодера программными методами не давится. Даже с использованием 72-х МГц проца софтверная обработка (на прерываниях) не справляется (проверял ради эксперимента для энкодера 512/оборот), не говоря уж о древней atmega.
Я использую «бороться» как «уменьшить влияние», а не как «полностью избавиться».
А вот тут мне стало очень интересно, так как в моём уже есть борьба с дребезгом, поняли ли вы, как я считываю значение энкодера?
Совсем не понимаю, почему вы упираете на железную поддержку, железо или софт -принципиальной разницы нету, железо не восстановит магически потерянные данные.
Фраза про «принципиальной разницы нету» и «магически потерянные данные» говорит мне о том, что смотреть что такое quadrature encoder jitter и способы компенсации, Вы просто не стали.
Проблемы с программным опросом могут быть если..
Обратите внимание, что Alexeyslav
Скажите, пожалуйста, почему вы начисто игнорируете (я два раза уже про это говорил) наличие третьего канала для борьбы с уплыванием?


Мысль о «фильтрации» jitter с помощью тригера шмитта не стал комментировать, что бы не обидеть.
Математика на пальцах: ардуино головного мозга или линейно-квадратичный регулятор для управления электродвигателем