Arduino блок питания с защитой. Блок питания для Arduino из ATX. Неисправности и их решения

Один из пе ворвых вопросов, который возникнет у начинающего программиста контроллеров, будет от чего же будет питаться наш проект. Когда мы подключаем контроллер к компьютеру, все необходимое питание мы получаем по USB (5 В и до 500 мА). Но мы ведь хотим, чтобыконтроллер мог работать независимо, поэтому должны позаботиться о автономности.

Самый простой вариант – подвести питание 5В к контроллеру напрямую (для этого есть соотвтетствующий пины «5.5В»). Но если это напряжение случайно повысится, есть риск спалить контроллер, ведь это питание подведено напрямую.Кроме того на плате есть встроенный стабилизатор напряжения, который защитит контоллер от скачков. Он подключен к пину “VIN” и к отдельному разъему питания на плате. Какое-же напряжение можно на него подать?

Разъем 5.5/2.1, который используется в Arduino- это штырьковый разъем питания, с диаметром цилиндрической части вилки 5.5 мм и внутренним диаметров отверстия в ней 2,1мм. В продаже можно найти стандартные зарядные устройства как этого типоразмера, тк и близкого к нему 5.5/2.4 – они также нам подходят, поскольку разница в три десятых миллиметра особой роли не сыграет

Смотрим в параметры нашей платы, и видим:

Рабочее напряжение 5В

Напряжение питания (предельное) 6-20В

Рабочее напряжение – это то, что наш контроллер может подать на выводы или прочитать с входа. То есть, если к какому-то контакту подключено напряжение 5В, контроллер будет чситать, что это логическая 1, или в понятиях программной оболочки Arduino значение HIGH (это для цифрового входа, аналоговый вход будет интерпретировать напряжение как число от 0 до 1023, т.е 5 вольт на аналоговом входе для контроллера соответствуют значанию 1023)

Рекомендуемое и предельное питание – это то, что мы можем подать на плату от блока питания или батареек. На плате имеется преобразователь питания, который понижает подводимое напряжение до нужного контроллеру 5В. Поскольку он тоже имеет не 100% КПД, то чтобы получить нужные нам 5В нужно подвести не меньше 6, а лучше 7 вольт. А вот с предельным напряжением нужно быть осторожным. Теоретически преобразователь потянет и 20В. Но чем больше напряжение, тем больше он будет греться. Фактически эта мощность, которая не расходуется ни на что полезное. И если питание от батареек/аккумуляторов, то мы с их помощью просто будем греть воздух. К тому же чем выше напряжение и, соответственно, температура, тем больше вероятность, что наш контроллер рано или поздно накроется. И если в оригинальной плате используются качественные компоненты, то в китайских репликах уже после 14-15 вольт можно распрощаться с контроллером. Вывод - если не уверен в качестве контроллера, не превышай рекомендуемые 12В. И даже если уверен, без крайней необходимости не превышай этот предел.

Кроме того, нужно следить за тем, какой ток нам нужен для нашей периферии. Если потребление в какой-то момент времени превысит предел контроллера, то он начнет работать неустойчиво или вообще перезагрузится. Контроллер имеет ограничение на максимальный ток с одного выхода (для наиболее распространенной модели Arduino Uno это 50 мА) Чтобы зажечь светодиод или включить реле этого тока достаточно. А вот в случае двигателей и сервоприводов нам понадобится питать их отдельно. Для двигателей постоянного тока и шаговых двигателей используются специальные драйверы моторов, которые имют возможность независимого питания. Небольшие сервоприводы можно запитывать напрямую от контроллера, но если их много или они имею большую мощность, то их линии питания тоже рекомендуется запитывать отдельно.

Если наш проект является стационарным и рядом есть обычная розетка, то можно использовать обычный блок питания на 7 вольт. Они могут быть расчитаны как на ток в 1А, так и на больший – зависит от потребителей. Правило простое – посчитать максимальную потребляемую мощность, прибавить для безопасности 20%. Например, если мы используем двигатели постоянного тока с пусковым током до 500мА, то с учетом потребления самой платы около 40мА нам потребуется (500+500+40)*1,2=1248 мА. Т.е нас устроит блок питания на 1,5А. Если же у нас мобильный робот, то наиболее простой вариант – использовать обычные пальчиковые элементы питания. Если использовать батарейки АА (1,5 В), то нам понадобится их не меньше четырех (6В), а лучше пять-шесть (7,5-9 Вольт). Если использовать аккумуляторы того-же типоразмера, то понадобится для того-же напряжения батарейный отсек на 5 (6В) или на 6-7 аккумуляторов (7,2-8,4 В). Здесь описан наиболее распространенный вариант, когда все наши комплектующие рассчитаны на напряжение около 6 В.

