Справка

 Содержание

 Поддерживаемое оборудование
   Расширитель ШИМ PCA9685

Расширитель ШИМ PCA9685


При построении робопроекта с большим количеством сервоприводов, обычных возможностей Arduino может быть недостаточно.
Данный контроллер позволит обойти ограничения платы Arduino и управлять множеством сервоприводов без особых затрат ресурсов Arduino. К одной шине контроллера можно подключить до 62 устройств, а в суме это 992 устройств. PCA9685 работает по интерфейсу I2C, поэтому для подключения к Arduino используется только 4 контакта (два цифровых порта и питание):

"Классический" Arduino:
+5v -> VCC (это напряжения только для работы платы, не сервоприводов/светодиодов);
GND -> GND;
Analog 4 -> SDA;
Analog 5 -> SCL.

Старые версии Arduino Mega:
+5v -> VCC (это напряжения только для работы платы, не сервоприводов/светодиодов); GND -> GND;
Digital 20 -> SDA;
Digital 21 -> SCL.

Версии Arduino R3 и позже (Uno, Mega & Leonardo):
+5v -> VCC (это напряжения только для работы платы, не сервоприводов/светодиодов); GND -> GND;
SDA -> SDA;
SCL -> SCL.


Данная плата имеет 16 ШИМ-выходов, то есть можно подключить 16 сервоприводов. Но, если и этого будет недостаточно – на плате есть свободные контакты GND, OE, SCL, SDA, VCC, V+, к которым при помощи 6-жильного кабеля-дюпона можно подключить еще один контроллер PCA9685, а к нему, в свою очередь, еще один. Каждой плате в цепочке должен быть присвоен свой уникальный адрес. Это можно сделать при помощи адресных контактов A0, A1, A2, A3, A4, A5. Базовый адрес для каждой платы является 0x40. Для присвоения уникального адреса нужно использовать капли припоя, чтобы присвоить соответствующий адрес для каждого контроллера. Программно это будет выглядеть так:

Board 0: Address = 0x40 Offset = binary 00000 (плата, которая присоединена к Arduino, без припоя);
Board 1: Address = 0x41 Offset = binary 00001 (припой на А0);
Board 2: Address = 0x42 Offset = binary 00010 (припой на А1);
Board 3: Address = 0x43 Offset = binary 00011 (припой на А0, А1);
Board 4: Address = 0x44 Offset = binary 00100 (припой на А2) и т.д.

Как видно – одновременно можно использовать 6 контроллеров, то есть 96 сервоприводов. Почти все сервоприводы имеют стандартный 3-х контактный разъем подключения. Красный провод подключается к положительному полюсу источника питания (V), коричневый - к отрицательному (G), а оранжевый провод подключается к источнику подачи сигналов управления (S). Большинство сервоприводов предназначено для работы приблизительно на 5 или 6 В. Нужно помнить, что под нагрузкой каждый сервопривод потребляет много тока (более 1 А), поэтому хорошим выбором питания являются: 5В 2A импульсный источник питания, 5В 10A импульсный источник питания, аккумулятор Ni-MH 6 В/4.8 В. Источник питания подключается к клеммнику с контактами V+ и GND.
На плате присутствует 4 монтажных отверстия.

Схема подключения платы расширения:


Документацию можно посмотреть здесь

Характеристики:

модель: PCA9685;
напряжения питания контроллера: 3.3 или 5 В;
питание сервоприводов: до 5-6 В;
частота ШИМ: 40-1000 Гц;
возможность подключения 16 сервоприводов;
возможность подключения до 62 устройств к одной шине;
размер платы: 66 х 25 мм;
габариты: 80 х 25 х 12 мм;
вес: 11 г.


Блоки в FLProg:

Блок для подключения сервопривода через микросхему PCA9685

Блок управления ШИМ выходом микросхемы PCA9685

Блок для записи в значения в произвольный выход микросхемы PCA9685

Блок чтения значения на выходе микросхемы PCA9685

Блок изменения частоты ШИМ микросхемы PCA9685
9

Автор публикации

не в сети 1 неделя

Сергей Глушенко

782
Комментарии: 15Публикации: 391Регистрация: 04-02-2018

