Статті бази ▾ ← Усі бази знань
Автоматика oCBot
Концепція та філософія11 Ласкаво просимо до екосистеми oCBotІдеологія oCBotСфери призначення та режими роботиПериферійні пристроїСвобода периферіїБазові скрипти автоматизаціїВіртуальні панелі оператораСкладні сценарії та логіка автоматизаціїМультиконтролерністьЗагальний огляд автоматики oCBotАрхітектура та опис
Підтримувані контролери16 Контролер Kincony KC868-A6Підключення живлення й USB на KC868-A6Реле й аналогові виходи KC868-A6Сухі контакти й аналогові входи KC868-A6Шини й роз'єми KC868-A6: RS485, I2C, 1-Wire і рештаЩо зайнято на ESP32 у KC868-A6: карта GPIOЯк зібрати щиток на KC868-A6Контролер Kincony KC868-A16Підключення живлення й USB на KC868-A16Силові виходи KC868-A16: MOSFET замість релеСухі контакти й аналогові входи KC868-A16Шини й мережа KC868-A16: Ethernet, RS485, I2C, 1-WireЩо зайнято на ESP32 у KC868-A16: карта GPIOЯк зібрати щиток на KC868-A16Контролер WT32-ETH01Універсальний ESP32 DevKit (Custom)
Каталог периферійних пристроїв9 Датчики температуриДатчики тискуДатчики рівня рідиниДатчики потоку (витратоміри)Виконавчі механізми (Клапани, Насоси, ТЕНи)Датчики середовища (Вологість, Світло, Тиск)Датчики електричні та вагиОргани керування (Кнопки, Енкодери)Електродвигуни та вентилятори
Складання та Перший запуск (DIY)17 Збирання контролера oCBot своїми рукамиПервинне прошивання та запуск контролераШвидке підключення Wi-Fi через BluetoothПідключення ТЕНів та регуляторів потужностіВибір та підключення електромагнітних клапанівКілька плат PCA9685 на одній шиніПін OE — апаратне зняття всіх виходівПлата PCA9685 зблизька — що на ній є і навіщоПлата розширення PCA9685 — 16 каналів ШІМСервопривід і плата розширення — чому це не працюєТвердотілки на платі розширенняПідключення LCD та OLED дисплеїв по шині I2CДвигун і частотний перетворювач: силове підключенняПромисловий протокол RS485 (Modbus RTU)Частотник Ennera FCE по Modbus: налаштування і діагностикаКалібрування ваг на тензодатчиках (HX711)Усунення типових несправностей
Робота з веб-інтерфейсом17 Головна сторінка (Home)Діаграма процесу (Flow)Сценарії автоматизаціїРедактор скриптівПульти оператораДизайнер пультів HMI DesignerПериферіяПлати та шиниЗагальні налаштуванняОбладнанняТочки монтажуНалаштування графіківОновлення прошивкиНалаштування Wi-FiЛогиПорталПро програму
Написання сценаріїв (C++ Скрипти)10 Огляд скриптівМій перший сценарій: Крок за крокомШІМ-відбір: Як налаштувати клапан правильноНалаштування ПІД-регулятора для стабілізаціїАвтоматизація температурних пауз при затиранні солодуСкрипт ББКРегулювання тискуРозрахунок ABV за температурою париСкрипт «Розрахунок ABV»ABV у сценаріях
Безпека, Хмара та Інтеграція5 Система безпеки oCBot: Захист від аварійСтворення хмарного кабінету UA DistilleryЯк опублікувати звіт про перегонкуШеринг кастомних пультів оператора (HMI)Інтеграція з Home Assistant та MQTT
База знаньАвтоматика oCBotСкладання та Перший запуск (DIY)
#DIY#Складання#Залізо#I2CОновлено: 2026-08-21

Сервопривід і плата розширення — чому це не працює

Плата PCA9685 у всіх туторіалах світу керує сервоприводами — шістнадцятьма одразу, з двох пінів. Логічний хід думки після такого туторіалу: поставити сервомашинку на голчастий кран відбору, підключити її до вільного каналу і керувати краном зі сценарію.

Не вийде. Причина не в тому, що «ще не зробили», а в тому, як влаштована сама мікросхема. Ця стаття показує, де саме ламається схема, і що ставити на кран замість сервоприводу.


Що насправді потрібно сервоприводу#

Сервопривід керується не рівнем напруги й не потужністю, а тривалістю імпульсу. Схема така:

Часова діаграма: кадр 20 мс з керуючим імпульсом 1.5 мс проти каналу oCBot з періодом 1 мс

