Ардуино регулировка силы тока

Изготовление электронной нагрузки постоянного тока и мощности на Arduino

Одной из характеристик большого количества промышленных электронных нагрузок является способность рассеивать постоянную мощность. Постоянная мощность может быть полезной при измерении емкости батарей (Вт/час) или тестировании источников электропитания. Для выполнения данных задач я решил использовать микроконтроллер Arduino (ATmega328p).

На рисунке ниже показана схема электронной нагрузки. Чтобы сильно не перегружать схему лишними элементами, я намеренно решил не использовать фильтрующие и развязывающие конденсаторы. Я также не показал на схеме цепи микроконтроллера, поскольку все выполняется стандартным способом. Все соединения к стандартной плате Arduino четко обозначены для удобного подключения. Исходный код программы для Arduino можно загрузить по сноске в конце статьи.

Для управления нагрузкой используется 6 транзисторов IRFP150N. Данные 6 MOSFET-ов разделяются на три группы: каждая группа состоит из двух MOSFET-транзисторов, которые размещаются параллельно друг другу с отдельными управляющими резисторами на затворе. Далее эти три группы управляются независимо с помощью трех операционных усилителей. Подобное схемное решение гарантирует равномерное распределение тока в нагрузке среди этих трех групп MOSFET-транзисторов. В данной конфигурации максимальная мощность электронной нагрузки может рассеивать, по скромной оценке, около 200 Ватт.

На представленной схеме усилитель IC1A образует повторитель напряжения, который буферизирует выход ЦАП и входы трех управляющих операционных усилителей. Усилитель LM324 используется здесь для трех операционных усилителей. Разумеется, выбор операционного усилителя не является критическим моментом, и вы можете заменить его на любой другой усилитель общего назначения. В схеме используется ЦАП MCP4921 от компании Microchip. MCP4921 сходен по характеристикам с MCP4821. Главная разница в том, что MCP4921 использует внешний источник опорного напряжения, в то время как MCP4821 имеет встроенный источник напряжением 2.048В. Это главная причина, почему использовался ЦАП MCP4921. При изменении внешнего опорного напряжения мы можем нарушить баланс между максимальным током, допустимым электронной нагрузкой, и разрешением регулировки тока.

В данном проекте опорное напряжение подается на ЦАП через резисторный делитель от источника опорного напряжения IC TL431. Внешний источник опорного напряжения для ЦАП сконфигурирован как буферизированный вход для высокого импеданса так, что вход опорного сигнала ЦАП не влияет на точность источника опорного напряжения, устанавливаемого резисторным делителем. Когда внешний источник опорного напряжения установлен в значение 0.5В, ток нагрузки может регулироваться до 15A (0.5 В / 0.1 Oм * 3). Выходное напряжение ЦАП MCP4921 может быть отрегулировано как 1 x Vref либо как 2 x Vref; таким образом, диапазон тока может быть удвоен через программную команду без необходимости изменения опорного напряжения. Если вам не нужен такой широкий диапазон тока, тогда вы можете понизить опорное напряжение. Это обеспечит наилучшее разрешение тока (Vref / 4096 на один шаг регулировки).

Для регулировки тока используется энкодер. По умолчанию, ток может быть отрегулирован с разрешением приблизительно 1мA/шаг. При нажатии кнопки энкодера, данное разрешение может быть изменено до 10мA/шаг и 100мA/шаг соответственно. Это позволит выполнить грубую регулировку.

Читайте также:  Ниссан тиида регулировка клапанов видео

Режим постоянной мощности достигается путем вычисления желаемого установленного значения тока через измеренное напряжение нагрузки.

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

Вся схема собрана на макетной плате. Я использовал плату Arduino, изготовленную ранее, и разъемы для соединения с основной платой.

На фото ниже показана законченная плата контроллера:

Как упоминалось ранее, радиатор имеет огромный размер, на фото он отображается в перспективном виде:

На данной фотографии показана работа электронной нагрузки в режиме постоянной мощности, поглощая более 200 Ватт при напряжении более 60 вольт.

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

Видео ниже демонстрирует вкратце функциональные возможности электронной нагрузки

Источник

Регулятор напряжения и тока на Arduino Pro Mini

Какой версией регулятора вы пользуетесь?

Голосование закончилось: 05 Янв. 18, 12:47

