Датчик положения выключателя для аварийного освещения

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


    Одно из решений под катом.


    Предыстория


    В современном мире очень много вещей стало завязано на беспрерывное энергоснабжение. Большинство видов интеллектуальной деятельности уже немыслимо без компьютера и коммуникаций, работающих в режиме 24/7. Это не хорошо и не плохо, это есть, и нужно с этим жить. Особенно, если твое рабочее место не в современном офисе, нафаршированном UPS и резервными дизель-генераторами, а в квартире обычной жилой многоэтажки. И так уж повелось, что надежность энергообеспечения жилого фонда в большинстве городов бывшего СССР оставляет желать много лучшего. В результате ниточка, связывающая домашнюю розетку и ближайшую электростанцию, имеет скверную привычку периодически рваться. Когда раз в полгода, а когда и три раза за сутки.

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

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

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

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

    Короче, идея с генератором умерла, так толком и не родившись. Из остальных реальных вариантов остались лишь аккумуляторы.

    Далее позволю себе простое повествование о своих душевных мытарствах и принятых решениях от первого лица без всякой претензии на вселенскую истинность. И сразу предупреждаю, что доводы мои кому-то могут показаться неубедительными, а принятые решения – спорными. Но, тем не менее, все тут описанное на данный момент реализовано в железе и успешно выполняет поставленные задачи.

    А если кого интересует сугубо практическая сторона вопроса и нет дела, как я докатился до жизни такой, он может пропустить много букв и перейти сразу к описанию готового решения.

    Кратко о выборе типа аккумуляторов


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

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

    В моем случае ни о какой мини-электростанции речи идти не может в силу объективных причин, и интересен был лишь резервный источник, возобновляемый из обычной розетки во время «просветления». Поэтому всю электронную начинку квартирного UPS было решено колхозить самостоятельно. А раз руки мои оказались полностью развязанными, то первое, что нужно было решить – это какой же тип аккумуляторов использовать.

    Поначалу я подумал так: «А почему бы и не литий? Стильно, модно, молодежно. Герметично, энергоэффективно, долговечно». Но когда посмотрел на цены, то мой литиевый пыл заметно поутих. Беглый поиск в сочетании со школьной арифметикой показали, что даже весьма «стремные» китайские банки 26650 на (конечно же) самые честные 5000 mAH обойдутся впятеро дороже кислотного аккумулятора той же энергоемкости. А если выбирать что-то не из самого дна отсортированного по цене прайса, то разница легко достигает 8-10 раз.

    И каким же образом можно окупить настолько большую разницу стоимости?

    Да, литий эффективнее хранит энергию на каждый килограмм и кубометр, и батарея размером с блок сигарет легко уделает десятикилограммовый свинцово-кислотный аккумулятор. Но так ли важен этот факт для стационарного применения?

    Безусловно, хороший «литий», да при правильном подходе прослужит дольше. Но в десять ли раз?

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

    Короче, по сумме факторов решил отложить идею с литием до следующей итерации. Может быть, через несколько лет что-то изменится, а пока свинец – это наше все.

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

    Что касается свинцовых аккумуляторов, то тут тоже имеются несколько вариантов. «Правильный» вариант – специализированные батареи резервного питания, которые применяются в UPS, на базовых станциях сотовой связи, и других подобных местах, где от них требуется способность брать и отдавать большие токи, эпизодически переживать сильный разряд, да и вообще работать, не отвлекая людей на обслуживание.

    Еще один «правильный» вариант – тяговые батареи для электро-автопогрузчиков или, чем черт не шутит, дизельной подводной лодки. Эти аккумуляторы обладают высокой долговечностью и хорошей толерантностью к глубокому разряду, при этом не отнимают у хозяина возможности «долить водички».

    Ну и «неправильный» вариант – стартерная АКБ из ближайшего автомагазина. Такой аккумулятор может кратковременно выдать на гора до киловатта мощности, но любой разряд для него стресс, как работа для лентяя. А за современными кальциевыми аккумуляторами вообще закрепилась слава одноразовых батареек: «разрядил – меняй».

    Ну что же, я надеюсь, никто не сомневается в том, какой вариант был в итоге мною выбран для реализации? Правильно, третий. И причины тут кроются не только в известной бородавчатой амфибии, но и простом прагматическом расчете. Стартерные батареи в разы дешевле всех остальных вариантов, порой приближающихся по стоимости к литию. И вместо того, чтобы трястись над дорогим аккумулятором, гораздо свободнее себя чувствуешь в ситуации здорового пофигизма, когда замена оборачивается убытками в размере похода за продуктами на пару недель. Тем более, если не давать этим аккумуляторам разряжаться до потери пульса, то срок их службы в роли резервных исчисляется многими годами. Всегда ведь можно поставить аккумулятор большей емкости, установить ограничение разряда помягче, и все равно получить более выгодное соотношение цена/емкость, чем у «правильной» батареи, терпящей глубокий разряд.

    Главное в этом деле – обеспечить в месте установки аккумуляторов вентиляцию хотя бы на уровне «дырка в стене». Ну и организовать банальную защиту от короткого замыкания, потому что низковольтность источника тока притупляет бдительность и все может закончиться очень хреново.

    Война токов в отдельно взятой квартире


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

    Напомню, изначально мне хотелось обзавестись генератором переменного тока на 230 В. Однако, после смирения с объективной реальностью и мысленного перехода на аккумуляторы, инерция мышления уже понесла меня на известный китайский интернет-маркет с целью выбора подходящего преобразователя постоянного тока в переменный. И вот в процессе изучения характеристик сначала всплыл забытый было термин «модифицированная синусоида», а затем здравый смысл начал подбрасывать неудобные вопросы.

    Суть вопросов сводилась к следующему. Покрыть все энергетические потребности квартиры небольшой батареей все равно не выйдет. Бойлеры, микроволновка, стиральная машина, мощный десктопный компьютер все равно окажутся неподъемными по мощности. А холодильник, вытяжка, и даже банальный вентилятор не смогут нормально работать из-за этой самой модифицированной синусоиды. Конечно, есть инверторы и с истинной синусоидой, но они не только более дорогие, но и менее эффективные. Да и вопрос мощных потребителей все равно не решается.

    Какие же потребители остаются в рамках бюджета? Их не так много на самом деле: бытовая электроника типа ноутбуков и телефонов/планшетов, роутер, ARM-сервер, по настроению – телевизор, ну, и, конечно, освещение. Тем более, что исходный посыл статьи (да и моя личная мотивация) заключается именно в обеспечении функционирования резервного рабочего места в виде ноутбука и минимальном бытовом комфорте, типа света в туалете.

    Почти все эти приборы требуют для своей работы постоянное напряжение от 5 до 21 В и объективно нет никакой надобности сначала повышать напряжение аккумулятора до 230 В переменного тока, чтобы потом понизить и выпрямить его снова до плюс-минус исходного уровня. На этих преобразованиях легко потерять до 50% энергии, что мне совершенно не улыбалось.

    Короче говоря, вот так плавно пришла мысль использовать в качестве альтернативной именно низковольтную сеть постоянного тока. А после примерного подсчета потерь в проводах, первоначальные 12 (13.8) В превратились в более практичные 24 (27.6) В.

    Сначала хотелось взять даже 36 (41.4) В, но после изучения характеристик некоторых электронных компонентов, которые я планировал применять для работы со всем этим хозяйством, аппетит пришлось поумерить.

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

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

    Для включения потребителей в комнатах, в каждый «большой» блок розеток была добавлена еще одна. А чтобы никто не спутал обычную розетку с резервной, в качестве последних были установлены изделия «американского» типа с плоскими контактами разной ширины. Это, во-первых, не позволит включить пылесос в сеть постоянного тока, а, во-вторых, такая розетка, в отличие от европейской, при использовании «правильной» вилки сохраняет всегда одинаковую полярность включения.


    Для этих розеток были изготовлены адаптеры ноутбуков, понижающие напряжение до нужных 18-20 В и оснащенные соответствующими разъемами. Понятно, был сделан пяток обычных пятивольтовых USB-зарядок для всякой мелочи. Ну и закуплена на всякий случай пара небольших преобразователей 24/230 В, мощностью 50 и 200 Вт.

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

    Про силовую установку в этой статье я рассказывать не буду, тем более в ней нет ничего интересного, поэтому перейду сразу к одной из «низовых» проблем, а именно к вопросу утилизации накопленной аккумулятором энергии для целей освещения.

    Освещение


    Итак, при разводке проводов по квартире параллельно с основной проводкой были протянуты провода альтернативной сети постоянного тока напряжением 24 (27.6) В. Среди прочего, петля, состоящая из пары таких проводов, была заведена в каждую коробку выключателя и затем вместе с проводами сети 230 В подведена к потолочным светильникам (если в комнате их было несколько, то альтернативный провод подводился только к одному).

    Что делать с выходом сети постоянного тока в области светильника – дело индивидуального подхода. В качестве источника света была выбрана обычная 24-вольтовая светодиодная лента. Ее отрезки разной длины (пропорционально площади комнаты) в зависимости от конструкции светильников были либо вмонтированы непосредственно в их корпуса, либо приклеены на те поверхности, с которых и светить будет хорошо, и откуда в глаза не сильно бросается.

    В любом случае это проблема скорее эстетического, чем технического плана, и речь сейчас о другом.

    Итак, в коробке каждого выключателя у меня есть петля фазного провода сети 230 В для включения «обычного» света, и петля обоих проводов сети постоянного тока для аварийного освещения. От этого и пляшем.

    В конечном итоге передо мной стала задача создать некое устройство, способное отделить друг от друга три состояния:

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

    Действия считаем односторонними, то есть, например, выключение уже выключенного освещения просто ничего не изменяет. Эти состояния можно отличить друг от друга, если решить задачи определения работы сети переменного тока и положения контактов выключателя. При этом передо мной стояли следующие исходные условия:

    1. Управление как основным, так и аварийным освещением должно осуществляться полностью прозрачно с одного органа управления, никакого «колхоза» из дополнительных кнопок.
    2. При прекращении, или наоборот, возобновлении подачи энергии, аварийное освещение должно наследовать текущее состояние основного освещения.
    3. Напряжение в сети постоянного тока присутствует всегда, а не только при аварии сети переменного тока.
    4. От обычной сети в большинстве коробок – только петля фазного провода, нуля нет.
    5. Какая-либо гальваническая связь между основной и аварийной сетями недопустима.
    6. Выключатели в разных комнатах разных моделей и конструкций (подбирались под дизайн самих комнат), есть сдвоенные.
    7. В коробках под выключателями полно свободного места.

    Конечно, отсутствие в коробках нуля сети переменного тока оказалось сильно усложняющим дело просчетом проектирования. Без него определение наличия напряжения на входе выключателя становится невозможным. Технически можно было бы использовать в качестве нуля отрицательный провод сети постоянного тока, но это противоречит совершенно нерушимому пункту 5 моего техзадания.

    Датчик


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

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

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

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

    Вторым «входным параметром» моего будущего устройства должно быть положение контактов выключателя.

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

    Можно было вместо одинарного выключателя взять двойной и механически «запараллелить» его половинки, чтобы они стали единым целым. Этот вариант не отличался внешней эстетичностью и не решал проблему в тех комнатах, где освещение было двухконтурным, а выключатель двойной изначально.

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

    Для «слипания» контактов геркона нужна гораздо большая сила магнитного поля, чем для последующего их удержания. И, похоже, разница эта выражается даже не в процентах, а разах. В результате, после приближения магнита, приводящего к срабатыванию геркона, его последующее удаление на дистанцию хода клавиши выключателя не ослабляет поле достаточно для отпускания контактов.

    Короче говоря, нужно было придумать такой метод, который не требовал бы модификации выключателя. И этот метод удалось найти.

    Выше я описал трансформатор тока, который позволяет определить наличие переменного тока в проводе без разрыва и гальванического контакта. А ведь любой трансформатор – устройство двунаправленного действия (в отличие от того же датчика Холла), его первичная и вторичные обмотки взаимозаменяемы.

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

    И вот тут уже становится интереснее. Через кольцо продет провод, который тут же, в нескольких сантиметрах, подключен к одному из контактов выключателя. Остается только обеспечить этому току обратный путь с другой стороны выключателя, чтобы получить прибор для «зондирования» положения контактов. А по той причине, что ток этот переменный, мостом для него может стать обычный конденсатор.


    В принципе, для замыкания этой цепи в определенных условиях конденсатор не нужен. Если «вкачать» в трансформатор ток достаточно высокой частоты, то паразитной емкости между проводами будет достаточно для прохождения.


    Итак, что нужно для организации подобного детектора:

    1. Трансформатор тока.
    2. Измеритель напряжения на выходе трансформатора.
    3. Источник высокочастотного переменного тока.
    4. Измеритель тока, текущего по обмотке реверсивно включенного трансформатора.

    Самая сложная в плане подбора оптимальных параметров – это трансформатор, который в режиме трансформатора тока должен давать приемлемое напряжение с частотой 50 Гц, а в режиме активного «зондирования» состояния выключателя иметь приемлемый коэффициент передачи на частоте в сотни КГц. Этот элемент не представляется возможным симулировать в программе моделирования электронных схем, да и с математическим расчетом все оказалось очень непросто. Пришлось брать паяльник в руки и часами «гонять» разные варианты в поисках наилучшего.

    Количество витков и оптимальное сопротивление нагрузки подбирались опытным путем и не факт, что я не промахнулся мимо наилучшего соотношения. Как результат экспериментов появилась следующая конструкция:

    • Магнитопровод из феррита с проницаемостью 10000, размером 10x6x4 мм.
    • Обмотка 30 витков эмалированным проводом 0.25 мм.
    • Активная нагрузка обмотки – 1 кОм.

    Магнитная проницаемость довольно большая, наверное, имело бы смысл использовать кольцо на 5000 или даже 2000 единиц, но в достаточном количестве у меня были именно эти кольца. Вообще, проницаемость в данном случае является компромиссной величиной. Слишком низкая делает трансформатор непригодным для работы на частоте 50 Гц, а слишком высокая все портит на частотах выше сотен килогерц.

    Множественные эксперименты подтвердили реальность идеи и были получены такие результаты:

    • В режиме трансформатора тока коэффициент передачи получился около одного милливольта на Ватт протекающей мощности (напряжение 220-230 В).
    • В режиме зонда, в зависимости от частоты и емкости утечки, разница тока при замкнутых и разомкнутых контактах выключателя достигала двух-трех раз.

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


    В железе


    В отличие от большинства других своих конструкций, тут уже на ранних этапах обдумывания, было принято решение сразу использовать микроконтроллер. Исходя из потребностей и опыта, выбор пал на ATtiny13A. В этом кристалле есть АЦП, причем с возможностью использовать внутренний опорный источник 1.1 В вместо питающего напряжения. Есть ШИМ, который отлично подходит для генерации сигнала зондирования. И, что, как оказалось впоследствии, немаловажным, есть EEPROM, позволяющая хранить калибровочные данные.

    Обычно, при обдумывании подобных простых устройств я действую по принципу «приложи все силы, чтобы сделать устройство на непрограммируемой элементной базе, и только если не удается обойтись одним-двумя «активными» корпусами, бери контроллер».

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

    Здесь же нужно совместить как минимум генератор, измеритель напряжения, и какой-то триггер для хранения текущего состояния между измерениями. В общем, любой умозрительный набросок требовал как минимум три корпуса только на «ядро», и контроллер оказался в разы практичнее.

    Напряжение от трансформатора тока при нагрузке 10-20 Вт равно 10-20 мВ и оно слишком мало, чтобы подавать его на вход ЦАП с пределом даже 1.1 В. Поэтому кроме контроллера нужен еще и усилитель с коэффициентом передачи около 100, чтобы увеличить напряжение сигнала минимум до сотен милливольт.

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

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


    Тут напряжение сети постоянного тока через экономичный линейный стабилизатор LM2931-5.0 питает контроллер. Этот стабилизатор по корпусу, функционалу, и цоколевке аналогичен популярному 78L05, но отличается от него более низким собственным потреблением (около 500 мкА при нагрузке в 10 мА) и большей толерантностью к коротким всплескам входного напряжения. Если предполагается работа при напряжении не больше 20 В, можно использовать еще более экономичный аналог LP2950-5.0.

    Согласно даташиту микросхема LP2950-5.0 тоже может использоваться при входном напряжении до 30 В. Но на практике уже при 24 В это превращается в русскую рулетку. Первое же выключение мало-мальски заметной нагрузки в одной из комнат, создало в проводке индукционный выброс, выбивший мне оба установленных на тестирования датчика, причем погорели не только стабилизаторы, но и контроллеры. Поэтому запас по входному напряжению должен быть не менее 50%, а лучше 100%.

    Трансформатор на схеме не показан, но его обмотка подключается к пинам TR1 и TR2.

    В качестве ключевого элемента для коммутации нагрузки использован слаботочный P-канальный MOS-транзистор 2SJ196 (ток до 1 А должен быть достаточным для любого светодиодного светильника), но может быть использован любой другой, подходящий по цоколевке, максимальному току и предельному напряжению стока.

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

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

    Еще на АЦП подается не сам усиленный сигнал с трансформатора, а его огибающая, которую можно измерить одиночной выборкой, а не «потоковым» оцифровыванием на протяжении некоторого времени. Для выделения огибающей использованы два диода Шоттки, включенных по схеме удвоения напряжения. Такое включение образует классический амплитудный детектор, у которого в значительной мере скомпенсировано падение напряжения на самих диодах.

    Принцип действия датчика прост. Сперва рассмотрим алгоритм действий, необходимых для измерения тока в проводе.

    В режиме измерения тока пин PB0 переводится в режим выхода и заземляется подачей логического нуля. Это исключает подачу в точку TR1 каких-либо сигналов из контроллера. Параллельно те же действия выполняются над пином PB3, в результате чего верхний по схеме вывод конденсатора C2 оказывается заземлен. Этот конденсатор совместно с резистором R1 создает ФНЧ с частотой среза около 1500 Гц. Благодаря этому фильтру сильно уменьшается роль различных высокочастотных помех в формировании измеряемого сигнала.

    Затем подается высокий уровень на PB4 для запитки усилителя сигнала. После завершения переходных процессов ток частотой 50 Гц с выхода трансформатора усиливается и попадает на выпрямитель, где заряжает конденсатор C8.

    Заряд конденсатора C8 измеряется при помощи ADC1 и из полученного значения напряжения делается вывод о протекающем через трансформатор «первичном» токе.

    Активное зондирование выполняется по-другому. Первым делом пин PB0 переводится в решим ШИМ, и на него подается сигнал с частотой от сотен килогерц до единиц мегагерц. Этот сигнал несколько ослабляется резистивным делителем и подается на обмотку трансформатора тока в точке TR1. Конденсатор C1 совместно с одним верхним плечом делителя R4 создают ФНЧ с частотой среза около 1.5 МГц, который уменьшает уровень высокочастотных гармоник от прямоугольных импульсов.

    Пройдя через обмотку трансформатора зондирующий сигнал из точки TR2 попадает на все тот же усилитель и детектор, точно так же в итоге заряжая конденсатор C8 до напряжения, пропорционального нагрузке во «внешней» цепи трансформатора. Точно так же заряд конденсатора измеряется при помощи АЦП микроконтроллера.

    Теперь пояснения по некоторой «рассыпухе».

    Резистор R5 призван ограничить напряжение на затворе силового ключа, которое для низковольтных MOSFET обычно не должно превышать 20 В. В моем случае сеть постоянного тока имеет напряжение до 30 В, что и продиктовало необходимость делителя 1:3, который получается совместно с R3. При питании от источника менее 20 В резистор R5 не нужен (заменяется перемычкой).

    Конденсаторы C4 и C5 соединены параллельно для достижения емкости 2 мкФ. Эта пара конденсаторов примечательна тем, что должна одинаково хорошо пропускать сигналы и низких и высоких частот. Тут можно было бы использовать параллельное соединение электролитического конденсатора на несколько микрофарад и керамического на сотню-другую нанофарад, но «электролит» такой малой емкости уже не дает выигрыша по размерам, если сравнивать его с микрофарадной «керамикой». Правда, керамического конденсатора на 2 мкФ купить не удалось, поэтому и поставил два одинаковых.

    Конечно, для частоты 50 Гц проходной конденсатор на 2 мкФ маловат, но тут пришлось идти на компромисс. Для экономии энергии, питание на усилитель подается только во время измерений. А большое значение емкости разделительного конденсатора обозначает длительный переходной процесс выхода усилителя в рабочий режим. При емкости в 100 мкФ это время, например, достигает нескольких секунд. Вот и пришлось поступиться эффективностью ради скорости.

    Резисторы R4 и R1 образуют делить напряжения, который более-менее уравнивает пятивольтовое переменное напряжение на выходе ШИМ с выходным напряжением трансформатора тока.

    Конденсатор C8, как было сказано ранее, накапливает напряжение, подлежащее измерению. Лучше, если это будет качественный конденсатор с минимальным током утечки.

    Отдельного упоминания заслуживает двухштырьковая «гребенка» TP1/TP2, подключенная к ножке сброса микроконтроллера. Эти контакты используются не просто для перезагрузки, а для входа в режим калибровки, о котором ниже. Просто после реализации всех хотелок у контроллера уже не оставалось свободных пинов, а необходимость добавления одного простейшего органа управления возникла в процессе отладки прошивки. Вот и пришлось использовать для этой цели ножку сброса контроллера.

    Все «мелкие» контроллеры AVR имеют возможность отключения входа RESET и перевода соответствующего пина в режим GPIO. Однако в тогда контроллер утрачивает возможность прошивки обычным программатором, и поэтому данный режим не пользуется популярностью. Но если стоит задача просто добавить в схему кнопку, то можно обойтись и без столь радикальных мер. Дело в том, что у управляющей программы всегда есть возможность узнать, что именно послужило источником последнего сброса, и в зависимости от этой информации, выполнять разные действия при простом включении и при принудительной перезагрузке сигналом RESET.

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

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

    Суть тут в добавлении выделенного конденсатора, включенного так, чтобы кратчайшим путем замкнуть путь ВЧ-току через контакты выключателя.


    Конденсатор C10 должен быть рассчитан на напряжение не менее киловольта, а его емкость была выбрана по компромиссному принципу так, чтобы и надежность срабатывания была достаточная для практического использования, и чтобы паразитный емкостный ток через лампу был не слишком велик. На практике можно попробовать «поиграться» этим номиналом, если на то будет необходимость.

    В любом случае, оснащенный таким датчиком выключатель уже нельзя воспринимать как идеальный. Он скорее аналогичен выключателю с индикатором, поэтому, во-первых, может давать паразитную засветку или мерцание некачественных светодиодных ламп, а во-вторых, может стать причиной хоть и не сильного, но удара током. Поэтому никогда не нужно работать с осветительной проводкой, полагаясь только на выключатель в стене, всегда отключайте «рубильник» на входе.

    И, раз все равно пришлось вносить часть сети переменного тока на плату, добавил туда еще и два запорных дросселя, которые не пропустят высокочастотный зондирующий ток в проводку. Практическое значение частоты зондирующего напряжения может достигать нескольких МГц и мне, как радиолюбителю, сильно претит сама идея своими же руками увеличивать количество помех в сети.

    Дроссели L1 и L2 должны быть силовыми, намотанными проводом заметной толщины на сердечники типа «гантель» или «кольцо». Сигнальные дроссели в «резисторном» аксиальном исполнении использовать нельзя.

    Первичный виток трансформатора тока теперь представляет собой отрезок провода, продетый через кольцо и припаянный к точкам TR3 и TR4 на плате. Лучше, если этот провод будет экранированным, экран при этом подключаем к TR5 и TR6 с двух сторон от кольца.

    Точка TR6 совершенно осознанно ни к чему не подключена, это не ошибка. Экран желательно к чему-нибудь припаять на плате, но при этом он не должен образовывать короткозамкнутый виток внутри магнитопровода. Поэтому соединение с общей линией сделано только с одной стороны, а второй его конец так и должен болтаться в воздухе.

    Софт


    Код прошивки и собранный HEX-файл приложены в конце статьи вместе со схемой и разводкой печатной платы.

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

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

    В режим калибровки датчик входит при каждом включении, пока отсутствуют калибровочные данные, или же после замыкания контактов TP1 и TP2. Вход в первый этап калибровки отмечается пятикратным миганием аварийной лампы.

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

    Далее начинается второй этап калибровки и аварийная лампа мигает дважды. 7.5 секунд времени дается на перевод выключателя в положение «включено» и по истечении таймаута программа производит измерение потребляемого лампой тока. Если лампа имеет несколько уровней яркости, то после включения нужно сразу же переключить ее на минимум, чтобы в дальнейшем датчик корректно работал с любым из имеющихся уровней.

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

    Успешное окончание калибровки отмечается однократным миганием аварийной лампы и, если осветительная сеть после третьего этапа все еще остается обесточенной, включением аварийного освещения в ближайшем рабочем цикле опроса.

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

    В случае упорного нежелания датчика калиброваться с двукратным миганием в финале, нужно попробовать увеличить емкость C10.

    Итог


    Устройство получилось довольно простое, достаточно компактное для размещения в коробке выключателя, но не сказать, чтобы совсем простое в настройке. На компонент современного «умного дома» оно конечно не тянет, ведь в нем нет 5G, облачного управления, и даже банальных WiFi с GPS не предусмотрено. Но тем не менее свою единственную функцию восемь таких девайсов выполняют, а ничего другого от них в условиях блекаута и не требуется.

    Исходный код прошивки (Atmel Studio 7)
    #define F_CPU 9600000 // частота ядра (команда установки фъюзов: avrdude.exe -U lfuse:w:0x7a:m -U hfuse:w:0xff:m)
    
    #include <avr/io.h>
    #include <avr/wdt.h>
    #include <avr/sleep.h>
    #include <avr/interrupt.h>
    #include <util/delay.h>
    #include <avr/eeprom.h>
    
    //#define PROTEUS
    
    typedef unsigned char bool; // просто булевый тип
    #define true  (0 == 0)
    #define false (0 != 0)
    
    #define MAX_U10BIT 0b0000001111111111 // максимально возможное значение на выходе АЦП
    
    #define INTERVAL         3   // интервал опроса, сек
    #define CUR_MINIMAL_DIFF 50  // минимальная разница при измерении тока потребления, LSB
    #define RES_MINIMAL_DIFF 50  // минимальная разница при измерении сопротивления выключателя, LSB
    #define FREQ_DIV_OFFSET  2   // начальное значение делителя частоты ШИМ
    #define FREQ_MAXIMAL_DIV 6   // максимальное значение делителя частоты ШИМ
    
    EEMEM unsigned int  EEPROM_cur_edge;
    EEMEM unsigned int  EEPROM_res_edge; 
    EEMEM unsigned char EEPROM_frequency_dividor;
    
    unsigned int cur_edge, res_edge; // пороги срабатывания датчиков, извлекаются из EEPROM или определяются при калибровке
    unsigned char frequency_dividor; // делитель чатоты ШИМ, извлекается из EEPROM или определяется при калибровке
    unsigned char clk = 0; // счетчик циклов watchdog
    bool tp_reset = false; // признак замыкатия TP1 и TP2
    
    // инициализация некоторых переменных
    static void init_vars(void) {
      if(MCUSR & (1 << EXTRF)) { // определяем, был ли последний сброс результатом замыкания TP1 и TP2
        tp_reset = true;
        MCUSR &= ~(1 << EXTRF); // бит EXTRF не сбрасывается даже после перезагрузки другим способом, делаем это вручную
      }
    }
    
    // инициализация пинов
    static void init_pins(void) {
      DDRB |= (1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB4); // все выходные пины остаются с логическим нулем
    }
    
    // инициализация прерываний и watchdog
    static void init_interrupts(void) {
      sleep_enable(); // разрешаем спящий режим
    
      WDTCR = (1 << WDCE) | (1 << WDE); // подготавливаем watchdog
      WDTCR = (1 << WDTIE) | WDTO_1S; // watchdog генерирует прерывание вместо сброса всего контроллера, интервал 1 секунда
    
      sei(); // разрешаем прерывания
    }
    
    // считываем калибровочные данные
    void init_settings(void) {
      cur_edge = eeprom_read_word(&EEPROM_cur_edge); // пороговое значение тока
      res_edge = eeprom_read_word(&EEPROM_res_edge); // пороговое значение сопротивления
      frequency_dividor = eeprom_read_byte(&EEPROM_frequency_dividor); // делитель частоты зондирования
    }
    
    // переключение состояния нагрузки
    static void toggle_load(bool state) {
      if(state) {
        PORTB |= (1 << PB1);
      } else {
        PORTB &= ~(1 << PB1);
      }
    }
    
    // мигание нагрузкой
    static void blink_load(unsigned char count) {
      for(unsigned char i = 0; i < count; ++i) {
        _delay_ms(200);
        toggle_load(true);
        _delay_ms(200);
        toggle_load(false);
      }
    }
    
    // останавливаем работу (используется при невозможности калибровки)
    static void stop(void) {
      set_sleep_mode(SLEEP_MODE_PWR_DOWN);
      while(true) sleep_cpu();
    }
    
    // управление питанием усилителя
    static void toggle_amp(bool state) {
      if(state) {
        PORTB |= (1 << PB4); // подаем высокий уровень на PB4
        _delay_ms(250);      // переходные процессы в усилителе длятся около 200 мс.
      } else {
        PORTB &= ~(1 << PB4);
      }
    }
    
    // управление ФНЧ
    static void toggle_lpf(bool state) {
      if(state) {
        DDRB |= (1 << PB3); // переводим PB3 в режим выхода (с логическим "0") для заземления верхнего вывода C2
      } else {
        DDRB &= ~(1 << PB3); // переводим PB3 в режим входа (без подтяжки) для отключения C2 от земли
      }
    }
    
    // управление генератором зонзирующего сигнала
    static void toggle_gen(bool state) {
      if(state) {
        TCCR0A |= (1 << COM0A0) | (1 << WGM01); // активируем генератор меандра (без ШИМ) с инверсией выхода OC0A при достижении счетчика значения из OCR0A
    #ifndef PROTEUS
        TCCR0B |= (1 << CS00); // делитель частоты счетчика 1
    #else
        TCCR0B |= (1 << CS00) | (1 << CS02); // делитель частоты счетчика 1024
    #endif
        OCR0A = FREQ_DIV_OFFSET + frequency_dividor; // максимальное знаение счетчика, при котором и происходит инверсия сигнала на выходе OC0A
      } else {
        TCCR0A = 0; // отключаем генератор
      }
    }
    
    // управление АЦП
    static void toggle_adc(bool state) {
      if(state) {
        DDRB &= ~(1 << PB2); // переводим PB2 в режим входа (без подтяжки)
        ADMUX = 0b01 | (1 << REFS0); // PB2, 1.1v reference
        ADCSRA = (1 << ADPS0) | (1 << ADPS1) | (1 << ADPS2) | // коэффициент деления тактовой частоты для АЦП = 128 (75 КГц)
                 (1 << ADIE) |  // режим оповещения через прерывание
                 (1 << ADEN);   // активация АЦП
      } else {
        ADCSRA = 0; // отключаем АЦП
        DDRB |= (1 << PB2); // переводим PB2 в режим выхода (с логическим "0") для разряда C8
        _delay_ms(50); // ждем немного чтобы гарантированно разрядить C8
      }
    }
    
    // выполнение преобразования
    static unsigned int do_adc(void) {
      set_sleep_mode(SLEEP_MODE_ADC); // подготавливаем режим "тихого" преобразования
      do {
        sleep_cpu(); // запуск АЦП происходит после засыпания контроллера, а после завершения преобразования генерируется прерывание, которое будит контроллер
      } while(ADCSRA & (1 << ADSC)); // если после пробуждения преобразование все еще не завершено, продолжаем спать
    
      return ADC;
    }
    
    /*
    // для отладки
    static void blink_bin(unsigned int value, unsigned char count) {
      for(unsigned char i = 0; i < count; ++i) {
        _delay_ms(1000);
        toggle_load(true);
        if(value & (1 << (count - i - 1))) {
          _delay_ms(500);
        } else {
          _delay_ms(50);
        }
        toggle_load(false);
      }
    }
    */
    
    // измеряем потребляемый ток
    static unsigned int get_current(void) {
      unsigned int cur;
    
      toggle_lpf(true); // включаем ФНЧ
      _delay_ms(150);
      toggle_adc(true); // включаем ЦАП
      _delay_ms(50); // накапливаем заряд в C8
      cur = do_adc(); // выполняем измерение
      toggle_adc(false);
      toggle_lpf(false);
    
      return cur;
    }
    
    // измеряем эквивалентное сопротивление выключателя
    static unsigned int get_resistance(void) {
      unsigned int res;
    
      toggle_gen(true); // включаем генератор
      _delay_ms(150);
      toggle_adc(true); // включаем ЦАП
      _delay_ms(50); // накапливаем заряд в C8
      toggle_gen(false); // генератор можно выключить, заряд на C8 держится достаточно долго для измерения
      res = do_adc(); // выполняем измерение тока через обмотку
      toggle_adc(false);
    
      return MAX_U10BIT - res; // возвращаем результат не в виде тока, а в виде эквивалентного сопротивления выключателя
    }
    
    // признак наличия тока
    static bool is_current(void) {
      return (get_current() >= cur_edge);
    }
    
    // признак включенности выключателя
    static bool is_toggled_on(void) {
      return (get_resistance() <= res_edge);
    }
    
    // основной блок
    static void do_main(void) {
      toggle_amp(true); // включаем усилитель
    
      if(is_current()) {
        toggle_load(false); // есть ток, выключаем нагрузку
      } else {
        if(is_toggled_on()) {
          toggle_load(true); // тока нет, выключатель включен
        } else {
          toggle_load(false); // тока нет, выключатель выключен
        }
      }
    
      toggle_amp(false); // выключаем усилитель
    }
    
    // признак отсутствия калибровочных данных
    static bool first_on(void) {
      return (frequency_dividor == 0xff); // пустая ячейка EEPROM имеет значение 0xFF, реальное значение делителя не может быть выше FREQ_MAXIMAL_DIV
    }
    
    // процедура калибровки
    static void calibrate(void) {
      unsigned int cur_off, cur_on, res_off, res_on, res_on_tmp, res_off_array[FREQ_MAXIMAL_DIV + 1], diff, max_diff, frequency_dividor_tmp;
    
      blink_load(5); // сигнализируем о начале калибровки, выключатель должен быть выключен
      _delay_ms(7500); // даем пользователю время на выключение выключателя
    
      toggle_amp(true); // включаем усилитель
    
      cur_off = get_current(); // измеряем ток при выключенном выключателе (уровень шума)
    
      // измеряем сопротивление выключателя на разных частотах
      for(frequency_dividor = 0; frequency_dividor <= FREQ_MAXIMAL_DIV; ++frequency_dividor) {
        res_off_array[frequency_dividor] = get_resistance();
      }
    
      blink_load(2); // сигнализируем о необходимости включения выключателя
      _delay_ms(7500); // даем пользователю время на включение выключателя
    
      cur_on = get_current(); // измеряем ток при включенном выключателе
    
      blink_load(3); // сигнализируем о необходимости выключения сети
      _delay_ms(7500); // даем пользователю время на выключение сети
    
      
      res_off = MAX_U10BIT;
      res_on = MAX_U10BIT;
      frequency_dividor_tmp = 0;
      max_diff = 0;
      // снова проводим измерения на разных частотах
      for(frequency_dividor = 0; frequency_dividor <= FREQ_MAXIMAL_DIV; ++frequency_dividor) {
        res_on_tmp = get_resistance();
    
        // далее определяем частоту, при которой разница сопротивлений выключателя максимальная
        if(res_off_array[frequency_dividor] > res_on_tmp) {
          diff = res_off_array[frequency_dividor] - res_on_tmp;
          if(diff > max_diff) {
            res_off = res_off_array[frequency_dividor];
            res_on = res_on_tmp;
            frequency_dividor_tmp = frequency_dividor;
            max_diff = diff;
          }    
        }
      }
      frequency_dividor = frequency_dividor_tmp;
    
      toggle_amp(false); // выключаем усилитель
      
      if(cur_on > cur_off + CUR_MINIMAL_DIFF) { 
        cur_edge = cur_off + (cur_on - cur_off) / 2; // если разница токов достаточная, определяем порог срабатывания датчика тока
     
        if(res_on + RES_MINIMAL_DIFF < res_off) {
          res_edge = res_off - (res_off - res_on) / 2; // если разница сопротивлений достаточная, определяем порог срабатывания датчика положение выключателя
    
          // сохраняем калибровочные данные
          eeprom_write_word(&EEPROM_cur_edge, cur_edge);
          eeprom_write_word(&EEPROM_res_edge, res_edge);
          eeprom_write_byte(&EEPROM_frequency_dividor, frequency_dividor);
          
          blink_load(1); // калибровка завершена
        } else {
          blink_load(2); // ошибка определения положения выключателя
          if(first_on()) stop();
        }
      } else {
        blink_load(3); // ошибка определения тока нагрузки
        if(first_on()) stop();
      }
    }
    
    ISR(WDT_vect) {
      WDTCR |= (1 << WDTIE); // после каждого срабатывания watchdog нужно заново "заказывать" прерывание вместо сброса контроллера
    }
    
    EMPTY_INTERRUPT(ADC_vect); // АЦП работает в режиме прерывания, но вектор нам не нужен
    
    int main(void)
    {
      init_vars();
      init_pins();       
      init_interrupts(); 
      init_settings();
    
      if(tp_reset || first_on()) {
        calibrate(); // калибровку запускаем при отсутствии калибровочных данных или после ручного сброса
      }
    
      // основной цикл
      while(true) {
        set_sleep_mode(SLEEP_MODE_PWR_DOWN);
        sleep_cpu(); // ждем срабатывания watchdog
    
        if(++clk >= INTERVAL) {
          do_main(); // выполняем работу
          clk = 0;
        }
      }
    }
    


    Архив со схемой, разводкой, и полным проектом Atmel Studio 7
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 46

      +6
      У меня только один вопрос — зачем?
      Зачем все это так сложно?

      А самое главное — что у вас за такой город, где выключают так часто и на так много напряжение? Откуда блэкаут?

      Сколько у Вас площадь квартиры, чтобы Вам надо было городить столько освещения? Тем более — аварийного?

      Одной лампы для аварийки на комнату недостаточно?

      В чем проблема иметь отдельный выключатель у всего аварийного освещения? Аварийное освещение на то и аварийное — оно не должно постоянно работать.

      Вобщем, не очень понятно для чего все так сложно и при этом ненадежно сделано.

      На крайний случай — раз уж тянули слаботочку — сделали бы включение / выключение контуров в отдельном шкафу — если уж очень охота аварийку секторами отключать.

      Все аварийное должно быть сделано максимально надежно и дубово — почему, я надеюсь, не надо объяснять?

      Ну а про «сложную зарядку лития» посмеялся — вот она:
      image

      Прямо очень сложная :) При этом она и подзаряжать будет и работать одновременно.
      У лития проблемы только с огнеопасностью.

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

      Как любят люди создать себе проблему на пустом месте и потом мужественно ее решать!

      P.S. это все не отменяет работы, сделанной вами. И, например, решение с проверкой выключателя очень интересно. Только все это неуместно в рамках вашей-же задачи.

      Это, кстати, сейчас много где встречается — что ради простой задачи используют абсолютно непомерные средства и обязательно — WiFi сверху. Вы обошлись без WiFi — это уже круто :)
        +2
        взять хороший UPS стоечный

        Летом 2017 года семья жила на даче. После урагана штормового ветра было нарушено электроснабжение: помимо света и зарядки для телефона это холодильник, водоснабжение и работа котла отопления (лето было не особо теплое).
        Пользуясь служебным положением погрузил в машину стоечный APC'шник с заряженными батареями и выдвинулся спасать. Идея почти сработала: бесперебойник не только зажег лампочки и запитал автоматику котла, но и не особо напрягаясь вытянул пусковые токи холодильника и скваженного насоса. Эйфорию нарушила жена, спустившаяся со второго этажа на звук кулеров, похожий на взлетающий боинг.

          +2
          А самое главное — что у вас за такой город, где выключают так часто и на так много напряжение? Откуда блэкаут?

          Это не принципиально. Отключают не так чтобы очень часто, но бывает, и это раздражает.

          Одной лампы для аварийки на комнату недостаточно?

          Более чем достаточно, но квартира четырехкомнатная. А это: четыре комнаты, кухня, отдельные ванная и туалет, коридор. Итого восемь выключателей, все дублируются аварийкой.

          На крайний случай — раз уж тянули слаботочку — сделали бы включение / выключение контуров в отдельном шкафу — если уж очень охота аварийку секторами отключать.

          Аварийная сеть вообще не отключается, кое-что вообще питается только от нее. И основной посыл статьи — это как сделать так, чтобы один выключатель в каждой комнате включал основной свет и аварийный совершенно прозрачно для пользователя.

          Ну а про «сложную зарядку лития» посмеялся — вот она

          На 60 Ампер-Часов?

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

          И этот UPS будет пыхтеть со средним КПД 30%, потому что пиковая мощность у него должна быть Ватт 300, а средняя львиную часть времени — 50 (а то и 20).
            0
            Это не принципиально

            Это как раз принципиально. Если это случается 1 раз в год на 15 минут — то вы решаете проблему, которой нет.

            Итого восемь выключателей, все дублируются аварийкой.

            Аварийка должна быть всего одна с одним выключателем и тусклым светом — на то она и аварийка.

            На 60 Ампер-Часов?

            Хоть на 100, они стыкуются через балнсиры сегментами.
            Можно посмотреть как это делается в зарядках для шуруповертов, моделей или электровелосипедов. Тема популярная и все уже давно решено. Сложного нет ничего.

            И этот UPS будет пыхтеть со средним КПД 30%

            Этот UPS вообще «пыхтеть» не будет — в вашем случае он зарядит свои банки один раз и будет ждать своих 5 минут раз в год. И при этом это реально надёжное проверенное решение без плясок с бубном с адаптерами, специальными розетками, определением положения выключателей, юстировкой каждой этой схемы и т. д. Он просто будет работать.
              +2
              Хоть на 100, они стыкуются через балнсиры сегментами.

              при этом плата с вашего фото для этого пригодна чуть более чем никак.
              Тема популярная и все уже давно решено. Сложного нет ничего.

              конечно все придумано, но когда речь идет о больших емкостях при больших напряжениях и токах (а 24 вольта это уже 6 аккумуляторов последовательно) и нет желания, то контроллер заряда/разряда уже не делается на коленке за вечер и стоить будет (особенно в единичном экземпляре) сравнимо с самой батареей.
                0
                и стоить будет (особенно в единичном экземпляре) сравнимо с самой батареей.

                Сравнимо с одним элементом. В любом интернет-магазине литиевых аккумуляторов.

                  0
                  дайте хоть ссылку что ли. на контроллер батареи с управление зарядкой/разрядкой (мы же таки в онлайн режиме работаем) и активной балансировкой для конфигурации 6S емкостью 60А*ч расчитанный на ток ампер 60 (заряжать 60А*ч меньшим током не разумно)
                    0

                    С активной не найду.


                    https://lifepo4.ru/bms-plata-lifepo4-8s-24v-150a-simmetriya
                    Вот пример, но, как я понял, по балансировке слабоват.

                      0

                      Пусть даже слабоват. В ваших магазинах один элемент столько стоит?

                        0

                        Да, Вы правы, один элемент на 50 А*ч стоит дешевле вдвое.

                  0
                  при этом плата с вашего фото для этого пригодна чуть более чем никак.

                  Плата моя была лишь примером контроллера зарядки для лития и что ничего там страшного нет.
                    –1
                    для 6 последовательных батарей поставить 6 плат и 6 отдельных сетевых усб зарядок, так себе идея
                0
                На 60 Ампер-Часов?

                Этого добра в продаже как грязи. Я на вскидку на 150 А*ч нагуглил.

                0
                взять хороший UPS стоечный

                Стоечные шумят турбинами, причем обычно безостановочно. Лучше «домашние» со штатной возможностью подключения доп.батарей, там и плата рассчитана на долгие отключения, и вентилятор обычно при нормальной работе и небольшой нагрузке выключен.
                0
                Альтернативная сеть постоянного тока — это очень хорошо тем, что энергия из нее отбирается ровно тогда, когда она нужна.

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

                Все-таки проще было бы разделить потребители 220 вольт по группам (силовые, осветительные, слаботочные) и сделать резервирование для последних двух групп по стандартной схеме аккумулятор-инвертор. Правда, это приведет к тому, что инвертор будет работать всегда, когда нет основной сети, и АКБ быстро сядет, даже если включенных потребителей нет. Однако, в квартире (в отличие от дачи) это допустимо, т.к. длительные перерывы в городе — большая редкость.
                  +1
                  Правда, это приведет к тому, что инвертор будет работать всегда, когда нет основной сети, и АКБ быстро сядет, даже если включенных потребителей нет.

                  Вот это. Если делать аварийку, то не на час, а на сутки минимум. Час можно и с фонариком походить.
                    0
                    Правда, это приведет к тому, что инвертор будет работать всегда, когда нет основной сети, и АКБ быстро сядет, даже если включенных потребителей нет.

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

                    Не проще детектить наличие 220v централизованно. И управлять основным и резервным освещением хоть по zigbee, хоть по modbus, хоть по что вам больше нравится. А выключатели — простые датчики вкл/выкл.

                      0
                      Это требует радикальной переработки вообще всего освещения. Переделки под звездную топологию с километром кабелей. Тут же просто во время ремонта заложил дополнительную линию в каждый канал.
                        0
                        Сигнал можно передавать по той же линии слаботочки. Никаких звезд и доп. кабелей.
                      –1

                      Проще в жилых помещениях сделать 12 вольтовое освещение на светодиодах, и поставить розетки с гнездом прикуривателя автомобильного. Поставить один аккамулятор на 12в и БП на 12в, только выставить ему напряжение подстроечным резистором 12.5в. Мощность в зависомости от хотелок. Вы будете приятно удивлены сколько выпускается устройств для авто с питанием 12в. От зарядок для мобильных, до автохолодильников. Если у вас квартира трёшка то все решается малой кровью. А дополнительно вы имеете вещи которые можно использовать не только дома но и в авто.
                      Рационально в коридорах поставить лампы с детектор ом движения, а в комнатах датчики освещённости. Согласитесь что если электричество кончилось на долго то вам батарея не поможет. Рационально считать что аварийное отключение длится в пределах 6 часов. В некоторых исключительных случаях сутки. (я о городских нормах). Вот и считайте сколько вы готовы платить и за какой объем комфорта.

                        +5
                        Розетка типа «прикуриватель» — это одна из самых страшных диверсий современной промышленности. Ненадежная, не защищенная от попадания металлических предметов, не дифференцированная по напряжению 12/24, избыточно большая. Нет, спасибо.

                        Да и напряжения 12 В мало, как я написал. Пятнадцать метров до дальней комнаты от источника, там падение уже вполне ощутимо.
                        0
                        Эх… а ничего что есть штатные люстры с 12 вольт лампочками?
                        При ремонте все это учитывается, питания все светильников вытягивается в одну точку, ставим БП + акб и все… Штатное освещение становится аварийным при отсутствии света…
                        И не нужно мудрить, как обеспечить эстетику…
                          0
                          Штатное освещение становится аварийным при отсутствии света…

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

                          Я бы рекомендовал исследовать вариант переведения всего освещения и критичных потребителей на постоянный ток https://m.habr.com/ru/company/sfe_ru/blog/437304/
                          Скорее всего, даже штатные блоки питания не пришлось бы переделывать.

                          +1

                          В моём варианте сделаны две отдельных разводки: обычные розетки подключены кабелем 2,5 кв.мм, резервированные розетки и освещение — кабелем 1,5 кв.мм. Вторая проводка запитана через UPS. В защищённые розетки (другого цвета) включаются телевизор, роутер, компьютеры. Всё освещение — светодиодные лампочки/ленты. Над постоянным током тоже думал, но решил, что оно не стоит потраченного времени. Впрочем, благодаря отдельной проводке это можно сделать в любой момент.

                            0
                            В вашем варианте UPS большую часть времени будет работать почти вхолостую с КПД ниже плинтуса. Конечно же я этот вариант прорабатывал, но для меня эффективность оказалась важнее простоты реализации.
                              0
                              «домашние» линейно-интерактивные ИБП на 1-1.5 кВт при работе от сети и заряженной АКБ сами потребляют 10-15 Вт.
                              При круглосуточном потреблении от 50 Вт (при наличии домашнего NAS/сервера/… где-то так и выходит) получается вполне приемлемый КПД.
                                +1
                                NAS у меня нет, а потребление всего остального «24/7» — те же 15 Вт. Вот и получается, что КПД всего 50%, даже без учета потерь в преобразователе.
                              0
                              Скажите, вы прокладывали во все комнаты и блоки розеток «резервированные» линии, или только в те, где планировались «защищенные» потребители?
                              Делали возможность байпаса UPS переключателем, делали ли отдельную группу линий на освещение и резервированные розетки? (есть UPS со вторым сегментом, который отключается при разряде до какого-то значения, чтобы оставшаяся нагрузка проработала дольше)
                                0

                                Где точно знаю, что пригодится — проложил сразу. Где не уверен — не проложил. При необходимости дотяну позже. Под полом вдоль стен лежат кабельные каналы с уже заложенными протяжками и выходами возле каждого розеточного блока. Максимум что пострадает при дополнительной протяжке — пару сантиметров обоев от плинтуса до розеток. В каждом розеточном блоке 2-3 обычных розетки, одна "защищённая" розетка, одна двойная Ethernet розетка. Через Ethernet планирую также питать всякие датчики с помощью POE.
                                Розетки на освещение и защищённые розетки отдельными сегментами через отдельные УЗО. Ну и сегменты тоже "автоматами" на куски по пару комнат нарезаны, чтобы можно было поковыряться в какой-нибудь люстре, не отключая свет по всему дому.
                                Байпас на UPS-е будет. Собственно, UPS-а пока нет (ремонт ещё не закончен, не готово место, где он будет стоять).
                                Свет у меня надолго не пропадает. Обычно это кратковременные провалы ниже 100 вольт или скачки вольт до 300-т (которые рубятся с помощью реле защиты напряжения). Причём эти непонятные возмущения проходят минут за 5-10, зато бывают почти каждую неделю. Так что мне не нужно, чтобы UPS работал долго. 15-20 минут хватит с запасом.

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

                                Допустим, для PON или Wi-Fi сетей провайдеру не нужно электричество в вашем доме. И компьютеры — это же не только ноутбуки. Весьма печально, когда прерывается длительный рендеринг. И раздающиеся в этот-же момент возгласы членов семьи, смотревших телевизор, тоже не добавляют радости.

                                  0
                                  Ну, как минимум, ADSL при этом не отваливается. А конкретно у меня в роутер (на базе одноплатного PC) воткнут 4G-модем, который обеспечивает аварийный канал.
                                  0
                                  А как у вас защита низковольтной части построена? Предохранители? Где?
                                    0
                                    Обычные автомобильные предохранители рядом с аккумулятором, и, дополнительно, единый автомат Шнайдер для быстрого ручного выключения (надежность автомата на постоянном токе проверял, вроде отключает, но ток срабатывания не мерял).
                                    0
                                    самые честные 5000 mAH

                                    все что продаеца из китая на алике это отбраковка из промышленых партий.
                                      –1
                                      Это понятно, но где гарантия, что наши перепродаваны, под видом чего-то более приличного и гораздо более дорогого, не втюхают то же самое?
                                      0
                                      даю сразу конечную схему устройства.

                                      а почему силовой ключ по +, а не класически — нагрузкой об землю?

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

                                      а нечего резко разрывать токи при отсуствии хотябы минимальных конденсаторов на плате. в похожей ситуацыи я выкрутился использыя для включения/выключения шим
                                      на входе стабилизатора лучше поставить небольшой резистор 10Ом и кодер 0.1мкФ

                                      а так в целом идея хороша.
                                        0
                                        а почему силовой ключ по +, а не класически — нагрузкой об землю?

                                        Мне лично так приятнее :)
                                        Это спорное решение, но я же предупреждал.

                                        на входе стабилизатора лучше поставить небольшой резистор 10Ом и кодер 0.1мкФ

                                        Была такая идея, но обошелся более стойким стабилизатором.
                                          0
                                          Это спорное решение, но я же предупреждал.

                                          ключь об землю требует меньшей обвязки, а ваше решение что даёт?

                                          вешать кондеры по входу и выходу стабилизатора это основы схемотехники. а резак по входу выступает в роли предохранителя.

                                          просто вы делаете это устройство для работы на много лет и такие вот мелочи гарантированно продлевают ему жизнь
                                            0
                                            ключь об землю требует меньшей обвязки, а ваше решение что даёт?

                                            Единую землю дает. Есть у меня такой бзик, чтобы земля всегда была землей, обжигался на этом уже.

                                            вешать кондеры по входу и выходу стабилизатора это основы схемотехники. а резак по входу выступает в роли предохранителя.

                                            Конденсатор сам по себе он всплеска не спасет, а для работы стабилизатора при такой большой разнице входного и выходного напряжений он не сильно-то и нужен.

                                            просто вы делаете это устройство для работы на много лет и такие вот мелочи гарантированно продлевают ему жизнь

                                            Возможно, никто не идеален. Не предусмотрел.
                                        0
                                        Интересен вопрос зарядки аккумуляторов — вручную или автоматически? Кальциевые в буферном режиме довольно быстро теряют ёмкость, поэтому неправильная зарядка может перечеркнуть выгоду в цене.

                                        А наличие напряжения на силовом проводе можно определить обычной неонкой (по схеме из индикаторной отвёртки). Сигнал снимается фоторезистором и означает логическое И между наличием сети и отсутствием нагрузки. Правда, всё равно надо обнаруживать ток нагрузки. Будь она фиксированной, я бы предложил оптопару с ограничительным резистором (и параллельно диод в обратном направлении), но для непостоянной нагрузки эта схема может не подойти.
                                          0
                                          Интересен вопрос зарядки аккумуляторов — вручную или автоматически?

                                          Автоматически, тоже контроллер.

                                          Кальциевые в буферном режиме довольно быстро теряют ёмкость, поэтому неправильная зарядка может перечеркнуть выгоду в цене.

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

                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                        Самое читаемое