Мікросхема PCA9685 уміє це робити чудово. При частоті 50 Гц її 12-бітна шкала розкладає кадр у 20 мс на 4096 кроків по 4.9 мкс, і весь робочий діапазон сервоприводу займає кроки приблизно від 102 до 512. Решта шкали не використовується — саме тому мікросхему й ставлять у робототехніку: точності з запасом, а процесор вільний.


Де ламається схема в oCBot#

Частота ШІМ у PCA9685 — один регістр на всю мікросхему. Не на канал, а на всі шістнадцять одразу. Це властивість заліза: змінити частоту одного каналу, не зачепивши решту, неможливо в принципі.

Прошивка oCBot виставляє цим шістнадцяти каналам 1 кГц і робить це при кожному підключенні плати. Частота обрана під наше навантаження: насос, вентилятор і мішалка через драйвер затвора на 1 кГц не гудуть, а підсвітка не мерехтить.

Тепер порахуйте: 1 кГц — це період 1 мілісекунда. Сервоприводу потрібен імпульс тривалістю до 2.5 мс. Імпульс, довший за весь період, не існує — і жодним налаштуванням шпаруватості цього не обійти.

Що вимагає сервопривід Що дає канал плати в oCBot
кадр 20 мс (50 Гц) кадр 1 мс (1000 Гц)
імпульс 0.5–2.5 мс максимум 1 мс, і той — не імпульс, а частка періоду
команда = тривалість імпульсу команда = відсоток потужності
Важливо

Це не помилка налаштування й не те, що вмикається галочкою. Один регістр частоти на всю мікросхему — фізика PCA9685; вибір 1 кГц у прошивці — рішення на користь того навантаження, заради якого плата й додана в oCBot.


Друга плата «під сервоприводи» не рятує#

Ідея виглядає розумною: поставити другу плату з адресою 0x41 і крутити на ній 50 Гц, лишивши першу на кілограмі герців.

Прошивка так не робить. Кожна плата, яку вона піднімає на шині, отримує ті самі 1 кГц — це закладено в процедуру підключення плати, а не в налаштування конкретного слота. Друга плата дасть іще шістнадцять каналів того самого типу, і не більше.


Прошивка не знає пристрою «сервопривід»#

Навіть якби частота була правильна, лишилась би друга половина проблеми — у контролері немає поняття «кут».

Пристрої, які можна прив'язати до каналу плати розширення, — це насос, нагрівач, мішалка, вентилятор. Усі вони керуються однією величиною: потужністю від 0 до 100%. Сценарій каже «насос на 40%», прошивка перераховує це у шпаруватість каналу.

Сервоприводу така команда не потрібна взагалі. Йому треба «поверни на 37 градусів», і 37 градусів — це не 37% потужності, а конкретна тривалість імпульсу з таблиці конкретної моделі машинки. Двох цих сутностей у прошивці немає й не передбачено.


Що ставити на кран замість сервоприводу#

Задача, заради якої зазвичай згадують сервопривід, — керувати відбором. Вона вирішується, просто іншим залізом:

Задача Рішення Де читати
Відбирати дозовано, регулюючи швидкість Електромагнітний клапан + ШІМ-відбір: клапан циклічно відкривається, швидкість задається шпаруватістю ШІМ-відбір
Відкрити або закрити лінію повністю Клапан NC/NO через транзисторний ключ Вибір та підключення клапанів
Плавно змінювати оберти мішалки чи насоса Канал плати розширення в штатному режимі, 0–100% Плата розширення PCA9685
Керувати краном із фіксованими положеннями Моторизований кран або двигун через частотний перетворювач по Modbus Промисловий протокол RS485

Перший рядок — той самий, що закриває 90% випадків. ШІМ-відбір дає рівно те, чого від сервоприводу й хотіли: плавно керовану швидкість відбору зі сценарію, — і робить це дешевшим і надійнішим залізом, без механіки, яка розхитується від пари й вібрації.

Порада

Ще один аргумент проти сервомашинки в дистиляційній обв'язці: це пластикові шестерні поруч із гарячою парою й конденсатом. Клапан або моторизований кран розраховані на цю середу, хобі-сервопривід — ні.


Якщо сервопривід усе одно потрібен#

Буває задача, де без сервомашинки не обійтись — наприклад, механічний покажчик або заслінка з довільним кутом. Чесна відповідь: oCBot цього не вміє, і обходити це через плату розширення не варто.

Робочий шлях — винести сервопривід на окремий вузол: свій мікроконтролер, своя плата PCA9685 на 50 Гц, а з oCBot вони спілкуються командою по MQTT або Modbus. Тоді кожна частина системи працює на своїй частоті й нічого нікому не заважає.


Суміжні статті#