Help

 Content

 Supported hardware
   Expander PWM PCA9685

Expander PWM PCA9685


When you build project with a large number of servos, the conventional capabilities of the Arduino may not be enough.
This controller will allow you to bypass the restrictions of the Arduino to control multiple servos without much overhead the Arduino. To one bus controller can connect up to 62 devices, and in sume is 992 devices. PCA9685 operates on the I2C interface, so to connect to the Arduino is only used 4 pins (two digital port and Board):

The "Classic" Arduino:
+5v -> VCC (this voltage only for Board, not servos/LEDs);
GND -> GND;
Analog 4 -> SDA;
Analog 5 -> SCL.

The old version of the Arduino Mega:
+5v -> VCC (this voltage only for Board, not servos/LEDs); GND -> GND;
Digital 20 -> SDA;
Digital 21 -> SCL.

Version R3 and later Arduino (Uno, Mega & Leonardo):
+5v -> VCC (this voltage only for Board, not servos/LEDs); GND -> GND;
SDA -> SDA;
SCL -> SCL.


This Board has 16 PWM outputs, it is possible to connect 16 servos. But if that is not enough – the Board is free contacts GND, OE, SCL, SDA, VCC, V+, which by means of 6-wire cable DuPont can connect another controller PCA9685, and it, in turn another. Each Board in the chain must be assigned a unique address. This can be done using the address contacts A0, A1, A2, A3, A4, A5. The base address for each Board is 0x40. To assign a unique address you need to use a drop of solder to assign the appropriate address for each controller. Programmatically it would look like this:

Board 0: Address = 0x40 Offset = binary 00000 (the fee that is attached to the Arduino, without solder);
Board 1: Address = 0x41 Offset = binary 00001 (solder on А0);
Board 2: Address = 0x42 Offset = binary 00010 (solder on А1);
Board 3: Address = 0x43 Offset = binary 00011 (solder on А0, А1);
Board 4: Address = 0x44 Offset = binary 00100 (solder on А2) etc.

As you can see – you can use 6 controllers, that is, 96 servos. Almost all servos are standard 3-pin connector. The red wire connects to positive pole of power source (V), brown to negative (G), and the orange wire connects to the power supply control signals (S). Most servos are designed to work for about 5 or 6. you Need to remember that under load, each servo consumes a lot of current (over 1 A), so a good choice of food are: 5V 2A switching power supply, 5V 10A switching power supply, Ni-MH rechargeable battery 6 V/4.8 V. The power supply is connected to the terminal Board with the contacts V+ and GND. On the Board there is 4 mounting holes.

Connection diagram extension Board:


The documentation can be viewed here

Features:

model: PCA9685;
supply voltage of controller: 3.3 or 5 V;
the power to the servos: 5-6;
PWM frequency: 40-1000 Hz;
the ability to connect 16 servos;
the ability to connect up to 62 devices on the same bus;
Board size: 66 x 25 mm;
dimensions: 80 x 25 x 12 mm;
weight: 11 g


Blocks in FLProg:

Block to connect the servo using the PCA9685 chip

The control block PWM output of the chip PCA9685

Block to record the values in an arbitrary output chip PCA9685

Block read the value at the output of the chip PCA9685

Block changes the frequency of the PWM chip PCA9685

 

 


10

Publication author

759
Comments: 15Publics: 389Registration: 04-02-2018

53 thoughts on “Help”

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

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

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

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

    0
  3. Добрый день. помогите с блоком шаговый мотор. при добавлении второго мотора ( кнопка новый) ничего не происходит.

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

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

    0
  5. “Переменная (Тэг) в области памяти Holding Registors внешнего слейва опрашиваемого с помощью мастера на данном контролере.” – не хватает запятых?

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

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

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

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

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

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

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

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

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

    0
  12. xatabmail250986

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

     2019-11-10 12:23:12

    Аватар

    xatabmail250986

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

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

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

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

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

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

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

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

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

     

    0
  16. Здравствуйте подскажите как округлить показания датчика до десятых чтобы температура выводилась в виде 10,1 а не 10,12.

    0
    • Заходишь в параметры блока конвертации строк, там есть параметр “Количество знаков после запятой”

      1
  17. Добрый вечер!
    Как определить и записать максимальное значение аналогового входа за минуту, и записать его на флешку?

    -1
  18. Здравствуйте! Подскажите пожалуйста как создать двойное фазоимпульсное управление в char, для этой схемы.

    Заранее огромное спасибо!

    1
  19. Добрый день. Подскажите пожалуйста как откорректировать датчик дс18б2хх   есть отклонения 1-2 градуса в зависимости  от температуры. Заранее спосибо.

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

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

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

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

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

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

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

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

    0
  23. здравствуйте. есть ли модуль поддержки драйверов с управлением step-dir-enable? если нет то когда планируется?

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

    —————————

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

    —————————

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

    —————————

    ОК

    —————————

    Что делать.

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

    0
  26. Доброго времени суток. Блок “умножение” FLProg 4.2.4 версия под Linux ( ось mint 19.1). умножает в 10 раз более установленного значения . Вставить скрин не  получается.

    0
  27. Драйвер светодиодов MAX7219 в программе flProg версии 4.2.4 не работает. По крайней мере с семисегментными индикаторами. Попробовал в другой версии (2.5.1) – все работает корректно.

    0

Leave a Comment

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