- Необходимые материалы
- Схема электронной нагрузки постоянного тока Arduino
- Дизайн печатной платы и файл Gerber
- Заказ печатной платы на AllPCB
- Код Arduino для регулируемой нагрузки постоянного тока
- Тестирование нашей регулируемой нагрузки постоянного тока
Если вы когда-либо работали с батареями, цепями SMPS или другими цепями питания, то часто приходилось бы проверять источник питания, загружая его, чтобы проверить, как он работает при различных условиях нагрузки. Устройство, которое обычно используется для выполнения этого типа теста, называется нагрузкой постоянного тока постоянного тока, которая позволяет нам регулировать выходной ток вашего источника питания, а затем поддерживает его постоянным, пока он снова не изменится. В этом руководстве мы узнаем, как создать нашу собственную регулируемую электронную нагрузку с помощью Arduino, которая может принимать максимальное входное напряжение 24 В и ток стока до 5 А. Для этого проекта мы использовали печатные платы, произведенные AllPCB, китайским профессиональным поставщиком услуг по изготовлению и сборке печатных плат.
В нашем предыдущем руководстве по источнику тока, управляемому напряжением, мы объяснили, как использовать операционный усилитель с полевым МОП-транзистором и схему источника тока, управляемого напряжением. Но в этом уроке мы применим эту схему и создадим источник тока с цифровым управлением. Очевидно, что для источника тока с цифровым управлением требуется цифровая схема, и для этой цели используется Arduino NANO. Arduino NANO обеспечит необходимые элементы управления для нагрузки постоянного тока.
Схема состоит из трех частей. Первая часть - это секция Arduino Nano, вторая часть - цифроаналоговый преобразователь, а третья часть - чисто аналоговая схема, в которой используется двойной операционный усилитель в одном корпусе, который будет управлять секцией нагрузки. Этот проект вдохновлен публикацией об Arduino, однако схема изменена для меньшей сложности с базовыми функциями для всех, кто ее построит.
Наша электронная нагрузка имеет следующие секции ввода и вывода.
- Два входных переключателя для увеличения и уменьшения нагрузки.
- ЖК-дисплей, на котором отображается установленная нагрузка, фактическая нагрузка и напряжение нагрузки.
- Максимальный ток нагрузки ограничен 5А.
- Максимальное входное напряжение для нагрузки составляет 24 В.
Необходимые материалы
Компоненты, необходимые для создания электронной нагрузки постоянного тока, перечислены ниже.
- Ардуино нано
- ЖК-дисплей 16x2 символов
- Гнездо на два ствола
- Mosfet irf540n
- Mcp4921
- Lm358
- Шунтирующий резистор 5 Вт. 1 Ом
- 1к
- 10к - 6шт
- Радиатор
- .1 мкФ 50 В
- 2к - 2шт
Схема электронной нагрузки постоянного тока Arduino
На схеме ниже операционный усилитель состоит из двух частей. Один - для управления полевым МОП-транзистором, а другой - для усиления измеренного тока. Вы также можете посмотреть видео внизу этой страницы, которое объясняет полную работу схемы. Первая секция имеет R12, R13 и MOSFET. R12 используется для уменьшения воздействия нагрузки на секцию обратной связи, а R13 используется в качестве резистора затвора Mosfet.
Два дополнительных резистора R8 и R9 используются для измерения напряжения питания источника питания, на которое будет воздействовать эта фиктивная нагрузка. Согласно правилу делителя напряжения, эти два резистора поддерживают максимум 24 В. Напряжение, превышающее 24 В, не подходит для контактов Arduino. Поэтому будьте осторожны, не подключайте источник питания с выходным напряжением более 24 В.
Фактически нагрузочным резистором здесь является резистор R7. Это резистор мощностью 5 Вт и сопротивлением 0,1 Ом. Согласно степенному закону, он будет поддерживать максимум 7 А (P = I 2 R), но в целях безопасности разумнее ограничить максимальный ток нагрузки 5 А. Таким образом, в настоящее время с помощью этой фиктивной нагрузки может быть установлена максимальная нагрузка 24 В, 5 А.
Другая часть усилителя сконфигурирована как усилитель усиления. Это даст 6-кратный прирост. Во время протекания тока появится падение напряжения. Например, когда через резистор протекает ток 5 А, падение напряжения на шунтирующем резисторе 0,1 Ом (V = I x R) будет составлять 0,5 В согласно закону Ом. Неинвертирующий усилитель усилит его до x6, поэтому 3 В будет на выходе из второй части усилителя. Этот выходной сигнал будет восприниматься аналоговым входным контактом Arduino nano, и будет рассчитан ток.
Первая часть усилителя сконфигурирована как цепь повторителя напряжения, которая будет управлять полевым МОП-транзистором в соответствии с входным напряжением и получать желаемое напряжение обратной связи из-за тока нагрузки, протекающего через шунтирующий резистор.
MCP4921 - это цифро-аналоговый преобразователь. ЦАП использует протокол связи SPI для получения цифровых данных от любого микроконтроллера и обеспечения аналогового выходного напряжения в зависимости от этого. Это напряжение является входом операционного усилителя. Ранее мы также узнали, как использовать этот ЦАП MCP4921 с PIC.
С другой стороны, есть Arduino Nano, который будет передавать цифровые данные в ЦАП по протоколу SPI и управлять нагрузкой, а также отображать данные на символьном дисплее 16x2. Используются две дополнительные вещи, это кнопка уменьшения и увеличения. Вместо подключения к цифровому выводу он подключается к аналоговым выводам. Следовательно, можно изменить его на другой тип переключателей, такой как слайдер или аналоговый энкодер. Кроме того, изменяя код, можно предоставить необработанные аналоговые данные для управления нагрузкой. Это также позволяет избежать проблемы дребезга коммутатора.
Наконец, увеличивая нагрузку, Arduino nano будет передавать данные нагрузки на ЦАП в цифровом формате, ЦАП будет передавать аналоговые данные на операционный усилитель, а операционный усилитель будет управлять полевым МОП-транзистором в соответствии с входным напряжением операционного усилителя.. Наконец, в зависимости от тока нагрузки, протекающего через шунтирующий резистор, появится падение напряжения, которое в дальнейшем будет усилено вторым каналом LM358 и получено Arduino nano. Это будет отображаться на символьном дисплее. То же самое произойдет, когда пользователь нажмет кнопку уменьшения.
Дизайн печатной платы и файл Gerber
Поскольку эта схема имеет путь с большим током, разумнее использовать правильную тактику проектирования печатной платы для устранения нежелательных случаев отказа. Таким образом, печатная плата предназначена для этой нагрузки постоянного тока. Я использовал программное обеспечение Eagle PCB Design Software для разработки своей печатной платы. Вы можете выбрать любое программное обеспечение PCB Cad. Окончательный вариант печатной платы в программном обеспечении САПР показан на изображении ниже.
При проектировании этой печатной платы следует обратить внимание на один важный фактор - использование толстой пластины питания для правильного протекания тока по всей цепи. Также есть VIAS сшивки земли (случайные переходные отверстия в плоскости земли), которые используются для правильного потока земли как в верхних, так и в нижних слоях.
Вы также можете загрузить файл Gerber этой платы по ссылке ниже и использовать его для изготовления.
- Скачать файл Gerber с регулируемой электронной нагрузкой постоянного тока
Заказ печатной платы на AllPCB
Когда вы будете готовы с файлом Gerber, вы можете использовать его для изготовления вашей печатной платы. Говоря об этом, вспоминает спонсора этой статьи ALLPCB, который известен своими высококачественными печатными платами и сверхбыстрой доставкой. Помимо производства печатных плат, AllPCB также предоставляетСборка печатных плат и поиск компонентов.
Чтобы получить у них заказ на печатную плату, посетите allpcb.com и зарегистрируйтесь. Затем на домашней странице введите размеры вашей печатной платы и необходимое количество, как показано ниже. Затем нажмите «Цитировать сейчас».
Теперь вы можете изменить другие параметры вашей печатной платы, такие как количество слоев, цвет маски, толщину и т. Д. В правой части вы можете выбрать свою страну и предпочтительный вариант доставки. Это покажет вам время выполнения заказа и общую сумму к оплате. Я выбрал DHL, и моя общая сумма составляет 26 долларов, но если вы впервые заказываете услугу, цены на кассе снизятся. Затем нажмите «Добавить в корзину», а затем «Оформить заказ».
Теперь вы можете нажать на «Загрузить файл Gerber», нажав «Загрузить Gerber», а затем нажать на «Купить».
На следующей странице вы можете ввести свой адрес доставки и проверить окончательную цену, которую вы должны заплатить за свою печатную плату. Затем вы можете просмотреть свой заказ и нажать кнопку «Отправить», чтобы произвести оплату.
Как только ваш заказ будет подтвержден, вы можете расслабиться и передать свою печатную плату к вашему порогу. Я получил свой заказ через несколько дней, а затем упаковка была аккуратной, как показано ниже.
Качество печатной платы было как всегда на хорошем уровне, в чем вы можете убедиться на фотографиях ниже. Верхняя и нижняя стороны платы показаны ниже.
Как только вы получите свою плату, вы можете приступить к сборке всех компонентов. Моя готовая плата выглядит примерно так, как показано ниже.
Затем вы можете загрузить код и включить модуль, чтобы проверить, как он работает. Полный код этого проекта приведен внизу этой страницы. Пояснение к коду следующее.
Код Arduino для регулируемой нагрузки постоянного тока
Код довольно простой. Сначала мы включили заголовочные файлы SPI и LCD, а также установили максимальное логическое напряжение, контакты выбора микросхемы и т. Д.
#включают
Этот раздел состоит из обязательных объявлений целых чисел и переменных, связанных с потоком программы. Кроме того, мы устанавливаем контакты ассоциированных периферийных устройств с Arduino Nano.
const int slaveSelectPin = 10; // Пин выбора микросхемы int number = 0; int увеличить = A2; // Увеличить вывод int уменьшение = A3; // уменьшение вывода int current_sense = A0; // вывод измерения тока int Voltage_sense = A1; // вывод измерения напряжения int state1 = 0; int state2 = 0; int Set = 0; float volt = 0; float load_current = 0,0; float load_voltage = 0,0; ток поплавка = 0,0; плавающее напряжение = 0,0; ЖК-дисплей LiquidCrystal (7, 6, 5, 4, 3, 2); // выводы ЖК-дисплея
Это используется для настройки ЖК-дисплея и SPI. Также здесь задаются направления штифтов.
void setup () { pinMode (slaveSelectPin, ВЫХОД); pinMode (увеличение, ВХОД); pinMode (уменьшение, ВХОД); pinMode (current_sense, ВХОД); pinMode (Voltage_sense, ВХОД); // инициализируем SPI: SPI.begin (); // устанавливаем количество столбцов и строк на ЖК-дисплее: lcd.begin (16, 2); // Выводим сообщение на ЖК-дисплей. lcd.print («Цифровая нагрузка»); lcd.setCursor (0, 1); lcd.print («Электронный дайджест»); задержка (2000); }
Он используется для преобразования значения DAC.
void convert_DAC (unsigned int value) { / * Размер шага = 2 ^ n, следовательно, 12 бит 2 ^ 12 = 4096 Для ссылки 5 В шаг будет 5/4095 = 0,0012210012210012V или 1 мВ (приблизительно) * / unsigned int container; беззнаковый int MSB; unsigned int LSB; / * Шаг: 1, 12-битные данные сохранены в контейнере. Предположим, что данные 4095, в двоичном формате 1111 1111 1111 * / container = value; / * Шаг: 2 Создание фиктивного 8-битного файла. Таким образом, при делении 256 старшие 4 бита захватываются в LSB LSB = 0000 1111 * / LSB = container / 256; / * Шаг: 3 Отправка конфигурации с перфорацией 4-х битных данных. LSB = 0011 0000 ИЛИ 0000 1111. Результат: 0011 1111 * / LSB = (0x30) - LSB; / * Шаг: 4 Контейнер все еще имеет 21-битное значение. Извлечение младших 8 бит. 1111 1111 И 1111 1111 1111. Результатом является 1111 1111, который является MSB * / MSB = 0xFF & container; / * Шаг: 4 Отправка 16-битных данных разделением на два байта. * / digitalWrite (slaveSelectPin, LOW); задержка (100); SPI.transfer (LSB); SPI.transfer (MSB); задержка (100); // установите на выводе SS высокий уровень, чтобы отменить выбор микросхемы: digitalWrite (slaveSelectPin, HIGH); }
Этот раздел используется для операций, связанных с измерением тока.
float read_current (void) { load_current = 0; для (int a = 0; a <среднее; a ++) { load_current = load_current + analogRead (current_sense); } load_current = load_current / среднее; load_current = (load_current * MAX_VOLT) / 1024; load_current = (load_current / opamp_gain) / load_resistor; return load_current; }
Он используется для считывания напряжения нагрузки.
float read_voltage (void) { load_voltage = 0; для (int a = 0; a <среднее; a ++) { load_voltage = load_voltage + analogRead (Voltage_sense); } load_voltage = load_voltage / среднее; load_voltage = ((load_voltage * MAX_VOLT) /1024.0) * 6; return load_voltage; }
Это реальный цикл. Здесь измеряются шаги переключения, и данные отправляются в ЦАП. После передачи данных измеряется фактический ток и напряжение нагрузки. Оба значения также наконец выводятся на ЖК-дисплей.
void loop () { state1 = analogRead (увеличение); если (состояние1> 500) { задержка (50); state1 = analogRead (увеличение); если (состояние1> 500) { вольт = вольт + 0,02; } } state2 = analogRead (уменьшение); если (состояние2> 500) { задержка (50); state2 = analogRead (уменьшение); если (состояние2> 500) { если (вольт == 0) { вольт = 0; } else { вольт = вольт-0,02; } } } число = вольт / 0,0012210012210012; convert_DAC (число); напряжение = read_voltage (); текущий = read_current (); lcd.setCursor (0, 0); lcd.print («Установить значение»); lcd.print ("="); Установить = (вольт / 2) * 10000; lcd.print (Установить); lcd.print («мА»); lcd.setCursor (0, 1); lcd.print («Я»); lcd.print ("="); lcd.print (текущий); lcd.print («А»); lcd.print ("V"); lcd.print ("="); lcd.print (напряжение); lcd.print ("V"); // lcd.print (load_voltage); //lcd.print("mA "); // задержка (1000); //lcd.clear (); }
Тестирование нашей регулируемой нагрузки постоянного тока
Цепь цифровой нагрузки припаяна и запитана от источника питания 12 В. Я использовал свою литиевую батарею 7,4 В со стороны источника питания и подключил токоизмерительные клещи, чтобы проверить, как она работает. Как вы можете видеть, когда установленный ток составляет 300 мА, схема потребляет 300 мА от батареи, что также измеряется токоизмерительными клещами как 310 мА.
Полную работу схемы можно увидеть в видео по ссылке ниже. Надеюсь, вы поняли проект и вам понравилось создавать что-то полезное. Если у вас есть вопросы, оставьте их в комментариях или воспользуйтесь форумом.