Ардуино следит за напряжением на выходе, за током, и посредством ШИМ пинает силовой транзистор так, чтобы блок питания выдавал установленные значения.
Блок питания умеет выдавать напряжение от 1 до 16 вольт, обеспечивать ток 0.1 - 8 ампер (при нормальном источнике напряжения) уходить в защиту и ограничивать ток. То есть его можно использовать для зарядки аккумуляторов, но я не рискнул, да и у меня уже есть. Еще одна особенность этого странного блока питания в том, что он питается от двух напряжений. Основное напряжение должно подкрепляться вольтодобавкой от батарейки, или второго блока питания. Это нужно для корректной работы операционного усилителя. Я использовал ноутбучный блок питания 19в 4А в качестве основного, и зарядку 5в 350мА от какого-то телефона в качестве добавочного питания.

Сборка.

Сборку я решил начать с пайки основной платы с расчетом забить болт, если не заработает, так как начитался комментов от криворуких, как все у них дымит, взрывается и не работает, да и к тому же я внес некоторые изменения в схему.
Для изготовления платы я купил новый лазерный принтер, чтобы наконец то освоить ЛУТ, ранее рисовал платы маркером (), тот еще геморрой. Плата получилась со второго раза, потому что в первый раз я зачем-то отзеркалил плату, чего делать было не нужно.

Окончательный результат:



Пробный запуск обнадежил, все работало как надо



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

Натыкал на переднюю панель кнопок управления и лампочек. Здоровенная крутилка это энкодер со встроенной кнопкой. Используется для управления и настройки. Зеленая кнопка переключает режимы индикации на дисплее, прорезь снизу для разъема юсб, три лампочки (слева направо) сигнализируют о наличии напряжения на клеммах, активации защиты при перегрузе, и об ограничении тока. Разъем между клеммами для подключения дополнительных устройств. Я втыкаю туда сверлилку для плат и резалку для оргстекла с нихромовой струной.

Засунул все кишки в корпус, подсоединил провода




После контрольного включения и калибровки закрыл крышкой.

Фото собранного

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

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


Прибор обладает кое-какой точностью, китайский мультиметр с ним согласен. Конечно калибровать самопальную махарайку по китайскому мультиметру и говорить о точности достаточно смешно. Несмотря на это прибору найдется место на моем столе, так как для моих целей его вполне достаточно

Некоторые тесты

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

К блоку питания подключена 12-вольтовая лампа накаливания и амперметр. Внутренний амперметр после подстройки работает сносно

Измерим напряжение на клеммах. Великолепно.

В прошивке реализована ваттосчиталка. К блоку подключена все та же лампочка на 12 вольт, на цоколе которой написано «21W». Не самый паршивый результат.


Изделием доволен на все сто, поэтому и пишу обзор. Может кому-то из читателей нехватает такого блока питания.

О магазинах:
Чип-нн порадовал скоростью доставки, но ассортимент маловат на мой взгляд. Этакий интернет магазин, аналогичный арадиомагазину в среднем городке. Цены ниже, кое на что в разы.
Чип-дип… закупил там то, чего не было в чип-нн, иначе б не сунулся. розница дороговата, но все есть.

Ардуино один из популярнейших микроконтроллеров на сегодняшний день. Описывать все плюсы этой сборки мы не будем, ведь если вы зашли сюда, то явно не просто так, а видимо поняли, что без него вам не обойтись. Мы догадываемся и о том, что вас мучает совсем другой вопрос... Можно ли питать Ардуино напряжением 12 вольт? Ведь когда мы работаем с компьютером от USB, то Ардуино питается от того же компьютера - 5 вольтами. Здесь все хорошо, все согласовано и нет никаких проблем! Но как только Ардуино "отправляется на службу", ее питание по проводу от компьютера прерывается словно пуповина у новорожденного, а кормиться должны все:) Здесь и приходиться что-то мудрить. Так вот, как можно запитать Ардуино?

Большинство плат требует наличие питания в диапазоне от 4.5 до 9 вольт через разъем внешнего питания и 4.5-5 вольт через USB. Однако в инструкции написано 7-12 вольт, то есть будем считать, что оптимальным вариант это 9 вольт.

