1. Уважаемый Гость! При написании вопросов в раздел форума [ArduCopter] Вопросы, проблемы и решения обязательно придерживаться шаблона сообщения, оговоренного в правилах раздела! Если сообщение не будет оформлено должным образом, то и ответ на вопрос будет с наименьшим приоритетом. Старайтесь дать максимально полную информацию по вашей проблеме, чтобы можно было более детально рассматривать вопрос!
    Скрыть объявление
  2. Уважаемый Гость! Хотите получать кэшбэк с покупок в online-магазинах? Сервис "LetyShops" дает такую возможность!
    Скрыть объявление
  3. Друзья! Для нашего ресурса необходим дополнительный объем пространства в облаке Dropbox. Подробнее.
    Скрыть объявление

Датчик тока на Allegro ACS758LCB-100U

Тема в разделе "Уголок любителей паяльника", создана пользователем raefa, 10 фев 2016.

  1. raefa

    raefa Главнокомандующий Команда форума

    Регистрация:
    3 янв 2015
    Сообщения:
    4.324
    Город:
    Zhigulevsk
    Имя:
    Александр
    Изучение материала начал с сайта Алексея Козина.
    Сама "железка" уже является датчиком (шунт + "съемник"), на выходе дает напряжение 0-5В, чувствительность 0.04В/А, питание 3.3-5В.
    Конструкция собиралась из готовых решений, которые были сложены в кучу. Ничего нового нет. Все удобно и в одном месте.

    Используется:
    1. Arduino Pro Mini. Можно и другие, для экономии можно и на ATmega8 собрать.
    1.1 Библиотека SevenSegmentDisplay.​
    2. Сенсор ACS758LCB-100U-PFF-T. С обвязкой по datasheet.
    3. Семисегментный тройной индикатор с общим катодом TOT-3361AH-1N. Можно любой, надо применить немного фантазии.

    Схема подключения:

    raefa100ACurrSensACS758_V1_640.png

    Описание применяемого индикатора:

    TOT-3361AH-1N.jpg

    Сборка и настройка:
    Производит подключение деталей, открываем исходник. Первым делом нам надо узнать "сырое" значение, получаемое на аналоговом входе контроллера, при нулевом токе. Для этого необходимо раскомментировать необходимую строку в исходнике (надеюсь быстро догадаетесь какую). Далее "смотреть" в терминал удобными способами. Производим десяток замеров и высчитываем среднее число, его подставляем в формулу. Далее нам в формуле необходимо подставить чувствительность вашего датчика и подбирать поправочный коэффициент. Эту процедуру необходимо проделать десяток раз, чтобы выбрать лучший. Раскомментируем строки ниже (терминал) и смотрим уже посчитанные значения тока. Возможны отрицательные значения (почему, читаем в datasheet), поэтому в алгоритме я это учел.

    Алгоритм работы
    простой:
    Считываем значения с датчика, производим расчет тока, усредняем и выводим один из 3х вариантов:
    1. Отрицательное значение - выводятся нули и мигает правая точка на индикаторе, свидетельствуя, что есть обратный ток.
    2. Непосредственно показывается потребляемый ток: 2 знака до запятой, один после.
    3. Если ток выше 100А, то загорается цифра 100 и так же мигает правая точка.

    Код максимально простой, с ним не заморачивался. Оптимизаций никаких нет, т.к. работает и в таком виде. Схема тоже упрощена до минимализма и некоторые скажут "не по фен шую". Транзисторов на катод нет, яркости хватит. Ну будут иногда некоторые сегменты гореть чуть тусклее/ярче, ну и так нормально.
    Думается, что с этой подборкой "все в одном", измерительный прибор получится собрать за час. ;) Удачи!

    Исходник для Arduino, библиотека и datasheet'ы прилагаются.
     

    Вложения:

    Последнее редактирование: 11 фев 2016
    5yoda5 нравится это.
  2. 5yoda5

    5yoda5 Master Команда форума

    Регистрация:
    29 янв 2015
    Сообщения:
    7.019
    Город:
    Реж
    Имя:
    Тимур
    И "на соплях" - тоже будет интересно. Процесс постройки не менее интеерсен, чем результат. И какими бы страшными не были фотки где на соплях, они как раз выгодно контрастируют ту, где уже всё хорошо.
    Доделывай, будем ждать фоток.
     
  3. raefa

    raefa Главнокомандующий Команда форума

    Регистрация:
    3 янв 2015
    Сообщения:
    4.324
    Город:
    Zhigulevsk
    Имя:
    Александр
    Ну как хотите. Черновой стендовый вариант. Без резисторов. :D

    20160211_102442.jpg
     
  4. 5yoda5

    5yoda5 Master Команда форума

    Регистрация:
    29 янв 2015
    Сообщения:
    7.019
    Город:
    Реж
    Имя:
    Тимур
    А что это за монстр такой? (какая-то Мега) - это Ардуина такая?
    АААА, это какой-то шилд портов, правильно?
    Типа "я предупреждал" :)
     
  5. raefa

    raefa Главнокомандующий Команда форума

    Регистрация:
    3 янв 2015
    Сообщения:
    4.324
    Город:
    Zhigulevsk
    Имя:
    Александр
    https://www.arduino.cc/en/Main/ArduinoBoardUno
    https://www.arduino.cc/en/Main/ArduinoBoardDuemilanove
    + шилд для более быстрой распиновки. Ну не люблю я "эти ваши" проводочки аля PLS-папы.
    Вот такую связку использую как макетку. А готовое изделие уже обычно или на Pro mini или на самодельной платке для ATmega8 (да и без загрузчика).
     

    Вложения:

  6. 5yoda5

    5yoda5 Master Команда форума

    Регистрация:
    29 янв 2015
    Сообщения:
    7.019
    Город:
    Реж
    Имя:
    Тимур
    Не, Ардуинки мне понятны, меня шилд смутил.
     
  7. hyperion

    hyperion Куратор Команда форума

    Регистрация:
    19 фев 2015
    Сообщения:
    810
    Город:
    Абакан
    Имя:
    Алексей
    Можно поподробнее про обвзяку? По даташиту надо керамику 0.1 по питанию и RC фильтр на выход.
    Блин в каком то из даташитов находил под какую частоту нужен RC фильтр. Сейчас снова найти не могу. Делал из 0.1 керамики и еще какого то резистора по рассчетам.
    Получил такой пилообразный график
    upload_2016-4-1_13-18-38.png
    Как то можно его сгладить?)
    Нашел здесь данные RC фильтра
    http://forum.rcdesign.ru/f123/thread345296.html
    Александр, 2.2мкф и 10ком, такой фильтр используете?
     
    Последнее редактирование: 1 апр 2016
  8. raefa

    raefa Главнокомандующий Команда форума

    Регистрация:
    3 янв 2015
    Сообщения:
    4.324
    Город:
    Zhigulevsk
    Имя:
    Александр
    Я у Алексея взял готовый. Ждем, что скажет. :)
     
  9. Alexey Kozin

    Alexey Kozin APM Guru Команда форума

    Регистрация:
    26 янв 2015
    Сообщения:
    922
    Город:
    Москва
    Имя:
    Алексей Козин
    если нужны не моментальные значения токов а усредненные - увеличиваете сопротивление или конденсатор или и то и другое до достижения желаемого эффекта. диапазон резистора от 100Ом до сотен КОм конденсатор от нанофарад до сотен микрофарад.
    при больших значениях можно достичь эффекта указателя уровня топлива когда стрелка начинает показывать правильно уровень только через пару минут после включения системы

    про датчик напряжения
    http://forum.rcdesign.ru/blogs/99365/blog16734.html
     
    Последнее редактирование: 1 апр 2016
    hyperion нравится это.
  10. hyperion

    hyperion Куратор Команда форума

    Регистрация:
    19 фев 2015
    Сообщения:
    810
    Город:
    Абакан
    Имя:
    Алексей
    Алексей, а вы в своем БП какие номиналы ставите, если это конечно не коммерческая тайна? :)
     
  11. Alexey Kozin

    Alexey Kozin APM Guru Команда форума

    Регистрация:
    26 янв 2015
    Сообщения:
    922
    Город:
    Москва
    Имя:
    Алексей Козин
    от коллег секретов нет
    в блоке питания датчик напряжения состоит из делителя 15 КОм 3 КОм
    сглаживающий конденсатор в разных релизах 47-100 мкф

    датчик тока на сенсоре алегро для апм используется фильтр 1 КОм и 0,22 мкф
    для f4by 2.1.5 буду ставить 50 Ом и 10 мкф это обусловлено наличием делителя на плате с номиналами 10ком / 10ком
     
    raefa и hyperion нравится это.