I2C-адрес
Модуль PCA9685 имеет перемычки для выбора I2C-адреса, расположенные в правом верхнем углу. Эти перемычки необходимы для назначения уникального I2C-адреса каждому модулю PCA9685, когда необходимо подключить несколько модулей к одной шине I2C. Это предотвращает конфликты и обеспечивает корректную связь.
По умолчанию модуль PCA9685 без установленных перемычек имеет базовый адрес 0x40. Обратитесь к изображению ниже, чтобы увидеть наглядно различные комбинации перемычек и соответствующие им I2C-адреса.
Распиновка
⇒ Вход питания двигателей (2-контактная клеммная колодка)
- GND – общий вывод заземления.
- V+ – подаёт распределённое питание на сервоприводы. Рекомендуется подавать на этот вывод 5–6 В постоянного тока.
⇒ Логические контакты (1×6 разъём)
Они предназначен для подключения модуля PCA9685 к плате (Arduino, ESP). Управление совместимо с 3,3 В и 5 В.
- GND — подключается к выводу земли.
- OE (Output Enable, разрешение выхода) — используется для быстрого отключения всех выходов. Когда этот вывод притянут к LOW (низкому уровню), все выходы включены. Если притянуть его к HIGH (высокому уровню), выходы отключаются. Поскольку на модуле есть встроенный подтягивающий резистор к земле, выходы по умолчанию включены.
- SCL — вывод тактового сигнала I2C, подключите к линии тактового сигнала I2C. Может работать с логикой 3,3 В или 5 В, имеет слабую подтяжку к VCC.
- SDA — вывод данных I2C, подключите к линии данных I2C. Может работать с логикой 3,3 В или 5 В, имеет слабую подтяжку к VCC.
- VCC — вывод питания логической части. Обычно принимает напряжение от 3,3 В до 5 В. Убедитесь, что оно соответствует логическому уровню вашего микроконтроллера.
- V+ — подаёт распределённое питание на сервоприводы. Рекомендуется подавать на этот вывод 5–6 В постоянного тока. Хотя возможен подключить источник питания непосредственно к этому выводу, предпочтительнее использовать 2-контактную клеммную колодку. Выводы V+ полезны для каскадирования нескольких модулей PCA9685 и питания всех сервоприводов от одного источника.
Разъём 1×6 на противоположной стороне модуля предназначен для последовательного соединения нескольких модулей PCA9685.
⇒ Подключение сервоприводов (16 цветных разъёмов 1×3)
Выходные разъёмы имеют цветовую маркировку, соответствующую стандартным кабелям, поставляемым с сервоприводами, для простоты подключения. На плате они пронумерованы от 0 до 15, и каждое подключение включает следующие контакты:
- PWM — подключается к ШИМ-выводу сервопривода.
- V+ — подключается к выводу питания сервопривода.
- GND — подключается к выводу земли сервопривода.
Пример
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
#include <Wire.h> #include "PCA9685.h" PCA9685 driver; // Выходы PCA9685 = 12-битные = 4096 шагов // 2.5% от 20 мс = 0.5 мс; 12.5% от 20 мс = 2.5 мс // 2.5% от 4096 = 102 шага; 12.5% от 4096 = 512 шагов // мы будем использовать 112 и 500, чтобы не доводить сервопривод до физических пределов PCA9685_ServoEval pwmServo(112, 500); // (-90deg, +90deg) void setup() { Wire.begin(); // сначала необходимо запустить шину Wire driver.resetDevices(); // программный сброс всех устройств PCA9685 на линии I2C driver.init(); // инициализация драйвера driver.setPWMFrequency(50); // установка частоты ШИМ на 50 Гц } void loop() { driver.setChannelPWM(0, pwmServo.pwmForAngle(-90)); driver.setChannelPWM(1, pwmServo.pwmForAngle(-90)); delay(1000); driver.setChannelPWM(0, pwmServo.pwmForAngle(0)); driver.setChannelPWM(1, pwmServo.pwmForAngle(0)); delay(1000); driver.setChannelPWM(0, pwmServo.pwmForAngle(90)); driver.setChannelPWM(1, pwmServo.pwmForAngle(90)); delay(1000); } |
Пример каскадного подключения
Скачать библиотеку PCA9685 (ZIP)
Скачать документацию PCA9685 (PDF)
Скачать документацию модуля PCA9685 (PDF)












