Это мои эксперименты с сервомашинкой. Обычно сервомашинка
выглядит примерно так:
В сервомашинке положение выходного вала определяется
переменным резистором связанным с двигателем через редуктор. Имеющуюся
у меня сервомашинку курочить было жалко. Найти неисправную не удалось.
Поэтому в качестве сервомашинки использовал переменный резистор с
двигателем. Чем не сервомашинка?
У него двухступенчатый червячный редуктор. Для эксперименов
оказался даже лучше, чем настоящая сервомашинка. Здесь есть что-то
вроде муфты, которая начинает проскальзывать в крайнем положении резистора,
а не клинит. В своих запасах нашел плату для управления шаговыми двигателями.
Ее и использовал для своих экспериментов.
К ней подключил этот резистор с двигателем и еще
один переменный резистор для управления вот по такой схеме:
Логика управления проста. Через СОМ порт передается
положение сервомашинки (0...1023). Проверяется текущее положение по
переменному резистору. Если оно меньше нужного, то двигатель вращаетсяв
в одну сторону. Если больше, то в другую. Если соответствует заданному,
то стоит на месте. Положение резистора определяетс АЦП в микроконтроллере.
АЦП 10битный. Поэтому и такое значение положения 0...1023. Текущее
и заданное положение передается по СОМ порту и отображено на картинке:
Красной линией изображено заданное положение, синей
- текущее. Видно отклонение текущего положения от заданного. Это связано
с медлительностью резистора. Он делает полный оборот примерно за 2сек.
при 12В.
Во втором случае положение задается не через СОМ
порт,а вторым переменным резистором. Вот график положения:
В результате экспериментов выяснилось, что резистор
имеет не линейную характеристику. Это плохо влияет на точность положения.
И еще такое простое управление плохо подходит для управления сервомашинки.
Двигатель дергается около своего заданного положения, а не стоит как
положено. Без ПИД управления здесь не обойтись.
Эксперименты продолжаются...