На самом деле из 9 вольт на плате получается 5 и 3,3 вольта. Для каждой цепочки питания на 5 и на 3.3 в на плате установлен свой стабилизатор напряжения. Вот как скажем на фото это lm1117 стабилизатор для 5 вольт, а далее на 3,3 вольта. Нас будет интересовать именно стабилизатор на 5 вольт, так как именно на нем будет гаситься напряжение, а значит рассеиваться мощность при подаче завышенного напряжения. Давайте прикинем что и как.

Сколько жрет Ардуинка

Не трудно прикинуть что в среднем это выходы по 20-40 мА пусть штуки 3-4 и собственное энергопотребление и потери, порядка 50-70 мА. То есть 40*3+70=190 мА, ну так и есть! Однако если начнете вешать активные датчики, то есть то что еще надо и питать, то здесь еще плюсом 20-30 мА на каждый датчик. Обычно силы тока в 200-300 мA хватает, на этом и остановимся.

Ардуино при питании меньше 5 вольт

При меньшем напряжении работа будет нестабильной, порядка 3,4-4 вольт, а при последующем понижении не будет работать вовсе.

Ардуино питание от 5 вольт

Этот вариант питание от компьютера. Реализовать такое питание можно также от зарядного устройства телефона или купив преобразователь на Али. В этом случае напряжение будет номинально и lm1117 не придется стараться над тем, чтобы понизить напряжение, а значит рассеивать будет нечего, разве что собственные потери. Однако это вариант подходит лишь для того чтобы "заливать" Ардуино. Если же уже все сделано и программа залита, то напряжение 5 вольт маловато. В этом случае при значительных нагрузках на выходы, возможны провалы в работе.

Ардуино питание от 9 вольт

Можно ли запитать Ардуину от батарейки "Крона" или блока пальчиковых батареек? Можно! На холостом ходу или с минимальной нагрузкой она проработает у Вас не один месяц. А вот уже с небольшим увеличением нагрузки время автономной работы быстро сойдет на нет. Если как мы рассматривали выше повесить на батарейку что-то посложнее, вроде датчиков любящих покушать и светодиодов индикации в особом изобилии, то батарейки может хватить совсем не надолго. Говорить предметно в этом случае можно только лишь относительно каждого конкретного случая.
Что же касается блока питания, то его необходимо подключать к разъему внешнего питания. То есть lm1117 надо будет погасить 4 вольт. Давайте прикинем какую мощность надо будет рассеять lm1117. Пусть ток потребления 250 мА.

P=U*I=4*0.25=1 Вт.

Вроде не так уж и много, да к тому же и спецификация 9 вольт для питания вполне допускает. Это напряжение учитывает все потери в элементах и стабилизаторе, а значит является одним из наиболее предпочтительных. Я бы сказал, что напряжение 79 вольт идеальный вариант для Ардуино.

Ардуино питание от 12 вольт

Здесь опять же два варианта где взять 12 вольт, это либо БП, либо аккумулятор. Да, да Ардуино довольно активно используется в автомобилях, а там 12-14 вольт - везде! Именно на автомобилистов и будем ориентироваться. Итак 14 вольт, сколько же надо погасить lm1117. Несложно посчитать 14-5=9 вольт. Считаем сколько надо рассеять.

P=U*I=9*0.25= 2.25 Вт. Здесь рассеиваемая мощность подлетела аж в 2,5 раза, все в общем-то пропорционально напряжению. Здесь вопрос уже о том, выдержит ли lm1117 или нет. Если заглянуть в даташит это малышки, то там выходной ток 0,8 А, но на напряжении 1,2 в, то есть она выдает мощность 1,2*0,8=0,96 Вт. Конечно, мощность возможная рассеиваемая и возможная выходная это все же разные вещи, но как-то все же эти величины должны сопоставляться... Кроме того, напряжение с которыми работает lm1117 до 13,8 вольт. Что может спасти, так это реализованная защита от перегрева и КЗ в микросхеме. По крайней мере в корпусе SOT-223 как у нас, подключать к 14 вольтам lm1117 не стоит. Все это на ваш страх и риск, а если уж сильно хочется, то с током не более чем на 1-2 светодиода, то есть 70-80 мА.