54 комментария к “Справка”

  1. ошибка в описании блока «Блок обнаружения изменения числа»

    «Блок служит для обнаружения изменения числа подаваемого на вход «EN» . При изменении значении на выходе»Q» формируется импульс длительностью в один цикл программы. Для блока возможно задание зоны нечувствительности раздельно для каждого направления изменения числа. Эти параметры задаются в редакторе блока.»

    вместо первого «EN»  должно быть  «Value»

    0
  2. что то не так с массивами.
    скетч использовал данные из той же строки другого массива.  менял названия (ставил не совпадающие цифры), удалял/ ставил блоки — (не копировал а притаскивал новый), проверял / менял настройки. есть 3 разных массива. заполненных.  но берёт почему то  из одного … созданного первым.
    костыль  — использование не повторяющихся номеров строк (индексов) .  (помогает)
    ардуино uno. версия FLP- актуал.

    0
  3. Здравствуйте ! Спасибо огромное всем кто внес свой вклад в этот проект! Программа сделана интуитивно понятно и за месяц я дошел до коммуникаций но с протоколом Modbus остановился на ошибке 244 . Scada мастер, Uno слейв  соединены через Max485. Задача кнопкой на Scada включать диод на Uno и на оборот. Подскажите пожалуйста возможные решения этой проблемы и еще в каких случаях назначать пин pe-de ?

    С уважением Влад!

    0
  4. Добрый день!

    В справке по блоку SVCM (отправка переменной через коммуникации) показаны активными два устройства: Arduino Ethernet Wiznet 5100  и ESP8266 WiFi Module. В версии программы 4.3.4 можно выбрать только Arduino Ethernet Wiznet 5100.

    В обновлении 6.3.1 ESP8266 WiFi Module также недоступен для выбора.

    Подскажите пожалуйста, может нужно что-то доустановить или настроить?

    3
  5. Добрый день.

    Параметр “Time” – на этот вход подаётся время регулирования (в миллисекундах).» — так и не смог понять на что именно он влияет… Можно где то узнать что это за параметр?

    0
  6. Добрый день! Мне требуется отправка по UART данных для MIDI протокола. Нашёл на просторах интернета готовый скетч, там отправка происходит вот таким образом


    1. void noteOn(int chan, int note, int velocity) {
          Serial.write( (0x90 | chan) );
          Serial.write(note);
          Serial.write(velocity);
      }

    2. Всю голову сломал как сделать это в данной программе, ничего не получается. Подскажите плиз какие есть варианты.
    3. получается там из массива подставляются переменные и пакетом отсылаются на порт
    4. вообщем вот от сюда брал скетч http://forum.amperka.ru/threads/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5-%D0%B1%D0%B0%D1%80%D0%B0%D0%B1%D0%B0%D0%BD%D1%8B-%D0%BD%D0%B0-arduino-%D0%BA%D1%80%D0%B8%D0%B2%D1%8B%D0%BC%D0%B8-%D1%80%D1%83%D0%BA%D0%B0%D0%BC%D0%B8.15477/
    0
  7. Вопрос: плата Arduino Nano strong (т.е. плата и шилд сразу) при использовании блока матричная клавиатура подключение 2 пин основной 3,4,5,6,7 уже исполняющие
    так вот при такой раскладке после прошивки на 4 пине появляется сигнал и ничего с этим не сделать если-же подключать так-же с 8 по 13 то на 10 он наоборот пропадает и ничем его не получить.
    Flprog стоит 5.3.0 для 64 виндовс, это можно как-то решить т.к. проект готов и затык только в этом (не резать-же шлейф да сейчас такие шлейфы что :)))   )
    спасибо

    0
  8. Вопрос: плата Arduino Nano strong (т.е. плата и шилд сразу) при подключении 2 пин основной 3,4,5,6,7 уже исполняющие
    так вот при такой раскладке после прошивки на 4 пине появляется сигнал и ничего с этим не сделать если-же подключать так-же с 8 по 13 то на 10 он наоборот пропадает и ничем его не получить.
    Flprog стоит 5.3.0 для 64 виндовс, это можно как-то решить т.к. проект готов и затык только в этом (не резать-же шлейф да сейчас такие шлейфы что :)))   )
    спасибо

    0
  9. Приветствую! Подскажите пожалуйста, какова длина/(время) импульса на выходе блока «Установка события по часам реального времени» и минимальная длина/(время) импульса на входе для срабатывания блоков типа «Триггер»? Плата, Arduino UNO.  (Осциллографа нет, а монитором COM порта эти величины с нужной точностью замерять затруднительно.) Или существует формула для этих расчетов?

    0
  10. xatabmail250986

    Здравствуйте, у меня такой вопрос, я хочу запрограммировать Ардуинку на определенный алгоритм вращения шагового двигателя. У меня есть шаговик Nema23 и Драйвер DM556. Я столкнулся с проблемой: В вашей программе для управления шаговиком используется 4 вывода а у меня от драйвера на Ардуино только 2

     2019-11-10 12:23:12

    Аватар

    xatabmail250986

    (PUL, DIR) и земля. Подскажите как я могу реализовать мое подключение с вашей программой?

    0
  11. Здравствуйте уважаемый Сергей Глушенко.

    У меня такой вопрос.

    Есть ли способ понизить скорость мне случайных чисел в данном блоке, как например в блоке «Generator», с функцией «Несимметричный мультивибратор»…? А то данный блок «RANDOM», меняет случайные числа с бешеной скоростью, из-за чего на дисплее не успеваешь разглядеть эти числа…

    0
  12. Здравствуйте, Сергей!

    Прежде всего хочу поблагодарить Вас за прекрасную программу. Мне, как в пошлом,инженеру, очень комфортно создавать свой проект в Вашей среде.

    Но у меня вопрос, на который не нашел ответа: Я создаю проект с участием нескольких контроллеров ESP8266 NodeMCU с OLED дисплеем. Очень не хватает такого модуля и модуля ESP32 WiFi LoRa с OLED дисплеем в предустановке.Мои контроллеры должны выполнять некоторые действия, и обмениваться между собой данными и информацией по WiFi в реальном времени. Причем, радиус действия  WIFI сети каждого из модулей не должен влиять на передачу данных между конечными контроллерами. Поэтому контроллеры самонастраиваются, и записывают данные для входа всех контроллеров WIFI сети в память для постоянного коннекта по цепи (от начального до конечного).  Вопрос: Можно ли в Вашей среде создать подобный алгоритм взаимодействия между контроллерами сети?

    С уважением, Аркадий

    0
  13. Здравствуйте! Не могу понять в чём причина. В счётчике на уменьшение, при подключении переменных к входу R и выходу <L он не считает вниз, а если убрать с R то счёт идёт но, не совсем правильно(на ноль не сбрасывается). Подскажите, в чём может быть причина?

     

    0
  14. Здравствуйте, На сериал порт приходит сообщение 18 байт, мне нужно использовать несколько байт из него. Какой функцией выделить (извлечь) например 5-й байт? Или присвоить переменной значение 5-го байта из сообщения? Спасибо.

    0
  15. Здравствуйте.

    Скажите как сделать так что бы при достижении времени установленного в настройках блока на выходе установится высокий уровень не на 1 минуту, а до времени отключения будильник?

    В данной версии блока будильника высокий сигнал на выходе пропадает через 1 минуту.

    0
  16. Здравствуйте!

    В FLProg есть блок MCP23017.

    Но ка только в «FLProg» начинает компилировать в «IDE» программа ругается и пишет, что нужны библиотеки MCP23x17.h и MCP23017.h.  Без этой библиотеки блок не рабочий.

    Где их можно скачать?

    0
  17. Здравствуйте.  Не могу запустить версию 5.00

    —————————

    flp.exe — Системная ошибка

    —————————

    Запуск программы невозможен, так как на компьютере отсутствует api-ms-win-crt-runtime-l1-1-0.dll. Попробуйте переустановить программу.

    —————————

    ОК

    —————————

    Что делать.

    1
  18. Доброго времени суток! Скажите пожалуйста, какова максимальная частота счета для этого счетчика? При превышении какой частоты счета, следует выбирать «Скоростной счетчик»? Заранее спасибо.

    0

Оставьте комментарий

Войти с помощью: