сайт для палких паяльників

PCA9685 – это 16-ти канальный 12-разрядный контроллер. Частота ШИМ настраивается в пределах от 24 до 1526 Гц. Хотя на плате от Adafruit написано от 40 до 1000 Гц. С помощью ШИМ контроллера можно управлять яркостью светодиодов, сервоприводами, и другими устройствами, где в качестве управляющего сигналы применяется ШИМ сигнал.

PCA9685 PCA9685

PCA9685 PCA9685

Контроллер управляется по шине I2C. На этой плате есть две группы разъемов для шины I2C с двух сторон. Что позволяет подключать к шине несколько плат последовательно или подключать другие устройства к шине I2C. Большинство модулей имеет только одну группу контактов и иногда приходиться делать разветвители. Здесь об этой проблеме позаботились.

На плате есть перемычки, с помощью которых можно установить адрес устройства отличный от стандартного. Поэтому если 16 каналов Вам мало можно
последовательно включить несколько таких плат, установив перемычками на каждой свой адрес.

Питание контроллера и выходов ШИМ каналов разделено и может быть от 3 до 5 вольт. Для ШИМ каналов допускается максимальное напряжение 6 Вольт. Питание для ШИМ каналов можно подавать на штырьки (V+) или через клему. На плате есть место для фильтрующего конденсатора,
который в этом комплекте не шел, но я рекомендую его впаять. При больших нагрузках, питание может быть не стабильным, что может отрицательно сказываться на работе управляемых устройств. Емкость конденсатора не указана. Я выбрал наибольший, который поместился и не мешал монтажу платы.

ШИМ контроллер приобретался специально для управления сервоприводами и именно о применении ШИМ для управления сервами и пойдет дальше речь. Сервоприводы, как Вы поняли, управляются ШИМ сигналом.  Подробнее о параметрах сигнала для управления сервами и об устройстве сервоприводов читайте в статьях:

Управление сервоприводом (сервомашинкой) с помощью микроконтроллера ATMega.
Raspberry Pi – ШИМ и Сервопривод

Форма сигнала для управления сервой имеет форму, изображенную на рисунке. Частота 50 Герц. Минимальная длительность импульса 1 мс.
Максимальная длительность 2 мс. т.е. скважность ШИМ-а для управления сервами никогда не должна быть 0% и никогда не будет 100%.

Servo PWM

Весь диапазон изменений сигнала лежит на участке, отмеченном красной стрелкой. Т.е. Вам никак не получится использовать все 4096 шагов. В этот промежуток помещается всего 205 шагов. Т.е. Серва может занять всего 205 положений, а не 4096. Поэтому 12-разрядный ШИМ контроллер это совсем не много как могло показаться сразу.

Соответственно один шаг будет составлять примерно 0,49 % от всего диапазона сервопривода. Например, если Ваша серва имеет максимальный угол поворота 90 градусов, то изменение скважности ШИМ один шаг – это 0,44 градуса.

Servo

Для этого сервоконтроллера, я написал свою библиотеку, хотя в интернете можно найти массу примеров, но все же я не нашел того, что мне нужно применительно к сервоприводам.
А именно:

Установка положения сервопривода в процентах

Мне нужно задавать положение серв в процентах. Т.е. от 0 до 100%. А также от -100% до 100% если механизм имеет среднее положение и должен отклоняться в обе стороны.

Реверс

Реверс необходим для изменения направления работы сервопривода. Например, если в исполнительном устройстве сервопривод перевернуть, то это свойство избавит от необходимости что-то менять в кое программы. Достаточно будет только изменить свойство канала.

Настройка диапазона

Иногда требуется ограничить или расширить диапазон поворота сервоприводов. Например, серва может поворачиваться на угол 60 градусов, но для вашего устройства это много, вы хотите ограничить, скажем, до 45 градусов. А иногда сделать ограничения только в одну сторону. Кстати, диапазон поворота сервы можно не только сузить, но и немного расширить. Расширить диапазон сервы до 120% процентов можно без проблем. Дальше – на свой страх и риск.

Триммирование

Триммирование – установка сервоприводов в определенное начальное положение, которое приведет исполнительный механизм в нулевое положение.
Триммирование всегда приходиться делать, чтобы нивелировать механические погрешности при сборке конечного изделия.

Настройка экспонент

И наконец – настройка кривых. Т.е. занижение чувствительности к управляющему сигналу вблизи нулевых значений.

Servo Exponent

Все эти свойства хорошо известны тем, кто занимается радиоуправляемыми моделями, в современных радиоуправляемых системах эти и многие другие свойства уже давно существуют.

Такой подход позволяет отвязать алгоритмы управления от свойств PWM каналов, сервоприводом и исполнительных механизмов, и сделать алгоритмы управления более универсальными.

ШИМ контроллер я использую с микрокомпьютером Raspberry Pi под Raspbian. Библиотека и примеры написаны на Python.
Скачать библиотеку с примерами можно по ссылке:
https://github.com/avislab/sensorstest/tree/master/PCA9685

Всем успехов.

см. также:

Управление сервоприводом (сервомашинкой) с помощью микроконтроллера ATMega.
Raspberry Pi – ШИМ и Сервопривод

Смотри также:

2 комментария: PWM контролер на базе микросхемы PCA9685

Translate
Архіви

© 2011-2017 Андрій Корягін, Кременчук - Київ, Україна