ВНИМАНИЕ с 20.11.2017 изменился алгоритм работы регулятора напряжения а также схема подключения измерительного трансформатора

Если у вас сразу возникло много вопросов, рекомендую прочитать этот текст до конца, возможно ответ на большинство из них уже есть.

Скрытый текст
U_regulator_free.ino

Регулировка напряжения фазовая, измерение напряжения среднеквадратичное.
Количество полупериодов изменяется в коде if (zero == 3) и if (zero >= 3) о чем в тексте скетча есть соответствующий комментарий.

Проект писался и проверялся на Atmega328 16 мГц (Arduino Pro mini), Коллега U-M протестировал работу на Uno.

Изначально выставлено нулевое напряжение, симистор закрыт, если не реагирует на команды с порта, в окне монитора порта Arduino IDE выбрать в выпадающем списке NL&CR.

После сборки требуется выставить входящее напряжение. Для этого выставить максимальное напряжение подключить тестер к выходу под нагрузкой (например через тройник) и путем подстройки потенциометра добиться соответствия показаний тестера и показаний получаемых с Arduino.

Скетч, схема, проект для Протеуса (программа симуляции, может кому то пригодиться) прилагается.

Если будете заказывать Arduino, то можно заказать сразу и печатную платку. В результате может получиться например вот так:

Imag0003. Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.

РЕГУЛЯТОР ТОКА НА ACS712:

Скрытый текст
I_regulator_free_ACS712.ino

Добавлен скетч для версии с ACS712, схема аналогичная, за исключением замены трансформатора на датчик тока. Стабилизация с помощью скользящего алгоритма.

Измерение тока среднеквадратичное за три периода.
Количество полупериодов изменяется в коде if (zero == 6) и if (zero >= 6) о чем в тексте скетча есть соответствующий комментарий.

Тип датчика ACS712 выставляется в начале скетча, есть комментарий для установки коэффициента.

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

Читайте также:  Зажим для троса с регулировкой

По просьбам добавлен скетч с энкодером вместо кнопок I_regulator_free_ACS712_LCD_Display_Encoder.
Подключение энкодера:

РЕГУЛЯТОР ТОКА НА ACS712 С ПРЕДУСТАНОВКАМИ И ЗАПИСЬЮ В ПАМЯТЬ:

Скрытый текст
Файл: I_regulator_free_712_LCD_Encoder_Preset_EEPROM

Перечень возможностей: вывод информации в ваттах, время работы, счетчик затраченной электроэнергии, пять предустановок с записью в память.
Название предустановок и их количество правиться в программе.
Расчет потребления электроэнергии ПРИМЕРНЫЙ, в виду значительных погрешностей измерения.
Для корректной работы требуется измерить сопротивление ТЭНа и записать в программу, о чем в тексте есть комментарий.
Программа имеет три меню:
1. Текущая мощность (ВАТТ), включен или выключен регулятор (OFF/ON)
Название предустановки, установленная мощность.
2. Время работы, включен или выключен регулятор (OFF/ON)
Потребленная мощность в ваттах.
3. Установка, включен или выключен регулятор (OFF/ON)
Название предустановки >> устанавливаемая мощность.

Звучит несколько запутанно, но в процессе эксплуатации трудностей возникнуть не должно.
Схема подключения:

Для прямого подключения LCD без I2C в начале скетча есть комментарий

Скрытый текст
I_regulator_free_Current.ino

Добавлен вариант с трансформатором тока DL-CT1005A реализованный по схеме https://learn.openenergymonitor.org/. ce-with-arduino Работа аналогична работе с ACS712, точность и стабильность показаний выше.

ВЕРСИИ С СЕМИСЕГМЕНТНЫМ ИНДИКАТОРОМ НА СДВИГОВЫХ РЕГИСТРАХ 74HC595:

Совместимый модуль возможно заказать в интернет магазинах, например такой:

4-biti-cifrovoi-kamera-svetodiodnii-displei-modyl-chetire-posledovatelnii-dlya-arduino-595-driver-y103. Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.

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

Версии скетчей находятся в архивах под соответствующий вариант регулятора.

ВЕРСИИ С LCD ДИСПЛЕЕМ ПОДКЛЮЧЕННЫМ ПО I2C:

Скрытый текст
Мной использовался дисплей LCD 1602 на HD44780 с модулем I2C на PCF8574 и библиотека LiquidCrystal_I2C.

