PCA9685. Расширяем аналоговые порты Arduino

Тема в разделе "Arduino & Shields", создана пользователем Nikolos, 14 янв 2018.

  1. Nikolos

    Nikolos Нерд

    Добрый день/вечер уважаемые форумчане.
    Всех с прошедшими новогодними праздниками!!!

    Прошу Вашей помощи.
    Купил себе недавно плату PCA9685 - расширитель пинов для Ардуино.
    Задачка: хочу расширить аналоговые/цифровые входы-выходы на ардуино. Не получается найти-прочитать данные с платы.

    Поясню:

    Подключить её проблем не составило. заработала быстро.
    [​IMG]

    Облазил интернет, перебрал три библиотеки к данной плате:

    iarduino_MultiServo.h
    Adafruit_PWMServoDriver.h
    pca9685.h

    Каждая из библиотек дает стандартный набор функций: положить цифровые данные, положить аналоговые данные, прочитать аналоговые данные - *если таковые были записаны!!!* - вот в этом то вся и проблема.

    Данная ситуация не решает мою задачу
    Планирую подключить данное устройство, занюхивать на последнем 15-м пине вольтаж который буду подавать через потенциометр и приводить в достойный вид при помощи стандартной функции map(), а рядом. на 14 пине при этом говорить светодиоду - "светись ярче" или "тусклее".

    ====================================================================================
    Ещё раз, коротко:
    Хочу сделать так:
    sensorValue = MSS.analogRead(15);
    и получить данные от 0 до 4095 в зависимости от того, на сколько накручу ручку потенциометра.

    Подскажите где искать пожалуйста.
    Прикладываю все 3 библиотеки к плате.
    Заранее огромное спасибо!!
     

    Вложения:

  2. ostrov

    ostrov Гуру

    Это ШИМ контроллер, как вы с него аналоговый сигнал считывать хотите?
     
  3. Nikolos

    Nikolos Нерд

    т.е. данная железка не сможет расширить 5 портов ардуино для считывания с себя ? только управление одностороннее? не считывание? =(

    можете посоветовать железку для управления-считывания (туда-сюда) ?
     
  4. это ШИМ драйвер, на вход он не работает )

    расширить входы АЦП можно внешним АЦП, например ADS1115, но проще мультиплексором.

     
  5. ostrov

    ostrov Гуру

    Я за мультиплексор. А если его скорости недостаточно, то MCP3008 тоже неплох.

    Не понятно только зачем считывать состояние ног которые сами и устанавливаете?
     
  6. Nikolos

    Nikolos Нерд

    Принимается, большое спасибо за ответы!
    Нашёл сразу же недорогой вариант на али. 30 руб за 1 деталь, и 100 руб за доставку, что бы не ждать месяц..

    ostrov, как раз в том то и проблема получилась с данной железкой, что я хочу считывать состояние с ног в цифровом виде, а устанавливать значения ручкой аналогового переменного резистора.
    Вроде бы железка CD74HC4067 полностью удовлетворяет изначальной задаче. Скорость считывания достаточна раз в секунду.
    Продолжаю прорабатывать вопрос.
    Посмотрел mcp3008 - понял что это не совсем то, что нужно, т.к. ног для подключения 8, ног для работы тоже 8.. маловато..

    Ещё раз спасибо за варианты ответов. Буду информировать о ходе действий.
    В ближ. время хочу купить с али CD74HC4067 штучки 3..
     
    Максим B нравится это.
  7. Толик Иванов

    Толик Иванов Administrator Администратор

  8. Nikolos

    Nikolos Нерд

    Спасибо, посмотрю, модуль за 30р за 1 шт меня прельщает больше =).
    CD74HC4067 заказал 5 штук. жду посылочку. Говорят 2-3 недели.
     
  9. Nikolos

    Nikolos Нерд

    Уважаемые коллеги!
    Прошу Вашей помощи.
    Планирую собрать при помощи всей этой конструкции БМС на Артуино.

    Что было сделано:
    Прошдутирован интернет в поисках подобного. найдена 1 нераскрытая тема на англ:
    https://forum.arduino.cc/index.php?topic=487113.0

    ......................
    [​IMG]
    как вы помните, я заказал CD74HC4067, они ко мне идут. все ок.
    Подстава заключается в том, что у меня 14 элементов батарей по 2.4 - 4.17 вольта (минимум-максимум)

    Одной земли у них не может быть, к сожалению. соединены элементы последовательно, как на рисунке выше.
    Помогите пожалуйста в решении данной головоломки...
    есть вариант намутить 14 отдельных контроллеров адруино и повешать занюхивать состояние и предавать это состояние на главную ардуину, которая будет обрабатывать и собирать данные - но это не бюджетный вариант.... нужно более простое решение, которое как я думаю будет реализовано через резисторы, диоды...

    подобный вариант тоже продумывал:
    [​IMG]
    он не корректен, т.к. последнее колено батареи показывает общую сумму батарей, а нужно независимое занюхивание.
    Заранее спасибо за советы.
    п.с. речь не идет про стабилизацию чего то, или ограничение тока зарядки, или тока разрядки... нужно только замерять вольтаж на банках. банки по 6500 ма/ч.