Как же подключить все-таки к 12 вольтам, получив 7-9 вольт и запитав Ардуино? Лучше всего использовать преобразователь или микросхему стабилизатор напряжения с более развитым корпусом скажем применяем микросхему lm7809 или КРЕН9, что одно и тоже. Корпус ТО-220, да еще лучше посадить на радиатор 5-10 кв. см из алюминия. Ток в этом случае до 2 А. Такой микросхемы с радиатором должно хватить! Далее приведена схема подключения для 7805, но 7809 подключается один в один!

Само собой ставим эту сборку до разъема питания. В итоге рассеиваемая мощность на падение напряжения в 2.,25 Вт будет рассеиваться частично на lm7809 и часть в самой Ардуино lm1117.

Старый блок питания от компьютера можно приспособить в БП для Arduino с большой силой тока. Также он дает стандартное напряжение 3.3В, 5В и 12В для питания практически любых электронных устройств используемых вместе с Arduino.

Необходимые материалы :
1. Компьютерный блок питания
2. Паяльник и припой
3. BLS штырьки
4. DC разъем 2.1 мм

Подключение

Основной разъём блока питания – ATX 20 pin (см. рисунок ниже). Цвета на схеме соответствуют цветам проводов на разъеме. На всех проводах одинакового цвета одинаковое напряжение, т. е. на всех красных проводах +5В, все черные провода GND и так далее. Наиболее полезными для нас проводами являются +5В (красные провода), +12 В (желтые провода) и GND (черные провода). На линиях +5 и +12В ток обычно достаточен для наших нужд.

На линии +3.3В ток также достаточен для нас, но это напряжение редко используется. +5 VSB (+5 постоянного тока), -12В и -5В как правило имеют очень низкий ток и редко используются.

Контакт 14 (зеленый провод) отвечает за включение/выключение. Для включения питания необходимо соединить зеленый провод с GND, то есть соединить 14 и 13 контакты перемычкой.

Большинство блоков питания для работы требуют нагрузку на один или несколько выходов. По ссылке показано, как добавить резистор на линию 5В в качестве нагрузки.

На других меньших разъёмах питания используется та же цветовая кодировка. Например, разъем с желтым, красным и двумя черными проводами имеет +12В (желтый провод), +5В (красный провод) и два GND.

Чтобы питать устройство от 12В, необходимо подключить желтый провод к + устройства, а черный к GND. Чтобы питать устройство от 5В, подключите красный провод к +, а черный провод к GND.

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

Припаяйте BLS штырьки к +12В(желтый провод), +5В(красный провод), +3,3В(оранжевый провод), GND(черный провод)

Припаяйте гнездо для питания Arduino. Провод 5В припаяйте к контакту 5В, GND к GND.

Блок питания для 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 пропорциональное току нагрузки блоканапряжение.

Печатная плата для этого блока питания не разрабатывалась. Всё собрано на двух макетных платах размерами 50x75 мм. На одной из них установлен ЖКИ HG1 с резисторами R10-R14, на другой - всё остальное, за исключением транзистора VT2 с теплоотводом и трансформатора T1.

Трансформатор должен быть мощностью не менее 36 В·А и с напряжением на вторичной обмотке около 18 В. Контакты реле K1 должны быть рассчитаны на коммутацию переменного напряжения не менее 250 В. Если номинальное рабочее напряжение обмотки реле меньше выпрямленного диодным мостом VD1, излишек нужно погасить, включив последовательно с обмоткой реле резистор R доб, показанный на схеме рис. 1 штриховой линией.

К статье приложены две компьютерные программы, облегчающие подготовку изображений для вывода на графический ЖКИ. Исходные данные для них - цветные или монохроматические изображения в форматах *.BMP, *.JPG, *.PNG, *.TGA или *.TIFF. Программа GLCD84X48 Converter укладывает это изображение в размеры 84x48 пкс и преобразует его в битовый формат. Она выдаёт результат в виде текстового файла на языке C, пригодного для включения в программу микроконтроллера, и помещает его под именем grap-hics.c на рабочий стол компьютера. Программа OLED_LCD 128X64 I2C con-vertimage работает аналогично, но формирует файл для загрузки в графический дисплей с размерами экрана 128x64 пкс и интерфейсом I 2 C.

Программа для модуля Arduino, библиотеки к ней и программы для компьютера имеются .


Дата публикации: 14.10.2017

Мнения читателей
  • андрей / 05.11.2017 - 13:57
    собрал работает.напрежение под нагрузкой держит стабильно.