Img_20161018_205335. Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.
Img_20161018_205505. Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.

Библиотека ставиться из менеджера библиотек в IDE, либо с сайта https://github.com/marcoschwartz/LiquidCrystal_I2C.

С подключением дисплея проблем возникнуть не должно, распиновка Pro Mini:

Prominifront. Регулятор напряжения и тока на Arduino Pro Mini. Автоматика.

Для работы Вашего дисплея требуется узнать его адрес, для этого требуется запустить скетч i2c_scanner.ino из аттача,
запустить монитор порта в IDE и вставить полученный адрес в скетч в строку LiquidCrystal_I2C lcd(0x3F, 16, 2);, где 0х3F адрес дисплея.

Кнопки подключены и работают так же как и в схеме с семисегментным индикатором.

Если после подключения символов нет, требуется покрутить потенциометр на плате I2C

АЛГОРИТМ НАСТРОЙКИ ТОЛЬКО СОБРАННОГО РЕГУЛЯТОРА НАПРЯЖЕНИЯ (от Tomat7)

Скрытый текст
Внимание! Высокое напряжение опасно для жизни. Будьте внимательны!
Не собирайте прибор «на соплях», используйте подходящие провода и инструменты.

0. Схемы в шапке темы все рабочие! Никакого подбора деталей, супертюнинга, дополнительных резисторов, подтяжек и прочего не нужно.
Сам собирал и регулятор напряжения, и регулятор тока на ACS712, и на трансформаторе тока.

1. Убеждаемся что высокое напряжение отключено. Плата Ардуино питается от компьютера по USB.

Скетч основан на нескольких, представленных в этой теме, адаптировал под свои нужды

Дополнительно выкладываю версию прошивки PMC_TT_4.19, совмещенную прошивкой, выложенной коллегой dev11bk

Если у вас еще остались вопросы, я постараюсь ответить.

Читайте также:  Митсубиси лансер регулировка ручника

П.С. Выражаю огромное спасибо msg31, по сути это его схема и идея, просто я немного подогнал ее под свои нужды.
Так же выражаю огромную благодарность m16 за своевременные наставления.
И sevpro за консультации по схемотехнике

СПИСОК РАСПРОСТРАНЕННЫХ ВОПРОСОВ под спойлером

Скрытый текст В. А вы можете сделать тоже самое только с перламутровыми кнопками?
О. Могу, но я не занимаюсь реализацией хотелок, рассматривайте эти устройства как часть Вашего самостоятельного проекта.

В. Зачем считать среднеквадратичное напряжение? Это трудно.
О. Если вы о контроллере то ему абсолютно все равно что считать, если о методе то он дает лучшие результаты ([сообщение #12649978]), если вы знаете другой метод измерения действующего значения напряжения, я с удовольствием выслушаю, если вы хотите измерять амплитудное значение, измеряйте, вам никто не запрещает.

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

В. У вас индусский код. Так делать нельзя!
О. Можно, я не программист, и уж тем более не программист микроконтроллеров. Я не скован рамками правописания программного кода. Код работает, большинству людей все равно что и как внутри крутиться если устройство выполняет свои функции. Если у вас есть замечания по коду и дельные, конкретные советы с алгоритмом, я буду рад вас выслушать. Я взрослый адекватный человек который абсолютно нормально реагирует на аргументированную критику.

В. Если вы не программист, и в электронике как я посмотрю, тоже не очень разбираетесь, зачем вообще создавать ветку.
О. Меня просто попросили довести до ума устройство которое я выкладывал ранее в параллельной ветке. Некоторыми оно востребовано, лично я успешно его использовал и использую по назначению даже не смотря на недостатки, а на то время там была просто куча ошибок.

В. Зачем фазовое регулирование? Там масса помех от которых ломаются телевизоры, глючат айфоны и лысеют коты!
О. Знаете другие доступные методы? Выслушаю, но моргающие лампочки и меня, и домашних напрягают больше. К тому же помехи можно отсечь, в интернете много информации.

В. А почему ты сделал именно так а не иначе?
О. Возможно в тот момент на меня снизошло озарение или отупение, кто знает, я не профи ни в электронике не в программировании.

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

Если вы собрали устройство и проверили его работу ЛАТРом и обрадовались/удивились/расстроились большая просьба выложить результаты.

Источник

Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Настройки и регулировки