Простой лабораторный блок питания на Arduino — DRIVE2
Давно была необходимость использовать блок питания на различные напряжения, но руки все не доходили сделать. Однажды попался в руки трансформатор 18v-2A и было решено все-таки изготовить этот нужный прибор.
В сааамом простом варианте регулируемый блок питания можно сделать всего лишь на LM317 (или КР142ЕН12) по схеме вроде этой:
Полный размер
Самый простой блок питания в мире
Взяв за основу эту схему, я вместо потенциометра сделал набор из 6 подстроечных и одного переменного сопротивления. Управляет подключением резисторов к регулятору ATMega368(или ATMega168) через ULN2003. Таким образом в моем блоке питания появилось 6 предустановленных напряжений и возможность регулировать вручную тоже осталась. Я настроил такой ряд напряжений: 3.3в, 5в, 9в, 12в, 15в и 24в.
На выходе регулятора добавлен транзистор IRF9540 — это дало возможность программно управлять подачей напряжения на выходные клеммы.
Раз уж у нас есть мозги в БП, то, наверное, стоит добавить и LCD экран, и отображать на нем напряжение и ток. Я взял символьный экранчик Winstar 1202 русифицированный. Так же в схему добавлены узлы измерения напряжения и тока. Простой делитель напряжения R16-R17 от выходной клеммы на аналоговый вход ATMega измеряет напряжение.
Другой аналоговый вход измеряет напряжение на делителе, образованным сопротивлением подключаемой нагрузки и шунтом R18, что позволяет вычислить силу тока. Два стабилитрона, позволяют защитить входы МК, если напряжение будет выше расчетных. Решение подсмотрено тут.
Измерение силы тока и наличие транзистора позволило моментально отключать нагрузку в случае превышения силы тока выше заданного или коротком замыкании.
Для управления добавлены 3 тактовые кнопочки подключенные к третьему аналоговому входу.
Для питания ATMega я использовал импульсный стабилизатор, у меня сразу был готовый модуль. Наличие постоянных и стабилизированных +5В позволило добавить в БП USB гнездо для подзарядки чего-либо.
В итоге получил вот такую схему:
Полный размер
Схема умного блока питания
Плату разводил в Sprint Layout 6. Давно пытаюсь перейти на что-то другое, но нигде не встретил той простоты, что есть в SLayout. Потихоньку пытаюсь переучится на DeepTrace.
Полный размер
Плата умного блока питания
Программу МК написал, как всегда в Arduino IDE. Долгими нажатиями на “” можно поочередно перебирать предустановленные напряжения. Кратким нажатием кнопки “Режим” включать и отключать напряжение на выходе.
Краткими нажатиями “” переключать отображение параметров: “Напряжение и ток”=>”Напряжение”=>”Ток”=>”Мощность”.
Долгим нажатием “Режим” можно войти в режим настройки, где также можно выбрать выходное напряжение и настроить состояние БП при включении(подавать или нет напряжение на выход сразу).
Корпус для БП тоже сделал с нуля. Разработал 3д модель в программе FreeCad и распечатал на своем 3D принтере.
Модель
Блок питания, после сборки необходимо настроить.— Во-первых модуль lm2596 нужно ОБЯЗАТЕЛЬНО настроить на +5в еще до подключения в схему, иначе можно спалить МК.— Далее подключить к БП мультиметр и по нему настроить все предустановленные напряжения подстроечными резисторами.
— Также по мультиметру подобрать все значения в скетче Meters (опроное напряжение, резисторы), чтобы значения были как можно более точными.
Немного фото готового изделия:
Полный размер
Рабочий режим
Полный размер
Режим превышения тока или КЗ.
Полный размер
Регулятор прикручен к мощному радиатору.
Полный размер
В собранном виде все довольно плотненько. Плату и элементы лицевой панели закрепил термоклеем.
Полный размер
Просто вид сзади.
Полный размер
На рабочем месте
Все файлы проекта можно скачать тут.
Источник: https://www.drive2.ru/b/489421763654975830/
Цифровой лабораторный блок питания с управлением через ПК
Наткнулся в интернете на схему лабораторного блока питания, да еще и с управлением от компьютера, и не смог устоять. Детали решил брать в российских магазинах, потому что доллар, санкции, ну и все такое.
Вот что из этого получилось…
Лабораторный блок питания нужен для запитывания различных махараек устройств на этапе разработки. Первое подобие лабораторника я сделал лет в 16. Это был леденящий душу ужас, который, тем не менее, худо-бедно справлялся со своими функциями.
Тогда я только начинал познавать электронику, и все ограничивалось кручением моторчиков. Мне бы в то время интернет и хоть какие то карманные деньги…
Первый блок питания
Потом был длительный перерыв, армия, несколько лет работы далеко от дома, но после этого периода я вернулся к этому хобби, все было гораздо серьезнее, и был изготовлен из подручных материалов этот монстр:
Фото
Он выдержал много издевательств, и жив до сих пор, но мне хотелось большего. Были мысли купить готовый у китайцев, но пока душила жаба случился кризис, а тут подвернулась эта схемка. Начал собирать компоненты. Многое нашлось в закромах (резисторы и транзисторы, импульсник от ноутбука, ненужная зарядка от телефона), но без закупки не обошлось. Чип-Дип
силовой транзистор 2SD1047 — 110 р.
конденсатор электролитический 330 мф — 2х8 р.
корпус будущего блока питания — 540 р. итого 825 р. Чип-нн (со ссылками не получается из-за специфики сайта) операционный усилитель LM358N — 12 р. конденсатор электролитический 2200 мкф. — 13 р. винтовые терминалы 2х — 22 р. держатель светодиода х3 — 20 р. кнопка с фиксацией красная, здоровенная — 17 р. шунт 0.1 ом — 30 р. многоборотные подстроечные резисторы 470 ом х2 — 26 р. итого 140 р.
Для любопытствующих схема.
Ардуино следит за напряжением на выходе, за током, и посредством ШИМ пинает силовой транзистор так, чтобы блок питания выдавал установленные значения.
Блок питания умеет выдавать напряжение от 1 до 16 вольт, обеспечивать ток 0.
1 — 8 ампер (при нормальном источнике напряжения) уходить в защиту и ограничивать ток. То есть его можно использовать для зарядки аккумуляторов, но я не рискнул, да и зарядник у меня уже есть.
Еще одна особенность этого странного блока питания в том, что он питается от двух напряжений. Основное напряжение должно подкрепляться вольтодобавкой от батарейки, или второго блока питания. Это нужно для корректной работы операционного усилителя.
Я использовал ноутбучный блок питания 19в 4А в качестве основного, и зарядку 5в 350мА от какого-то телефона в качестве добавочного питания.
Сборку я решил начать с пайки основной платы с расчетом забить болт, если не заработает, так как начитался комментов от криворуких, как все у них дымит, взрывается и не работает, да и к тому же я внес некоторые изменения в схему.
Для изготовления платы я купил новый лазерный принтер, чтобы наконец то освоить ЛУТ, ранее рисовал платы маркером (вот пример), тот еще геморрой.
Плата получилась со второго раза, потому что в первый раз я зачем-то отзеркалил плату, чего делать было не нужно.
Окончательный результат:
Пробный запуск обнадежил, все работало как надо
После удачного запуска я принялся курочить корпус. Начал с самого габаритного — системы охлаждения силового транзистора. За основу взял кулер от ноутбука, вколхозил это дело в заднюю часть.Натыкал на переднюю панель кнопок управления и лампочек. Здоровенная крутилка это энкодер со встроенной кнопкой. Используется для управления и настройки. Зеленая кнопка переключает режимы индикации на дисплее, прорезь снизу для разъема юсб, три лампочки (слева направо) сигнализируют о наличии напряжения на клеммах, активации защиты при перегрузе, и об ограничении тока. Разъем между клеммами для подключения дополнительных устройств. Я втыкаю туда сверлилку для плат и резалку для оргстекла с нихромовой струной.Засунул все кишки в корпус, подсоединил провода
После контрольного включения и калибровки закрыл крышкой.
Фото собранного
Отверстия проделаны под радиатором стабилизатора lm7805, который нехило греется. Подсос воздуха через них решил проблему охлаждения этой деталиСзади выхлопная труба, красная кнопка включения и разъем под сетевой кабель.
Прибор обладает кое-какой точностью, китайский мультиметр с ним согласен. Конечно калибровать самопальную махарайку по китайскому мультиметру и говорить о точности достаточно смешно.
Несмотря на это прибору найдется место на моем столе, так как для моих целей его вполне достаточно
Некоторые тесты
Взаимодействие с программой. На ней в реальном времени отображается напряжение и ток в виде графиков, так же с помощью этой программы можно управлять блоком питания.
К блоку питания подключена 12-вольтовая лампа накаливания и амперметр.
Внутренний амперметр после подстройки работает сносноИзмерим напряжение на клеммах. Великолепно.В прошивке реализована ваттосчиталка. К блоку подключена все та же лампочка на 12 вольт, на цоколе которой написано «21W». Не самый паршивый результат.
Изделием доволен на все сто, поэтому и пишу обзор.
Может кому-то из читателей нехватает такого блока питания. О магазинах: Чип-нн порадовал скоростью доставки, но ассортимент маловат на мой взгляд. Этакий интернет магазин, аналогичный арадиомагазину в среднем городке. Цены ниже, кое на что в разы. Чип-дип… закупил там то, чего не было в чип-нн, иначе б не сунулся.
розница дороговата, но все есть. Мои исходники:
Переделанная схема в протеусе+печатная плата
Животное
животных под руку не подвернулось, есть искусственный слон с испорченной платой для этого блока питания
Источник: https://mysku.ru/blog/russia-stores/34623.html
ATX блок питания управляемый Arduino
Может ли микроконтроллер контролировать собственный источник питания? Почти!
Блок питания от старого компьютера (или новый) – это отличный способ питания Arduino и других устройств. Это рассматривается в этой и нескольких подобных статьях. Однако благодаря некоторым особенностям ATX, мы можем использовать его как “умный” блок питания, а это еще лучше.
В этой статье описано как просто при помощи микроконтроллера контролировать источник питания. Таким образом, вы можете использовать ATX блок питания в нескольких режимах: он может отдыхать, работать в экономичном режиме для слаботочных устройств и давать десятки ампер на 5В и/или 12В линии при необходимости.
На видео в конце показана эта идея в действии.
Общая стоимость управления блоком питания составляет несколько фунтов, вы не повредите блок питания, и сможете использовать его в дальнейшем.
Материалы и инструменты
Необходимые детали: Удлинитель ATX кабеля для материнской платы 3 провода с BLS штырьками 1K резистор (номинал не критичен) Термоусадочная трубка
Инструменты:
Паяльник и припой Ножницы Зажигалка для нагрева термоусадочной трубки.
Основные элементы:
Блок питания ATX 5В микроконтроллер или Arduino
Мощные транзисторы для коммутации
Характеристики
Блок питания ATX это замечательная вещь!
На наклейке нового блока питания купленного за 700 руб, указаны такие параметры: 20А на 3.3В 30А на 5В
30А на 12В
Плюс ток в режиме простоя: 2А на 5В
Сейчас 5В 2A вполне достаточно для запуска практически любых микроконтроллеров 5В.
Все, что нам нужно сделать, это использовать 5В в режиме простоя для запуска и работы нашей платы, а при необходимости переключиться на высокий ток.
Изготовление разъема
Разъем питания ATX хорошо известен, и с его распиновкой можно ознакомиться в Интернете, например, здесь.
Нам нужны: провод резервного питания 5В (фиолетовый), провод управления (зеленый) и любой провод GND (черный).
Начнем с того конца удлинителя, который показан на первой картинке. Отрежьте от него всё, что нам не нужно. Затем отрежьте фиолетовый, зеленый и черный провода ближе к другому концу. Наденьте на них термоусадочную трубку и обрежьте провода с BLS штырьками с одного конца.
Необходимо добавить резистор 1 кОм на провод управления во избежание избыточного тока. Припаяйте резистор на зеленый провод с BLS штырьком, а потом на зеленый провод удлинителя ATX. Припаяйте к фиолетовому и черному проводу соответствующие провода с BLS штырьками (в моем случае красный и черный). Наконец, прогрейте термоусадочные трубки.
Контроль и использование Arduino ATX
Чтобы использовать и контролировать ATX блок питания достаточно использовать Arduino.
Подключите фиолетовый (на фото красный) ATX провод к +5 В (не используйте Vin) и черный провод ATX к GND.
Подключите зеленый провод ATX к любому управляющему выводу. Я использовал A0 (D14), но общие выводы цифрового ввода-вывода работают так же.
Подключите ATX, и Arduino будет получать резервный ток, и вентилятор, вероятно, будет выключен.
При необходимости полной мощности просто используйте команду: const int ctrlPin=14; // Используйте необходимый вам pin. Я использовал D14.
digitalWrite(ctrlPin, LOW);
Для отключения полной мощности используйте:
digitalWrite(ctrlPin, HIGH);
Что эквивалентно команде: pinMode(ctrlPin, INPUT);
т.е. выход установится в состояние с высоким сопротивлением.
Теперь все что вам нужно сделать, это подключить высокоточную нагрузку на любой из разъемов типа MOLEX блока питания ATX и управлять ими с помощью транзисторов, MOSFET -транзисторов и т.д. Когда вам понадобится большой ток, просто используйте команды указанные выше.
Примечание – вы должны быть осторожны при питании Arduino прямо от +5 В. Если вы также подключили кабель USB, то ток может пойти в USB порт вашего ПК, так что будьте осторожны.
Управление ATX в действии
Ниже приведено видео будильника со световым эффектом.
Вы видите, что Arduino отображает время постоянно, но изначально вентилятор на ATX блоке питания не работает. Это потому, что мы использует резервное напряжение.
Когда я запускаю основную светодиодную лампу (около 9 Вт на данный момент), Arduino включает основное питание ATX и вентилятор начинает работать. Когда лампа погаснет, вентилятор остановится.
Для будильника это очень полезно, потому что шум вентилятора будет мешать ночью. Есть много подобных ситуаций, когда основное питание ATX нужно только время от времени.
Оригинал статьи
Источник: http://cxem.net/arduino/arduino45.php
Питание для Arduino UNO r3 (Ардуино УНО)
2016-12-20 от: master РАЗДЕЛ: Arduino
В этой статье расскажу о нескольких простых способах как можно запитать (включить) Arduino UNO практически без денежных затрат. Уверен на 95% что у вас найдется все необходимое для этого дома, или у ваших соседей, в этом случае уверенность возрастает до 99% ))). Рекомендованное напряжение для питания Ардуино, от 7-12 вольт. Так как при напряжении менее 7 вольт возможна не стабильная работа платы, а более 12 возможен перегрев преобразователя напряжения и выход его из строя.На моей практике питания 5V вполне достаточно для работы простейших схем и небольшого количества датчиков. Подключал одновременно дисплей 5110 и датчик DHT11, и они прекрасно себя чувствовали от 5-ти вольт. Для того чтобы поиграться и изучить принцип работы этого достаточно.
Варианты питания для Arduino UNO
Первый – кабелем от usb порта компьютера:Такое подключение не только запитает Ардуинку, но и пригодится для заливки скетчей и библиотек. Если вы купили плату без кабеля, то такой кабель часто используется в принтерах, сканерах или МФУ – называется USB A-B.
Второй – кабель и зарядка:
Берем этот же кабель и зарядное устройство от мобильного телефона с usb выходом и выходным напряжением 5V. И подключаем через розетку.
Третий – блок питания от чего нибудь:
Возможно у вас есть ненужный (или нужный) блок питания от какой либо техники, который выдает напряжение от 5 до 12 вольт и от 300 до 1000 миллиампер на выходе. У себя нашел БП уже не помню от чего, он дает 9V и 500ma.
Плюс еще на БП должен быть штекер нужного размера, если не подходит, тогда ищите нужного размера и перепаивайте. Найти его можно в интернете по запросу (штекер 5.5×2.5 мм)Но прежде чем подключать, советую проверить выходящее напряжение мультиметром (на всякий случай).
У меня один БП вместо написанных 9V выдавал почти 15.
Четвертый – от батареек:
Сначала сделаем автономное питание от батарейки типа Крона.Для этого варианта понадобится переходник с кроны на разъем Arduino.Его можно купить, или сделать самим. Что бы его сделать, понадобится дополнительная батарейка донор крона, и кабель с нужным разъемом.Для начала нужно извлечь из донора контакты, разогнув сверху металлический корпус кроны.
Припаиваем заранее найденный или купленный провод или штекер к снятым контактам. При пайке главное не ошибиться с плюсом и минусом. Что касается штекера который подключается к Ардуино, то внутри находится плюс, а снаружи минус.Припаивание проводов к снятой площадке с кроны происходит зеркально, там где у кроны плюс, припаиваем минус, а где минус паяем плюс.
В итоге должно получится вот так.Еще можно запитать от пальчиковых батареек, используя вот такие блоки. Их можно вытащить например из сломанной машинки на радиоуправлении, или купить на рынке.Можно еще подать питание на пины ардуино, но об этом писать не буду. Так как мое мнение что таким способом пользуются довольно редко.
Напишите в комментариях, от чего и как вы запитали Arduino.
11 031
Источник: http://multidea.ru/646-pitanie-dlya-arduino-uno-r3-arduino-uno.html
Мощный лабораторный блок питания
Не так давно приобрёл паяльную станцию. Давно занимаюсь любительской электроникой, и вот настал момент когда точно осознал что пора. До этого пользовался батиным самопальным блоком, совмещавшим лабораторный блок питания и блок питания низковольтного паяльника.
И вот встала передо мной проблема: паяльную станцию я ставлю, а старый блок держать ради хилого и не точного блока питания 0-30в 3А или таки купить нечто современное, с защитой по току и цифровыми индикаторами? Поползав по ебею понял что максимум что мне светит это за 7-10 тыс купить Китайский блок с током максимум в 5А.
Жаба сказала своё веское «ква», руки зачесались и…
Теперь к сути. Сформировал требования к блоку: минимум 0-30В, при токах минимум 10А, с регулируемой защитой по току, и с точностью регулировки по напряжению 0.1В. И что б стало ещё интереснее — 2 канала, пусть и от общей земли. Установка напряжения должна быть цифровой, т.е.
никаких переменных резисторов, только энкодеры. Фиксированные установки напряжения и запоминание — опционально.
Для индикации состояния выхода были выбраны цифровые китайские комбинированные индикаторы на ЖК, с диапазоном до 199В с точностью 0.1В и до 20А с точностью 0.01А. Что меня полностью устроило. А вот что забыл, так это прикупить к ним шунты, т.к. по наивности думал что они будут в комплекте.
Для первичного преобразования напряжения думал использовать обычный трансформатор с отводами через каждые 6В, коммутируемый релюшками с контроллера, а для регулировки выхода простой эмиттерный повторитель. И всё бы ничего, но когда узнал стоимость и габариты такого трансформатора (30В * 10А = 300вт), то понял что надо быть современнее и использовать импульсные блоки питания.
Пробежавшись по предложениям понял что ничего толкового на мои токи нет, а если и есть, то жаба категорически против. В связи с этим пришла мысль попробовать использовать компьютерные блоки питания, коих всегда у любого ITшника предостаточно.
Были откопаны блоки по 350Вт, что обещало 22А по +5В ветке и 16А по 12В. Пробежавшись по интернету нашёл много противоречивых мнений по поводу последовательного соединения блоков, и нашёл умную статью на Радиокоте как это сделать правильно.
Но перед этим решил рискнуть и таки взять и нахрапом соединить блоки последовательно, дав нагрузку.
… И получилось!
На фото последовательно соединены 3 блока. Де-факто на выходе 35В, 10.6А.
Далее возник вопрос: каким контроллером управлять. По идее ATMega328 тут идёт за глаза, но ЦАПы… Посчитав почём обойдётся хотя б 2 ЦАПа на 12 бит и посмотрев характеристики Arduino DUE с ними на борту, а так же сравнив кол-во требуемых ПИНов, понял что проще и дешевле и быстрее будет просто поставить эту ардуину в блок целиком, вместе с платой.
Постепенно на макетках родилась схема. Приведу её в общем виде, только для одного канала:
Схема бьётся на несколько функциональных блоков: Набор блоков питания ATX, блок коммутации БП, блок усилителя напряжения ЦАП Arduino, блок усилителя напряжения токового шунта, блок ограничения напряжения по заданному току.
Блок коммутации БП: В зависимости от заданного пользователем напряжения Ардуино выбирает какую ветку задействовать. Выбирается минимальная по напряжению ветка, на минимум +3В большая заданного. 3В остаются на неточности установки напряжения в блоках питания + ~1.
2В просада напряжения на переходах транзистора + не большой запас. Одновременно задействованный ключ ветки активирует тот или иной блок питания.
Например задав 24В надо активировать все 3 блока питания и подключить выход на +5в 3-го в цепочке, что даст на коллекторе выходного транзистора VT1 +29В, тем самым минимизируя выделяемую тепловую мощность транзистора.
Блок усилителя напряжения: Реализован на операционном усилителе OP1. ОУ используется Rail-to-Rail, однополярый, с большим напряжением питания, в моём случае — AD823. Причём выход ЦАП Ардуино имеет смещение нулевой точки = 0.54В. Т.е.
если Вы задаёте напряжение выхода = 0, на выходе де-факто будет присутствовать 0.54В. Но нас это не устраивает, т.к. ОУ усиливает с 0, и напряжение тоже хочется регулировать с 0. Поэтому применён подстроечный резистор R1, вычитающий напряжение.
А отдельный стабилизатор на -5В, вместо использования -5В ветки блока питания, используется ввиду нестабильности выдаваемого блоком питания напряжения, меняющимся под нагрузкой.
Выход же ОУ охвачен обратной связью с выхода VT1, это сделано что б ОУ сам компенсировал изменения напряжения в зависимости от нагрузки на выходе.
Кстати, о AD823 из Китая по Ебею: день промучился, понять не мог, почему схема не работает от 0 на входе. Если больше 1.5В то всё становится нормально, а иначе всё напряжение питания.
Уже подумав что сам дурак, нарвался на рассказ как человек вместо AD823 получил с Китая подделку. Тут же поехал в соседний магазин, купил там, поставил и… О чудо — всё сразу заработало как надо.
Игра, найди отличия (подделка в кроватке, справа оригинал. Забавно что подделка выглядит лучше):
Далее усилитель напряжение токового шунта. Поскольку токовый шунт достаточно мощный, то и падение напряжения на нём мало, особенно на малых токах. Поэтому добавлен OP2, служащий для усиления напряжения падения шунта. Причём от быстродействия этого ОУ зависит скорость срабатывания предохранителя.
Сам предохранитель, а точнее блок ограничения тока, реализован на компараторе OP2. Усиленное напряжение, соответствующее протекаемому току, сравнивается с напряжением, установленным электронным потенциометром и если оно выше — компаратором открывается VT2, и тот сбрасывает напряжение на базе выходного транзистора, по сути выключая выход. В работе это выглядит так:
Теперь к тому, почему в качестве шунта у меня дроссель. Всё просто: как я писал раньше — я просто забыл заказать шунты. А когда уже собирал блок и это выявилось, то ждать с Китая показалось долго, а в магазине дорого.
Поэтому не долго думая, порылся в распайке старых компьютерных блоков питания и нашёл дроссели, почти точно подошедшие по сопротивлению. Чуть подобрал и поставил. Дополнительно же это даёт защиту: В случае резкого изменения нагрузки, дроссель сглаживает ток на время, достаточное что б успел отработать ограничитель тока.
Это даёт отличную защиту от КЗ, но есть и минус — импульсные нагрузки «сводят блок с ума». Впрочем, для меня это оказалось не критично.
В итоге у меня получился вот такой блок питания:
Надписи на лицевой части сделаны с помощью ЛУТа. Индикаторы работы блоков питания выведены на 2-х цветный светодиод.
Где красный запитан от дежурных +5в и показывают что блок готов к работе. А зелёный от Power_Good, и показывает что блок задействован и исправен.
В свою очередь транзисторная развязка обеспечивает гашение красного светодиода и если у блока проблема — потухнет и красный и зелёный:
Маленькие экраны показывают заданные параметры, большие — состояние выхода де-факто. Энкодерами вращением устанавливается напряжение, короткое нажатие — вкл/выкл нагрузки, длинное — выбор режима установки напряжения/максимального тока. Ток ограничен 12.5А на канал. Реально в сумме 15 снимается.
Впрочем — на той же элементной базе, с заменой блоков питания на нечто 500-т Ваттное, можно снимать и по 20.
Не знаю, стоит ли приводить тут код скетча, простыня большая и достаточно глупая, + везде торчат хвосты под недоделанный функционал вроде коррекции выходного напряжения по АЦП обратной связи и регулировки скорости вентилятора.
Напоследок, пара слов. Оказалось что Arduino DUE при включении после длительного простоя может не начать выполнять программу. Т.е. включаем плату, думаем что сейчас начнёт выполняться наша программа, а в ответ тишина, пока не нажмёшь reset. И всё бы ничего, но внутри корпуса reset нажимать несколько затруднительно.
Поискал по форуму, несколько человек столкнулось с такой же проблемой, но решения не нашли. Ждут когда разработчики поправят проблему. Мне ждать было лениво, поэтому пришлось решать проблему самому. А решение нашлось до безобразия примитивное, впаять электролитический конденсатор на 22мкФ в параллель кнопке.
В результате, на момент запуска, пока идёт заряд этого конденсатора, имитируется нажатие кнопки reset. Отлично работает, прошиваться не мешает:
В заключение:
По-хорошему надо повесить на все радиаторы датчики температуры и регулировать скорость вентилятора в зависимости от температуры, но пока меня устроила и платка регулятора скорости вентилятора из какого-то FSPшного блока питания.
Ещё хотелось бы через АЦП обратную связь с блоком коммутации на случай залипания релюшки, а так же обратную связь по выходу, дабы компенсировать температурный дрейф подстроечных резисторов (в пределах 0.1в на больших напряжениях бывают отклонения).
А вот кнопки памяти и фиксированные настройки по опыту использования кажутся чем-то не нужным.
Источник: http://www.pvsm.ru/arduino/55662
Лабораторный блок питания на Arduino
Электропитание
Главная Радиолюбителю Электропитание
Этот блок предназначен для домашней лаборатории радиолюбителя. Его выходное напряжение можно регулировать от 0,5 до 15,5 В. Имеется защита от замыкания выхода или превышения допустимого тока нагрузки.
Порог её срабатывания можно изменять от 0,2 до 2 А. Информация об установленных напряжении, токе нагрузки и заданном пороге срабатывания токовой защиты выводится на экран ЖКИ от сотового телефона Nokia 5110.
Блок включают и выключают нажатиями на соответствующие кнопки. Третья кнопка даёт возможность временно отключить и вновь включить напряжение на выходе блока. С её же помощью восстанавливают работоспособность блока после срабатывания токовой защиты. При простое без нагрузки более 5 мин блок отключается от сети автоматически.
Схема блока питания изображена на рис. 1. Нажатие на кнопку SB3 подключает обмотку I трансформатора T1 к сети ~230 В.
Блок начинает работать, и прежде всего, программа микроконтроллера устанавливает высокий логический уровень напряжения на выходе D1 модуля Arduino Nano, обозначенного на схеме A1.
Этим открывается транзистор VT1, реле K1 срабатывает и замкнувшимися контактами K1.1 шунтирует кнопку SB3, которую теперь можно отпустить.
Рис. 1. Схема блока питания
На экране ЖКИ начало работы блока отмечается заставкой в виде двух вращающихся зубчатых колёс (рис. 2), которая сменяется информацией о версии программы (рис. 3).
Затем появляется основное изображение (рис.
4) со значениями выходного напряжения, тока нагрузки, отдаваемой в нагрузку мощности (программа вычисляет её как произведение первых двух параметров) и установленного тока срабатывания защиты.
Рис. 2. Заставка на экране ЖКИ
Рис. 3. Информация на экране ЖКИ
Рис. 4. Информация на экране ЖКИ
При нажатии на кнопку SB1 низкий уровень на входе D0 модуля A1 приводит к тому, что программа выводит на экран прощальное сообщение (рис. 5) и устанавливает низкий уровень на выходе D1 модуля A1. Транзистор VT1 закрывается, реле K1 размыкает контакты и этим отключает блок от сети.
Рис. 5. Сообщение на экране ЖКИ
Стабилизатор выходного напряжения собран на ОУ DA1.2 и транзисторе VT2. Коэффициент пропорциональности между установленным переменным резистором R15 задающим напряжением на неинвертирующем входе ОУ DA1.
2 и выходным напряжением стабилизатора равен R19/R18+1 (3,2 при указанных на схеме номиналах резисторов R18 и R19). Эти резисторы образуют делитель выходного напряжения, часть которого поступает для измерения на аналоговый вход A6 модуля A1.
Задающее напряжение получено из выведенного на вывод D6 модуля A1 образцового напряжения встроенного в этот модуль АЦП, которое можно включить или выключить программно.
Вывод D2 модуля A1 сконфигурирован программой как вход запросов её внешнего прерывания. Если ток нагрузки превысит заданный порог, напряжение на инвертирующем входе компаратора DA2 станет больше, чем на неинвертирующем.
Выходной транзистор компаратора откроется и зашунтирует резисторы R9 и R15 цепи регулировки выходного напряжения блока, которое станет нулевым. Одновременно низкий уровень поступит на вход запроса прерывания программы D2.
Процедура обработки прерывания выдержит паузу приблизительно 50 мс, а затем, если перегрузка не прекратилась, выключит образцовое напряжение на выходе D6. В результате выходное напряжение блока останется равным нулю и после прекращения перегрузки.
Пауза необходима для предотвращения аварийных срабатываний защиты при подключении к блоку нагрузки с конденсаторами большой ёмкости. Сигналом срабатывания защиты служит изображение ладони (рис. 6) на экране ЖКИ. Чтобы вернуть блок в рабочий режим, нужно нажать на кнопку SB2.
Рис. 6. Сигнал срабатывания защиты
Во время нормальной работы блока питания нажатие на кнопку SB2 выключает образцовое напряжение на выходе D6 модуля A2, в результате чего напряжение на выходе блока падает практически до нуля. Сигнализируя об этом, изображение на экране ЖКИ HG1 станет негативным. Повторное нажатие на кнопку SB2 вернёт блок в прежнее состояние.
К аналоговому входу A7 модуля A1 подключён движок переменного резистора R2, которым регулируют порог срабатывания токовой защиты блока. Подбирая резистор R1, устанавливают минимальное значение этого порога.
Вывод D9 сконфигурирован программой микроконтроллера как выход импульсов с ШИМ. В модуле Arduino Nano частота повторения этих импульсов по умолчанию – около 490 Гц.
Для удовлетворительного сглаживания импульсов, следующих с такой низкой частотой, и выделения их постоянной составляющей потребовался бы слишком сложный фильтр.
Поскольку в среде разработки программ Arduino IDE стандартная функция для изменения этой частоты отсутствует, она была повышена до 3900 Гц прямым изменением константы в соответствующем регистре микроконтроллера:
TCCR1B = TCCR1B & 0b11111000 I 0x02;
Вращение ручки переменного резистора R2 изменяет коэффициент заполнения импульсов на выходе D9.
Фильтр R3C1 выделяет из импульсной последовательности постоянную составляющую, которая поступает на неинвертирующий вход компаратора напряжения DA2 и задаёт порог его срабатывания.
На инвертирующий вход компаратора поступает с датчика тока (резистора R20) через усилитель на ОУ DA1.1 с коэффициентом усиления 25 пропорциональное току нагрузки блоканапряжение.
Печатная плата для этого блока питания не разрабатывалась. Всё собрано на двух макетных платах размерами 50×75 мм. На одной из них установлен ЖКИ HG1 с резисторами R10-R14, на другой – всё остальное, за исключением транзистора VT2 с теплоотводом и трансформатора T1.
Трансформатор должен быть мощностью не менее 36 В·А и с напряжением на вторичной обмотке около 18 В. Контакты реле K1 должны быть рассчитаны на коммутацию переменного напряжения не менее 250 В.
Если номинальное рабочее напряжение обмотки реле меньше выпрямленного диодным мостом VD1, излишек нужно погасить, включив последовательно с обмоткой реле резистор Rдоб, показанный на схеме рис.
1 штриховой линией.
К статье приложены две компьютерные программы, облегчающие подготовку изображений для вывода на графический ЖКИ. Исходные данные для них – цветные или монохроматические изображения в форматах *.BMP, *.JPG, *.PNG, *.TGA или *.TIFF. Программа GLCD84X48 Converter укладывает это изображение в размеры 84×48 пкс и преобразует его в битовый формат.
Она выдаёт результат в виде текстового файла на языке C, пригодного для включения в программу микроконтроллера, и помещает его под именем grap-hics.c на рабочий стол компьютера. Программа OLED_LCD 128X64 I2C con-vertimage работает аналогично, но формирует файл для загрузки в графический дисплей с размерами экрана 128×64 пкс и интерфейсом I2C.
Программа для модуля Arduino, библиотеки к ней и программы для компьютера имеются здесь.
Источник: http://www.radioradar.net/radiofan/power_supply/laboratory_power_supply_arduino.html
Источник питания для Arduino
- Источник питания для Arduino из ATX
- Подключение источника питания
Источник питания для Arduino из ATX
Источник питания для Arduino можно собрать в домашних условиях собственными руками не прибегая к покупки новых электронных компонентов в магазине, а все необходимые для сборки детали модно добыть из ненужного компьютерного блока питания причем с солидной силой тока.
Если же вы не намерены поднимать мощность штатного АТХ путем замены некоторых установленных в нем силовых элементов, то вполне сгодится для питания Arduino такой АТХ какой он есть с его традиционными напряжениями 3,3v; 5v; 12v.
Эти значения напряжений удовлетворяют фактически большинство электронных схем применяемых совместно с Arduino.
Подключение источника питания
Одним из главных соединителей блока питания ATX является 24-х пиновый коннектор, который показан на снимке ниже. Цветовые обозначения приведенные на рисунке идентичны цветам проводов в коннекторе.
У всех проводов какого либо определенного цвета имеются также одинаковые напряжения, проще говоря, если провод красного цвета, то на нем напряжение 5v, а черного цвета провода идут на «землю» (GROUND)и т.д.
Для вас же при сборке устройства наиболее востребованными будут напряжения питания с значением +5v (все красные провода), +12v (все провода желтого цвета) и GROUND (все черные провода). В цепях питания +5v и +12v значение тока по большей части хватает для нормальной работы устройства.
В тракте питающего напряжения На линии +3.3v величина тока также вполне удовлетворит ваши потребности в конструировании устройства, хотя +3.3v не очень часто применяется. Плюс пять VSB (+5 постоянного тока), -12v и -5v в основном с низким значением тока и также мало где используются.
С контактного вывода 14 (провод зеленого цвета) идет напряжение на включение и отключение. Для того, чтобы подать питание нужно замкнуть зеленый провод с GROUND (черный провод), то есть на 13 и 14 выводы поставить перемычку. Компьютерные блоки в большинстве своем работают только при наличии нагрузки в одном либо нескольких выходных трактах.
Ниже, на картинке показано как подпаять в цепь 5v резистор в качестве эквивалента нагрузки. Другие коннекторы меньшие по размеру, имеют те же цветовые обозначения как и на основном разъеме.
Проще говоря, коннектор желтого, красного и парой проводов черного цветов имеет вот такое постоянное напряжение: +12v (желтый провод), +5v (красный провод) и пара черных проводов (GROUND).
Источник: http://usilitelstabo.ru/istochnik-pitaniya-dlya-arduino.html
Ардуино питание от 5, 9, 12 вольт, можно ли подключить или надо использовать преобразователь
Источник: http://xn—–7kcglddctzgerobebivoffrddel5x.xn--p1ai/kommunikatsii/elektronika/arduino/847-arduino-pitanie-ot-5-9-12-volt-mozhno-li-podklyuchit-ili-nado-ispolzovat-konvertor-preobrazovatel
Лабораторный блок питания. Вольтметр
?elchupanibrei (elchupanibrei) wrote,
2017-01-11 21:52:00elchupanibrei
elchupanibrei
2017-01-11 21:52:00Categories:Решил тут пилить лабораторный блок питания. В фавориты выбились три участника: раз, два, три, три, три. Первые два не понравились шумами ШИМ-а на выходе.
Третий не понравился архаичным управленим. Буду скрещивать ужа с ежем – линейник номер три и немного магии.
Сердцем будет Arduino Nano v3.0 на чипе FTDI. В место ШИМ-а два 12-bit ADC MCP4725.
Так же в ролях участвуют: энкодер, термистор для котроля температуры радиатора и вентилятора, клон четырехстрочного ЖКИ экрана на HD44780 и пару операционников.
Код будет модульным – каждый узел будет в отдельном файле. Большинство людей с “ардуино головного мозга” пихают весь фунционал в один огромный скеч, образуя “спагетти” код, в котором трудно разобраться.
Сегодня расскажу как обстоят дела с первыми двумя модулями “adc.h” и “voltmeter.h”.
Встроенный АЦП Atmega328 имеет разрядность 10 бит. Существует програмный способ разогнать АЦП до любого заряда с помощью оверсемплинга. Подробнее об этом написанно здесь. Согласно таблице из документа, оптимальный вариант – 14 бит. 10 железных + 4 програмных. При этом сохраняется баланс между точностью (см.
шестую колонку в таблице) и “скростью” (третья колонка). Скрость взята в кавычки не случайно, четыре програмных бита стоят нам лишних 256-и измерений.Можно пойти еще дальше и аппаратно разногнать частоту измерения. За ее увеличение/уменьшение отвечает делитель называемый prescale.
Он показывает во сколько раз тактовая частота АЦП меньше системной частоты. Prescale изменяется двумя битами ADPS2/ADPS2 в регистре ADCSRA. Например у Arduino Nano 5v тактовая частота 16 МГц. Если мы выставим prescale равный 128, то скорость АЦП будет равна 16000кГц / 128 = 125кГц. Именно на такой частоте работает АЦП в Arduino IDE.
У этого метода есть одна неприятная особенность – с ростом частоты снижается эффективая разрешающая способность АЦП. Это хорошо видно на графике.
Atmel не рекомендует увеличивать частоту выше 200кГц. Я заметил искажения результатов только после 250кГц, prescale = 64.
У Atmega328 одно измерение занимает 13 тактов или 250 / 13 = 19 мкс. На 14 бит мы тратим 256 * 19 = 4864мкс = 0.0049сек. Это значит, что максимальная частота измеряемого сигнала не должна превышать ~200Гц.
Второй важный элемент любого АЦП – это источник опорного напряжения. Чем лучше его стабильность тем выше точность наших измерений. Типичная ошибка новичков – использовать в качестве ИОН-а обычный регулятор типа LM7805, LM1117 с точностью 5%. В Atmega328 есть встроенный опорник на 1.1 вольт.
Если он активирован, то нельзя подавать на AREF напряжение выше встроеннго ИОН-а.
К сожелнию встроенного опорника мне не хватило. Термистор подключен к 5в по стандартной схеме делителя в качестве R1. Сопротивление R2 выбранно 100кОм.
Так как проводимость моего термистра при 25С равна 100кОм, то на выходе будет 2.5в, что за гранью добра. Пока в качестве “опорника” взял встроенный в FTDI стабилизатор на 3.3в. Качество стабилизации овно. Выдает 3.4в и плавает вслед за входным.
Для отладки проекта сойдет, потом заменю на правильный – REF02. Выбрал его из-за дешевизны, на ebay просят $2.5 за две штуки.
Входное сопротивление ADC у Atmega328 около 10кОм. Поэтому желательно выбирать R2 в делителе меньше входного у меги. Чтоб не спалить “камень”, делитель надо расчитывать так чтоб на при максимальном напряжении на входе, на выходе было не больше Vcc + 0.5в, а при минимальном не ниже -1в. Я выбрал 100кОм / 8.2кОм.
Сравнил 10 и 14 бит. Предел измерений 0..40 вольт. Подал на вход 4.95в. Результат на фотографии. Справа количество отсчетов АЦП. Вывод – если нужен один знак после запятой то 10 бит вполне подойдут, если два то только 14 бит. Третьему знаку после запятой верить не стоит и в финальной версии блока я его уберу. В следующей части раскажу о “thermistor.h”.
Пока тестил код словил интересный глюк – сумашедшие значения. Теперь все переменные объявляю не просто int x, а только так int x = 0.Все важные параметры такие как напряжение ИОН-а “REFERENCE_VOLTAGE”, частота АЦП “ADC_PRESCALE” и передискретизация “EXTRA_ADC_RESOLUTION “, прописанны в “adc.h” и легко меняются под ваши задачи.Значение делителя и пин для вольтметра задается в “voltmeter.h” или сразу в теле функции если нужно больше двух.
Код проекта тут.
Источник: https://elchupanibrei.livejournal.com/28213.html
Подключение Mosfet к Aрдуино | Технохрень
Mosfet или МОП-транзистор это такая штука для управления нагрузкой. Типа как реле, но лучше
Бывают N и P типов. Картинка поможет:
Картинку надо запомнить чтобы потом не путаться в документации. Да, и N-канальные круче как правило
NPN mosfet подключение к arduino
Тут все без гемора. Вот пара вариантов подключения:
Если надо еще и плавно включать/выключать лампочку, либо не на всю мощность, а только на половину например, можно из ардуино пищать шимом, а между затвором и истоком включить еще конденсатор микрофарад на 300. Это нужно чтобы открыть мосфет на половину.. Однако это подойдет только для маломощной лампочки, потому как полуоткрытый мосфет имеет некислое внутреннее сопротивление и греется как утюг.
В эту схему подойдет к примеру мосфет h6n03l. Но тут есть нюанс в выборе резюков. Тот, который между ардуино и gate – чем больше сопротивление, тем меньше ток на ноге ардуино и меньше вероятность что она задымится. И чем больше сопротивление тем медленнее открывается мосфет.
Кароч 150 ом норм для ардуино (по закону ома I = E / R, I = 5 / 150 = 0.033 А — это 33 миллиампера, норм). Зачем он вообще нужен? Дело в том, что затвор (gate) у полевика имеет определенную емкость и является в какой-то мере конденсатором.
Так что в момент переключения через затвор проходят большие токи, которые может не выдержать ардуина. Для этого и нужен резистор между gate и пином.
А второй 10 кОм типа подтягивающий резистор – нужен чтобы держать мосфет закрытым и нагрузку выключенной пока порт ардуины в неопределенном состоянии например при загрузке (так называемое Z-состояние).
Но у этой схемы есть косяк – она медленновата. На переключение уйдет 600ns что подходит не для всех задач. Вот фронт и спад.
Желтая – выход с мосфета, зелено-бирюзово-светло-голубая – выход с ШИМ ардуино. Желтая не успевает. Для решения этой проблемы надо поставить парочку транзисторов как тут предлагают http://joost.damad.be/2012/09/dimming-12v-led-strip-with-mosfet-and.html
Но это нужно далеко не всегда и как правило достаточно первой схемы. И кстати есть вариант получше — про него в конце статьи.
PNP mosfet arduino
Тут чутка сложнее
Если нам надо на нагрузку подать 5 вольт:
- R1 ограничивает ток на затворе чтобы ардуинка не сломалась
- R2 подтягивает порт на землю чтобы не было ложных срабатываний
- D1 диод шотки чтобы не спалить все – он нужен только если нагрузка имеет большую индуктивность – например реле или мотор или еще что-то, где есть много намотанной проволоки. Кстати для NPN мосфета он тоже нужен. А на переменном токе не нужен, а то задымится)
Если на мотор или лампочку надо 12 вольт то все немного сложнее. Чтобы открыть мосфет нам надо подать 12 вольт на gate, а при таком варианте наш ардуино задымится. Надо еще один транзистор так:
Тут Q1 – биполярный транзистор – он то и включает 12 вольт на gate Q2, а R1 нужен чтобы ограничить ток чтобы ардуино опять таки не задымилась. Работает все так:
- подаем с ардуино high – q1 начинает проводить ток с коллектора на эмиттер и 12 вольт утекает не в gate q2, а на землю. q2 включает мотор
- подаем с ардуино low – q1 закрыт и не пропускает ток, 12 вольт через резистор подаются на gate q2, моторчик не крутится. все просто. резистор r2 нужен чтобы ограничить ток q1 и q2 чтобы он не задымились
Управлять больше чем 12 вольт можно, например 24 вольтами, если q1 выдержит. Чтобы наверняка можно добавить диод D2:
Рулим 220 вольтами с помощью мосфета
Мосфетом не совсем удобно рулить 220 вольтами. Ну всяким извращенцам это нравитсяВот пример схемы:
Эта схема диммера для лампочек, с помощью ШИМ можно менять яркость. Подробнее тут http://www.learningelectronics.net/circuits/dimmer-with-mosfet.html
А для нормального управления нагрузкой в 220 вольт вместо мосфетов можно использовать:
- симисторы типа bt131. Если нужна плавная регулировка света, то нужно делать что-то вроде этого:
Вкратце из за того, что напряжение переменное, надо будет с помощью прерывания отлавливать момент когда лучше всего открыть симистор, и сделать из обычной фазы что-то вроде этого:
Подробнее тут http://www.cyber-place.ru/showthread.php?t=525 - транзисторы дарлингтона
- КР1182ПМ1 (не особо надежно, по отзывам дохнут они)
Подключение Mosfet к Ардуино по-хорошему
Для таких вещей люди специально придумали специальные драйверы типа этих http://voltmaster-samara.ru/catalog/drajvery-mop-i-igbt-tranzistorov
Тут уж народ издевается над МОП транзисторами как хочет
Суть в том, что драйвер нужен как раз для согласования пяти вольт с выводов ардуино (а также других микроконтроллеров) с уровнями, необходимыми для управления затворами мосфетов.
На картинке первые две схемы а) и б) не очень, так как из-за кривых рук разработчика все может задымится. Зато вторые норм.
И кстати если надо использовать ШИМ — то лучше выбрать высокоскоростной драйвер типа TC4420.
Подбор MOSFET для подключения к ардуино
Качаем даташит, например для FQP30N06. Первое на что надо обратить внимание это ток и вольты:
Второе — определить по такой вот диаграмме падение напряжения. Например если мы рулим лампочкой с потреблением 2А, а для управления используем 5 вольт на gate:
Падение напряжения будет где-то 5,4 вольта и нам лучше найти что нибудь менее нагревательное
Третье — надо если используется ШИМ — время открытия и закрытия:
Если прокосячить с частотой, дать большую чем он может вытянуть, то транзюк перегреется.
Опубликовать вашу статью на нашем сайте можно тут!
Источник: http://skproj.ru/podklyuchenie-mosfet-k-arduino/