Рубрики
Схемы на Arduino

Регулируемая электронная нагрузка постоянного тока на Arduino

Если вы когда-нибудь работали с батареями (аккумуляторами), импульсными (SMPS) или любыми другими источниками питания у вас наверняка возникала потребность в проверке их работы в различных условиях, то есть под различной нагрузкой. Устройство, которое обычно используется для этих целей, называется нагрузкой постоянного тока (Constant Current DC Load) и позволяет проверить выходной ток вашего источника питания и поддерживать его постоянным до тех пор пока не понадобится изменение условий его работы. В данной статье мы рассмотрим создание регулируемой электронной нагрузки постоянного тока на основе платы Arduino с максимальным входным напряжением 24V и силой тока до 5A. Для этого проекта в компании AllPCB была изготовлена печатная плата. Вы можете изготовить печатную плату, используя необходимые для этого файлы, у любого другого производителя.

Наша регулируемая электронная нагрузка будет работать на основе операционного усилителя и MOSFET транзистора. Управлять всеми процессами в схеме будет плата Arduino Nano.

Схема нашего проекта будет состоять из 3-х частей. Первая часть будет содержать плату Arduino Nano, вторая – цифро-аналоговый преобразователь (ЦАП), а третья часть будет представлять собой чисто аналоговую схему, в которой двойной операционный усилитель (в едином корпусе) будет использоваться для управления секцией нагрузки.

Наша электронная нагрузка будет иметь следующие особенности:

  1. Два переключателя для увеличения и уменьшения нагрузки.
  2. ЖК дисплей, на котором будет отображаться установленная нагрузка, текущая нагрузка и напряжение нагрузки.
  3. Максимальный ток нагрузки — 5A.
  4. Максимальное входное напряжение нагрузки — 24V.

Необходимые компоненты

  1. Плата Arduino Nano (купить на AliExpress).
  2. ЖК дисплей 16х2 (купить на AliExpress).
  3. Два разъема (barrel socket).
  4. Mosfet irf540n (купить на AliExpress).
  5. Цифро-аналоговый преобразователь Mcp4921 (купить на AliExpress).
  6. Операционный усилитель Lm358 (купить на AliExpress).
  7. Шунтирующий резистор 0,1 Ом 5 Вт (купить на AliExpress).
  8. Резистор 1 кОм (купить на AliExpress).
  9. Резистор 10 кОм – 6 шт. (купить на AliExpress).
  10. Резистор 2 кОм – 2 шт. (купить на AliExpress).
  11. Конденсатор 1 мкФ 50В (купить на AliExpress).
  12. Теплоотвод (радиатор).

Схема проекта

Схема регулируемой электронной нагрузки постоянного тока на основе платы Arduino представлена на следующем рисунке.

В представленной схеме операционный усилитель имеет 2 секции: одна управляет MOSFET транзистором, а другая усиливает измеряемый ток. Первая секция содержит резисторы R12, R13 и MOSFET. Резистор R12 используется для уменьшения действия нагрузки в цепи обратной связи, а R13 является резистором затвора MOSFET транзистора. Более подробно про работу схемы и назначение ее элементов вы можете посмотреть на видео, приведенном в конце статьи, правда, на английском языке.

Дополнительные два резистора R8 и R9 используются для измерения напряжения, поступающего от источника питания. Исходя из их номиналов по правилу делителя напряжения легко определить что максимальное измеряемое напряжение составит 24V, если напряжение будет больше 24V, то оно может повредить контакт платы Arduino, поскольку на него в этом случае будет поступать напряжение более 5 В.

R7 является нагрузочным резистором, его сопротивление составляет 0,1 Ом и он может рассеивать мощность до 5 Вт. Исходя из формулы для расчета мощности P = I2R он может выдерживать ток до 7A, но в целях безопасности лучше ограничить ток, протекающий через данный резистор, значением 5A. Таким образом, получается что наша регулируемая электронная нагрузка постоянного тока (то есть эквивалент нагрузки) рассчитано на напряжение до 24V и ток до 5A.

Другая секция операционного усилителя работает как обычный усилитель с коэффициентом усиления 6x. При протекании тока через какой либо электронный элемент на нем создается падение напряжения. К примеру, если ток 5A протекает через шунтирующий резистор сопротивлением 0,1 Ом, то в нем по закону Ома (V = I x R) создается падение напряжения 0,5 В. Наш неинвертирующий усилитель усилит это значение в 6 раз, следовательно, на выходе второй секции операционного усилителя будет напряжение 3V. Это напряжение подается на аналоговый контакт платы Arduino Nano, которая измеряет его и на основе этого рассчитывает силу протекающего через шунтирующий резистор тока.

