Сервопривід на платі PCA9685 — режим 50 Гц
Написано для прошивки 0.2.205 (коміт 310a825) · порталу 0.0.216Можливо, застаріло: поточна прошивка 0.2.237, поточний портал 0.0.330
Плата PCA9685 у всіх туторіалах світу керує сервоприводами — шістнадцятьма одразу, з двох пінів. В oCBot вона з'явилась для іншого: насоси, вентилятори, мішалки й твердотілки на 1 кГц. З версії 0.2.179 плату можна перевести в режим сервоприводів — але цілу плату, не окремий канал. Хто цього не знає, переводить плату з насосами в 50 Гц і отримує насос, що гуде й сіпається.
Ця стаття — про те, чому режим один на плату, як підключити сервомашинку, щоб вона не просаджувала контролер, і куди її ставити, а куди ні.
Що потрібно сервоприводу#
Сервопривід керується не рівнем напруги й не потужністю, а тривалістю імпульсу:
- кожні 20 мілісекунд (50 разів на секунду) на сигнальний провід приходить один короткий імпульс;
- тривалість імпульсу — і є команда: близько 0.5 мс — крайнє положення в один бік, 1.5 мс — середина, 2.5 мс — крайнє в інший;
- решту кадру сигнал лежить у нулі, і це нормально.
У звичайному режимі плата працює на 1 кГц — період 1 мс. Імпульс на 2.5 мс у такий період не влазить, тож сервоприводу потрібні саме 50 Гц.
Один режим на всю плату#
Частота ШІМ у PCA9685 — один регістр на всю мікросхему, не на канал. Це властивість заліза. Тому в oCBot режим задається для плати цілком:
| Режим плати | Для чого | Команда каналу |
|---|---|---|
| «ШІМ 1 кГц — насоси, нагрів, вентилятори» | насос, нагрівач, мішалка, вентилятор, твердотілки | потужність 0–100 % |
| «Сервоприводи 50 Гц» | лише тип периферії «Сервопривід» | положення 0–100 % = імпульс 500–2500 мкс |
- Прошивка не дасть змінити режим, поки на платі є периферія іншого режиму: спершу перенесіть або видаліть її.
- Потрібні і насоси, і сервоприводи — ставте дві плати з різними адресами (наприклад, 0x40 під ШІМ і 0x41 під сервоприводи). Як задати адресу — у статті Кілька плат PCA9685 на одній шині.
- Прямого підключення сервоприводу до піна контролера немає й не буде: вільних GPIO на KC868-A6 і A16 немає.
Підключення і живлення#
| Від | До | Примітка |
|---|---|---|
| контролер 3V3 / GND / SDA / SCL | PCA9685 VCC / GND / SDA / SCL | OE не підключати |
| блок живлення 12 В | DC-DC 12→5 В, 3 А | той самий блок, що живить контролер |
| DC-DC OUT+ / OUT− | клема V+ / GND плати | між ними конденсатор 1000 мкФ, 10–16 В |
| SG90 помаранчевий / червоний / коричневий | канал: PWM / V+ / GND |
Не живіть сервоприводи від 3.3 В чи від логіки плати. Пусковий струм SG90 — до 0.7 А на кожен, і просідання на спільній лінії перезапускає контролер посеред прогону. Сервоприводам — окремі 5 В на клему V+, земля спільна з контролером.
Що налаштувати в інтерфейсі#
- «Плати розширення» → «Додати» → шина I2C → «ШІМ PCA9685 — 16 каналів», адреса, «Режим виходів» → «Сервоприводи 50 Гц».
- «Периферія» → «Додати» → тип «Сервопривід» → плата PCA9685, канал.
- Положення задається у відсотках ходу: 0–100 % відповідає імпульсу 500–2500 мкс. Від'ємне значення відпускає привід — імпульси знімаються, і машинка перестає тримати положення.
У сценаріях сервопривід потрібен насамперед у «Відбір / приймач»: привід розподільника «Сервопривід (лійка)» повертає лійку над приймачами, а положення для кожного з шести виходів задаються у відсотках ходу.
Режим 50 Гц і тип «Сервопривід» складено за даташитом і на залізі ще не ганяли. Перед прогоном перевірте крайні положення вашої машинки: 500–2500 мкс — типовий діапазон, у конкретної моделі упори можуть бути ближче, і тоді на 0 чи 100 % вона впиратиметься й грітиметься.
Куди сервопривід не ставити#
SG90 розвиває близько 1.8 кг·см — цього досить повернути легку лійку, але замало для крана відбору. До того ж це пластикові шестерні поруч із гарячою парою й конденсатом. Для відбору є залізо, розраховане на цю роботу:
| Задача | Рішення | Де читати |
|---|---|---|
| Відбирати дозовано, регулюючи швидкість | Електромагнітний клапан + ШІМ-відбір | ШІМ-відбір |
| Відкрити або закрити лінію повністю | Клапан NC/NO через транзисторний ключ | Вибір та підключення клапанів |
| Плавно змінювати оберти мішалки чи насоса | Канал плати в режимі ШІМ 1 кГц | Плата розширення PCA9685 |
| Кран із фіксованими положеннями | Моторизований кран або привід по Modbus | Промисловий протокол RS485 |
Суміжні статті#
- Плата розширення PCA9685 — плата в режимі ШІМ: насос, нагрівач, мішалка на каналі.
- Кілька плат PCA9685 на одній шині — друга плата під сервоприводи: адреси й ланцюжок.
- Плата PCA9685 зблизька — силове коло V+, яке й придумане під сервоприводи.
- ШІМ-відбір: як налаштувати клапан правильно — керувати швидкістю відбору без механіки.
Сервопривід SG90, плата PCA9685 і DC-DC 5 В — у каталозі.