Питание ардуино компьютерным блоком питания. Лабораторный блок питания на Arduino
Блок питания умеет выдавать напряжение от 1 до 16 вольт, обеспечивать ток 0.1 – 8 ампер (при нормальном источнике напряжения) уходить в защиту и ограничивать ток. То есть его можно использовать для зарядки аккумуляторов, но я не рискнул, да и у меня уже есть. Еще одна особенность этого странного блока питания в том, что он питается от двух напряжений. Основное напряжение должно подкрепляться вольтодобавкой от батарейки, или второго блока питания. Это нужно для корректной работы операционного усилителя. Я использовал ноутбучный блок питания 19в 4А в качестве основного, и зарядку 5в 350мА от какого-то телефона в качестве добавочного питания.
Сборка.
Сборку я решил начать с пайки основной платы с расчетом забить болт, если не заработает, так как начитался комментов от криворуких, как все у них дымит, взрывается и не работает, да и к тому же я внес некоторые изменения в схему.
Для изготовления платы я купил новый лазерный принтер, чтобы наконец то освоить ЛУТ, ранее рисовал платы маркером (), тот еще геморрой. Плата получилась со второго раза, потому что в первый раз я зачем-то отзеркалил плату, чего делать было не нужно.
Окончательный результат:
Пробный запуск обнадежил, все работало как надо
После удачного запуска я принялся курочить корпус.
Начал с самого габаритного – системы охлаждения силового транзистора. За основу взял кулер от ноутбука, вколхозил это дело в заднюю часть.
Натыкал на переднюю панель кнопок управления и лампочек. Здоровенная крутилка это энкодер со встроенной кнопкой. Используется для управления и настройки. Зеленая кнопка переключает режимы индикации на дисплее, прорезь снизу для разъема юсб, три лампочки (слева направо) сигнализируют о наличии напряжения на клеммах, активации защиты при перегрузе, и об ограничении тока. Разъем между клеммами для подключения дополнительных устройств. Я втыкаю туда сверлилку для плат и резалку для оргстекла с нихромовой струной.
Засунул все кишки в корпус, подсоединил провода
После контрольного включения и калибровки закрыл крышкой.
Фото собранного
Отверстия проделаны под радиатором стабилизатора lm7805, который нехило греется. Подсос воздуха через них решил проблему охлаждения этой детали
Сзади выхлопная труба, красная кнопка включения и разъем под сетевой кабель.
Прибор обладает кое-какой точностью, китайский мультиметр с ним согласен. Конечно калибровать самопальную махарайку по китайскому мультиметру и говорить о точности достаточно смешно. Несмотря на это прибору найдется место на моем столе, так как для моих целей его вполне достаточно
Некоторые тесты
Взаимодействие с программой. На ней в реальном времени отображается напряжение и ток в виде графиков, так же с помощью этой программы можно управлять блоком питания.
К блоку питания подключена 12-вольтовая лампа накаливания и амперметр. Внутренний амперметр после подстройки работает сносно
Измерим напряжение на клеммах. Великолепно.
В прошивке реализована ваттосчиталка. К блоку подключена все та же лампочка на 12 вольт, на цоколе которой написано «21W». Не самый паршивый результат.
Изделием доволен на все сто, поэтому и пишу обзор. Может кому-то из читателей нехватает такого блока питания.
О магазинах:
Чип-нн порадовал скоростью доставки, но ассортимент маловат на мой взгляд. Этакий интернет магазин, аналогичный арадиомагазину в среднем городке. Цены ниже, кое на что в разы.
Чип-дип… закупил там то, чего не было в чип-нн, иначе б не сунулся. розница дороговата, но все есть.
Может ли микроконтроллер контролировать собственный источник питания? Почти!
Блок питания от старого компьютера (или новый) – это отличный способ питания Arduino и других устройств. Это рассматривается в этой и нескольких подобных статьях. Однако благодаря некоторым особенностям ATX, мы можем использовать его как “умный” блок питания, а это еще лучше.
В этой статье описано как просто при помощи микроконтроллера контролировать источник питания. Таким образом, вы можете использовать ATX блок питания в нескольких режимах: он может отдыхать, работать в экономичном режиме для слаботочных устройств и давать десятки ампер на 5В и/или 12В линии при необходимости. Общая стоимость управления блоком питания составляет несколько фунтов, вы не повредите блок питания, и сможете использовать его в дальнейшем.
Необходимые детали:
- Удлинитель ATX кабеля для материнской платы
- 3 провода с BLS штырьками
- 1K резистор (номинал не критичен)
- Термоусадочная трубка
Инструменты:
- Паяльник и припой
- Ножницы
- Зажигалка для нагрева термоусадочной трубки.
Основные элементы:
- Блок питания ATX
- 5В микроконтроллер или Arduino
- Мощные транзисторы для коммутации
Характеристики ATX-блока питания:
Блок питания 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 нужно только время от времени.
C этой схемой также часто просматривают: |
Старый блок питания от компьютера можно приспособить в БП для 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 пропорциональное току нагрузки блоканапряжение.
Печатная плата для этого блока питания не разрабатывалась. Всё собрано на двух макетных платах размерами 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 пкс и интерфейсом I 2 C.
Программа для модуля Arduino, библиотеки к ней и программы для компьютера имеются .
Дата публикации:
14.10.2017
Мнения читателей
- андрей
/ 05.11.2017 – 13:57
собрал работает.напрежение под нагрузкой держит стабильно.
Ардуино один из популярнейших микроконтроллеров на сегодняшний день. Описывать все плюсы этой сборки мы не будем, ведь если вы зашли сюда, то явно не просто так, а видимо поняли, что без него вам не обойтись. Мы догадываемся и о том, что вас мучает совсем другой вопрос… Можно ли питать Ардуино напряжением 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.