Первая часть операционного усилителя работает как повторитель напряжения и управляет работой MOSFET транзистора, который выступает в роли обратной связи для тока, протекающего через шунтирующий резистор.

MCP4921 представляет собой цифро-аналоговый преобразователь (ЦАП), который получает цифровые данные от платы Arduino по протоколу SPI и преобразует их в соответствующие аналоговые значения, которые в нашей схеме подаются на вход операционного усилителя.

Плата Arduino Nano передает цифровые данные ЦАПу MCP4921 по протоколу SPI и, таким образом, производит управление нашей электронной нагрузкой. Также она отображает необходимые данные на экране ЖК дисплея 16×2. Также к плате Arduino Nano подключены две кнопки для увеличения и уменьшения значения нагрузки. Вместо их подключения к цифровым контактам (как обычно) мы их подключили к аналоговым контактам платы Arduino. Поэтому вместо них можно в проекте использовать другие типы переключателей, например, слайдеры или аналоговые энкодеры. Также, при помощи небольших изменений в коде программы можно непосредственным образом подавать «сырые» (необработанные) аналоговые данные (raw analog data) в цепь операционного усилителя для управления нагрузкой. Подключение кнопок к аналоговым контактам также устраняет проблему, связанную с дребезгом их контактов (debounce problem).

Таким образом, в нашей схеме плата Arduino Nano передает данные ЦАПу в цифровой форме, ЦАП преобразует их в аналоговый вид и подает на вход операционного усилителя, который управляет работой MOSFET транзистора. Протекающий через шунтирующий резистор ток создает падение напряжения на нем, которое усиливается вторым каналом микросхемы LM358 и поступает на плату Arduino Nano, которая отображает его значение на экране ЖК дисплея. При помощи кнопок можно увеличивать и уменьшать значение тока через нагрузку.

Изготовление печатной платы для проекта

Спроектированная нами печатная плата для рассматриваемого в данной статье проекта регулируемой электронной нагрузки на основе платы Arduino показана на следующем рисунке.

Скачать Gerber файлы этой печатной платы вы можете по следующей ссылке — Download Adjustable Electronic DC Load Gerber File.

Заказать печатную плату можно, к примеру, на сервисе allpcb.com, или у любого другого изготовителя печатных плат. Процессы заказа и оплаты изготовления печатной платы на сервисе allpcb.com показаны на следующих рисунках.

После изготовления печатная плата пришла авторам проекта вот в такой вот коробке:

Внешний вид пришедшей печатной платы показан на следующем рисунке. Качество изготовления, как видите, хорошее.

После сборки проекта на основе этой печатной платы получился следующий окончательный вид конструкции нашего проекта:

Объяснение программы для Arduino

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

Вначале в коде программы мы подключим необходимые библиотеки (SPI.h и LiquidCrystal.h). Также установим максимальный логический уровень напряжения, значение сопротивления шунтирующего резистора, определим необходимые контакты.

Далее в программе объявим необходимые переменные.

В функции void setup() зададим режимы работы для используемых контактов (на ввод или вывод данных), инициализируем ЖК дисплей и связь по протоколу SPI. Также выведем приветственное сообщение на экран ЖК дисплея.

В функции convert_DAC мы будем производить цифро-аналоговое преобразование сигналов.

В следующем фрагменте программы производится определение силы тока, протекающего через шунтирующий резистор.

Это значение силы тока будет использоваться для расчета напряжения нагрузки.

Далее в функции void loop () мы будем непрерывно измерять требуемые нам значения тока и напряжения и передавать соответствующие данные ЦАПу. Требуемые и измеренные значения тока и напряжения отображаются на экране ЖК дисплея.

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

Тестирование работы проекта

Для питания схемы мы использовали источник питания с напряжением 12V. В качестве тестируемого источника питания мы выбрали литиевую батарею напряжением 7.4V. Для проверки правильности работы схемы мы использовали токовые клещи (clamp meter).

Как вы можете видеть на представленном рисунке, установленное значение тока составляет 300mA, значение потребляемого тока в нашей схеме также равно 300, а токовые клещи показывают значение протекающего тока, равное 310mA.

Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.

Исходный код программы (скетча)

Скетч достаточно простой, у начинающих, единственное, могут возникнуть небольшие проблемы с пониманием работы с ЦАПом (но я надеюсь, они решаемые).

Видео, демонстрирующее работу проекта

Источник статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *