Avr управление мощной нагрузкой. Управление симисторами в схемах на микроконтроллере

Скачать Viber 23.06.2019
Скачать Viber

Посмотрело: 7647

Все знают, насколько ардуинщики гордятся миганием лампочками

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

Выбор управляемой нагрузки

Существует много различных типов ламп. Не все из них поддаются регулировке яркости. И, в зависимости от типа лампы, требуются разные способы управления. Про типы ламп есть хорошая . Я же буду рассматриваться только лампы, работающие от переменного тока. Для таких ламп существует три основных способа управления яркостью (диммирование по переднему фронту, по заднему фронту и синус-диммирование).
Иллюстрация в формате SVG, может не отображжаться в старых браузерах и, особенно, в IE
Отличаются они тем, какая часть периода переменного тока пропускается через лампу. О применимости этих методов можно прочитать . В этой статье речь пойдет только о RL диммере, так как это самая простая и распространенная схема. Она подходит для управления яркостью ламп накаливания (включая галогенные), в том числе подключенных через ферромагнитный (не электронный) трансформатор. Эта же схема может применяться для управления мощностью нагревательных элементов и электромоторов, а также для включения/выключения других электроприборов (без управления мощностью).

Выбор элементной базы

Различных вариантов схем управления нагрузкой в интернете много. Отличаются они по следующим параметрам:Первые два пункта определяются элементной базой. Очень часто для управления нагрузкой используют реле, как проверенный многолетним опытом элемент. Но, если вы хотите управлять яркостью лампы, её необходимо включать и выключать 100 раз в секунду. Реле не рассчитаны на такую нагрузку и быстро выйдут из строя, даже если смогут переключаться так часто. Если в схеме используется MOSFET, то его можно открывать и закрывать в любой момент. Нам нем можно построить и RL, и RC, и синус димер. Но так как он проводит ток только в одну сторону, понадобится два транзистора на канал. Кроме того, высоковольтные MOSFET относительно дороги. Самым простым и дешевым способом является использование симистора. Он проводит ток в обоих направлениях и сам закрывается, когда через него прекращает течь ток. Про то, как он работает можно прочитать в . Далее я буду полагаться на то, что вы это знаете.

Фазовая модуляция

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

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

  • Первый способ хорош тем, что позволяет легко организовать гальваническую развязку высоковольтной части и микроконтроллера. О её важности будет сказано позже. Но любители arduino будут огорчены: чтобы лапа горела ровно, не вспыхивая и не погасая, импульсы нужно подавать вовремя. Для этого управлять выводом нужно из прерывания таймера, а моменты перехода напряжения через ноль фиксировать с помощью «input capture». Это «недокументированные» функции. Проблема решается отказом от библиотек arduino и внимательным чтением datashit"а на процессоры avr. Это не так сложно, как кажется.
    Второй способ управления симистором крайне прост в программном плане, но из-за отсутствия гальванической развязки я бы не стал его применять.

    Гальваническая развязка

    Самый простой способ управлять симистором - это подключить к затвору ножку микроконтроллера. Есть даже специальная серия симисторов BTA-600SW управляемых малыми токами.Но тогда контроллер и вся низковольтная часть не будет защищена от помех, гуляющих по бытовой сети. Некоторое из них могут быть достаточно мощными, чтобы сжечь микроконтроллер, другие будут вызывать сбои. Кроме того, сразу возникают проблемы со связью микроконтроллера с компьютером или другими микроконтроллерами: нужно будет делать развязку в линии связи или использовать дифференциальные линии, ведь, чтобы управлять симистором прямо с ноги микроконтроллера, нулевой потенциал для него должен совпадать с потенциалом нуля в бытовой сети. У компьютера или другого такого же микроконтроллера, подключенного в другой точке сети, нулевой потенциал почти наверняка будет другим. Результат будет плачевным.
    Простой способ обеспечить гальваническую развязку: использовать драйвер симистора MOC30XX. Эти микросхемы отличаются:
  • Расчетным напряжением. Если для сетей 110 вольт, есть для 220

  • Наличием детектора нуля

  • Током, открывающим драйвер

  • Драйвер с детектором нуля (MOC306X) переключается только в начале периода. Это обеспечивает отсутствие помех в электросети от симистора. Поэтому, если нет необходимости управлять выделяемой мощностью или управляемый прибор обладает большой инерционностью (например это нагревательный элемент в электроплитке), драйвер с детектором нуля будет оптимальным выбором. Но, если вы хотите управлять яркостью лампы освещения, необходимо использовать драйвер без детектора нуля (MOC305X) и самостоятельно открывать его в нужные моменты.
    Ток, необходимый для открытия важен, если вы хотите управлять несколькими нагрузками одновременно. У MOC3051 он 15 мА, у MOC3052 10мА. При этом микроконтроллеры stm могут пропускать через себя до 80-120 мА, а avr до 200 мА. Точные цифры нужно смотреть в соответствующих datashit"ах.

    Устойчивость к помехам/возможность коммутации индуктивной нагрузки

    В электросети могут быть помехи, вызывающие самопроизвольное открытие симистора или его повреждение. Источником помех может служить:
  • Нагрузка, управляемая симистором (обмотка мотора)

  • Фильтр (snubber), расположенный рядом с симистором и призванный его защищать

  • Внешняя помеха (грозовой разряд)

  • Помеха может быть как по напряжению, так и по току, причем более критичны скорости изменения соответствующих значений, чем их амплитуды. В datashit"ах соответствующие значения указаны как:
    V - максимальное напряжение, при котором может работать симистор. Максимальное пиковое напряжение не намного больше.
    I - Максимальный ток, который может пропускать через себя симистор. Максимальный пиковый ток как правило значительно больше.
    dV/dt - Максимальная скорость изменения напряжения на закрытом симисторе. При превышении этого значения он самопроизвольно откроется.
    dI/dt - Максимальная скорость изменения тока при открытии симистора. При превышении этого значения он сгорит из-за того, что не успеет полностью открыться.
    (dV/dt)c - Максимальная скорость изменения напряжения в момент закрытия симистора. Значительно меньше dV/dt. При превышении симистор продолжит проводить ток.
    (dI/dt)c - Максимальная скорость изменения тока в момент закрытия симистора. Значительно меньше dI/dt. При превышении симистор продолжит проводить ток.
    Подробно о природе этих ограничений и о том, как сделать фильтр, защищающий от превышения этих величин описано в . К немо можно только добавить, что существуют 3Q симисторы, у которых значения dV/dt и dI/dt выше, чем у обычных за счет невозможности работать в 4ом квадранте (что обычно не требуется).

    Выбор симистора

    Максимальный ток коммутации
    Максимальный ток коммутации ограничивается двумя параметрами: максимальным током, который может пропустить симистор и количеством тепла, которое вы можете от него отвести. С первым параметром все просто, он указан в datashit"е. Но если посмотреть внимательно, то при токе в 16 ампер на BTA16-600BW выделяется около 20 ватт. Такую грелку уже не получится засунуть в коробку выключателя без вентиляции.
    Минимальный ток коммутации
    Симистор сохраняет проводимость до тех пор, пока через него идёт ток. Минимально необходимый ток указан в datashit"е под именем latching current. Соответственно, слишком мощный симистор не сможет включать маломощную лампочку так как будет выключаться, как только с затвора пропадёт управляющий сигнал. Но так, как этот сигнал мы самостоятельно формируем микроконтроллером, то можно удерживать управляющий сигнал почти до самого конца полупериода, тем самым убрав ограничение на минимальную нагрузку. Однако, если не успеть снять сигнал, симистор не закроется и лампа не погаснет. При плохо подобранных константах лампы, работающие на не полной яркости периодически вспыхивают.
    Изоляция
    Симисторы в корпусе SOT-220 могут быть изолированными или не изолированными. Я сначала сделал ошибку и купил BT137, в результате радиаторы охлаждения оказались под напряжением, что в моем случае нежелательно. Симисторы с маркировкой BTA изолированы, с маркировкой BTB нет.
    Защита от перегрузки
    Не стоит полагаться на автоматические выключатели. Посмотрите на , при перегрузке в 1.4 раза автомат обязан выключиться не ранее , чем через час. А быстрое размыкание происходит только при перегрузке в 5 раз (для автоматов типа C). Это сделано для того, чтобы автомат не отключался при включении приборов, требующих при старте значительно больше энергии, чем при постоянной работе. Примером такого прибора является холодильник.
    Симистор нужно защитить отдельным предохранителем, либо контролировать ток через него и отключать его при перегрузке, давая остыть.

    Защита от короткого замыкания

    При перегорании лампы накаливания может образовываться искровой разряд, имеющий очень низкое сопротивление. В результате цепь фактически замыкается накоротко, что приводит к выгоранию симистора.
    Симистор может выгорать из-за двух причин:
  • Превышение dI/dt. Симистор не успевает открыться полностью, ток идет не через весь кристалл, образуются локальные горячие области, выжигающие кристалл.

  • Превышение интеграла Джоуля I^2t. Задает количество теплоты, накопление которой в кристалле приведет к разрушению кристалла.

  • dI/dt ограничивается индуктивностью проводки и внутренней ёмкостью симистора. Так как dI/dt достаточно велика (50 А/с для BTA16), может хватить индуктивности подводящей проводки, если она достаточно длинная. Можно подстраховаться и добавить небольшую индуктивность в виде нескольких витков провода вокруг сердечника.
    С превышением интеграла Джоуля можно бороться либо уменьшая время прохождения тока через симистор, либо ограничивая ток. Так как симистор не закроется, пока ток не перейдет через ноль, не вводя дополнительных размыкателей нельзя сделать время прохождения тока менее одного полупериода. В качестве такого размыкателя можно использовать:
  • Быстродействующий плавкий предохранитель. Обычный предохранитель не подойдет так как симистор сгорит до того, как он сработает. Но стоят такие предохранители дороже новых симисторов.

  • Геркон/реле. Если удастся найти такое, чтобы выдерживало кратковременные большие токи.

  • Можно пойти по другому пути. BTA16-600 может выдержать ток в 160 амер в течении одного периода. Если сопротивление замыкаемой цепи будет порядка 1.5 Ом, то полупериод он выдержит. Сопротивление проводки даст 0.5 Ом. Остается добавить в цепь сопротивление в 1 Ом. Схема станет менее эффективной и появится еще одна грелка, выделяющая при штатной работе до 16 Вт тепла (0.45 Вт при работе 100 ваттной лампы), зато симистор не сгорит, если успеть его вовремя выключить и позаботиться о хорошем охлаждении, чтобы оставался запас на нагрев во время КЗ.
    Из этого сопротивления можно извлечь дополнительную выгоду: измеряя падение напряжения на нем, можно узнавать ток, протекающий через симистор. Полученное значение можно использовать для того, чтобы определять короткое замыкание или перегрузку и отключать симистор.

    Заключение

    Я не претендую на абсолютную верность всего написанного. Статья писалась для того, чтобы упорядочить знания, прочитанные на просторах интернета и проверить, не забыл ли я чего. В частности раздел, касающийся защиты от перегрузок я еще не опробовал на практике. Если я где-то не прав, мне было бы интересно узнать об ошибках.
    В статье нет ни одной схемы: знакомые с темой и так знают их наизусть, а новичку придётся заглянуть в datashit к MOC3052 или в AN-3008 и, возможно, он заодно узнает что-то еще и не будет бездумно реализовывать готовую схему.

    В следующих статьях будут устройства, которые должны управлять внешней нагрузкой. Под внешней нагрузкой я понимаю все, что прицеплено к ножкам микроконтроллера – светодиоды, лампочки, реле, двигатели, исполнительные устройства … ну Вы поняли. И как бы не была заезжена данная тема, но, чтобы избежать повторений в следующих статьях, я все-же рискну быть не оригинальным — Вы уж меня простите:). Я кратенько, в рекомендательной форме, покажу наиболее распространенные способы подключения нагрузки (если Вы что-то захотите добавить – буду только рад).
    Сразу договоримся, что речь идет о цифровом сигнале (микроконтроллер все-таки цифровое устройство) и не будем отходить от общей логики: 1 -включено, 0 -выключено. Начнем.

    Нагрузкой постоянного тока являются: светодиоды, лампы, реле, двигатели постоянного тока, сервоприводы, различные исполнительные устройства и т.д. Такая нагрузка наиболее просто (и наиболее часто) подключается к микроконтроллеру.

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

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

    Rгасящий = (5v / 0.02A) – Rн = 250 – Rн

    Как видно, даже в самом худшем случае, когда сопротивление нагрузки равно нулю достаточно 250 Ом для того, что бы ток не превысил 20мА. А значит, если неохота чего-то там считать — ставьте 300 Ом и Вы защитите порт от перегрузки. Достоинство способа очевидно – простота.

    1.2 Подключение нагрузки при помощи биполярного транзистора.
    Если так случилась, что Ваша нагрузка потребляет более 20мА, то, ясное дело, резистор тут не поможет. Нужно как-то увеличить (читай усилить) ток. Что применяют для усиления сигнала? Правильно. Транзистор!

    Для усиления удобней применять n-p-n транзистор, включенный по схеме ОЭ . При таком способе можно подключать нагрузку с большим напряжением питания, чем питание микроконтроллера. Резистор на базе – ограничительный. Может варьироваться в широких пределах (1-10 кОм), в любом случае транзистор будет работать в режиме насыщения. Транзистор может быть любой n-p-n транзистор. Коэффициент усиления, практически не имеет значения. Выбирается транзистор по току коллектора (нужный нам ток) и напряжению коллектор-эмиттер (напряжение которым запитывается нагрузка). Еще имеет значение рассеиваемая мощность — чтоб не перегрелся.

    Из распространенных и легко доступных можно заюзать BC546, BC547, BC548, BC549 с любыми буквами (100мА), да и тот-же КТ315 сойдет (это у кого со старых запасов остались).
    - Даташит на биполярный транзистор BC547

    1.3 Подключение нагрузки при помощи полевого транзистора.
    Ну а если ток нашей нагрузки лежит в пределах десятка ампер? Биполярный транзистор применить не получиться, так как токи управления таким транзистором велики и скорей всего превысят 20мА. Выходом может служить или составной транзистор (читать ниже) или полевой транзистор (он же МОП, он же MOSFET). Полевой транзистор просто замечательная штука, так как он управляется не током, а потенциалом на затворе. Это делает возможным микроскопическим током на затворе управлять большими токами нагрузки.

    Для нас подойдет любой n-канальный полевой транзистор. Выбираем, как и биполярный, по току, напряжению и рассеиваемой мощности.

    При включении полевого транзистора нужно учесть ряд моментов:
    — так как затвор, фактически, является конденсатором, то в моменты переключения транзистора через него текут большие токи (кратковременно). Для того чтобы ограничить эти токи в затвор ставиться ограничивающий резистор.
    — транзистор управляется малыми токами и если выход микроконтроллера, к которому подключен затвор, окажется в высокоимпедансном Z-состоянии полевик начнет открываться-закрываться непредсказуемо, вылавливая помехи. Для устранения такого поведения ножку микроконтроллера нужно «прижать» к земле резистором порядка 10кОм.
    У полевого транзистора на фоне всех его положительных качеств есть недостаток. Платой за управление малым током является медлительность транзистора. ШИМ, конечно, он потянет, но на превышение допустимой частоты он Вам ответит перегревом.

    1.4 Подключение нагрузки при помощи составного транзистора Дарлингтона.
    Альтернативой применения полевого транзистора при сильноточной нагрузке является применение составного транзистора Дарлингтона. Внешне это такой-же транзистор, как скажем, биполярный, но внутри для управления мощным выходным транзистором используется предварительная усилительная схема. Это позволяет малыми токами управлять мощной нагрузкой. Применение транзистора Дарлингтона не так интересно, как применение сборки таких транзисторов. Есть такая замечательная микросхема как ULN2003. В ее составе аж 7 транзисторов Дарлингтона, причем каждый можно нагрузить током до 500мА, причем их можно включать параллельно для увеличения тока.

    Микросхема очень легко подключается к микроконтроллеру (просто ножка к ножке) имеет удобную разводку (вход напротив выхода) и не требует дополнительной обвязки. В результате такой удачной конструкции ULN2003 широко используется в радиолюбительской практике. Соответственно достать ее не составит труда.
    - Даташит на сборку Дарлингтонов ULN2003

    Если Вам нужно управлять устройствами переменного тока (чаще всего 220v), то тут все сложней, но не на много.

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

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

    2.2 Подключение нагрузки при помощи симистора (триака).
    Если нужно управлять мощной нагрузкой переменного тока а особенно если нужно управлять мощностью выдаваемой на нагрузку (димеры), то Вам просто не обойтись без применения симистора (или триака). Симистор открывается коротким импульсом тока через управляющий электрод (причем как для отрицательной, так и для положительной полуволны напряжения). Закрывается симистор сам, в момент отсутствия напряжения на нем (при переходе напряжения через ноль). Вот тут начинаются сложности. Микроконтроллер должен контролировать момент перехода через ноль напряжения и в точно определенный момент подавать импульс для открытия симистора — это постоянная занятость контроллера. Еще одна сложность это отсутствие гальванической развязки у симистора. Приходится ее делать на отдельных элементах усложняя схему.


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

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

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

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

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

    Если речь идет о переменном токе, то лучше использовать симисторы или тиристоры . Что это такое? А сейчас расскажу.

    Симистор BT139
    Схема включения из даташита на MOC3041

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

    Если соединить встречно параллельно два тиристора , то получится симистор - отличная штука для коммутации нагрузки на переменном токе.

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

    Но тут есть одна тонкость - коммутируем мы силовую высоковольтную цепь, 220 вольт. А контроллер у нас низковольтный , работает на пять вольт. Поэтому во избежание эксцессов нужно произвести потенциальную развязку . То есть сделать так, чтобы между высоковольтной и низковольтной частью не было прямого электрического соединения. Например, сделать оптическое разделение . Для этого существует специальная сборка - симисторный оптодрайвер MOC3041 . Замечательная вещь!
    Смотри на схему подключения - всего несколько дополнительных деталек и у тебя силовая и управляющая часть разделены между собой. Главное, чтобы напряжение на которое расчитан конденсатор было раза в полтора два выше напряжения в розетке. Можно не боятся помех по питанию при включении и выключении симистора. В самом оптодрайвере сигнал подается светодиодом, а значит можно смело зажигать его от ножки микроконтроллера без всяких дополнительных ухищрений.

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

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

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

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

    Так почему же нельзя в данном случае использовать простой шим сигнал?

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

    Если использовать управление с помощью ШИМ, ключ через который регулируем сигнал (например симистор) будет открываться и пропускать в нагрузку куски синусоиды, имеющие разную мощность. Как итог, никакого плавного регулирования не получится, а будет безупорядоченный сигнал на выходе:


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


    Момент прохождения сетевого напряжения через 0, можно определять с помощью оптопары. Для того чтобы детектировать начало каждой полуволны (и отрицательной и положительной) оптопару подключаем через диодный мост. Таким образом на выходе детектора нуля получаем короткие положительные импульсы в момент когда напряжение в сети проходит через 0.

    Для наглядности приведу картинку с виртуального осциллографа смоделлированной схемы в proteus. Синим цветом изображен исходный сигнал (~220V), красным - сигнал после выпрямления диодным мостом. Зеленым цветом изображены импульсы на выходе оптопары U3.

    Сигнал с детектора нуля можно завести на вход внешнего прерывания, чтобы ловить начало новой полуволны, а дальше открывать симистор U4 (я использовал BT16-600) на необходимое время. Для опторазвязки я использовал оптосимистор MOC3022 (U2).

    Остается только подсчитать время на которое нужно открывать симистор. При частоте сетевого напряжения равной 50 Гц время полупериода (длительность одной полуволны) составит 0,01 сек. То есть если мы откроем симистор на 0,005 сек, мы пропустим половину полуволны, мощность составит 50%, если откроем симистор на 0,01 сек (или больше), пропустим всю полуволну и отдаваемая мощность составит 100%. Тут думаю все понятно.

    код в Bascom-AVR

    $regfile = "attiny2313.dat"
    $crystal = 8000000

    Dim N As Bit "1-плавно зажигаем лампочку, 0-гасим

    Config Int0 = Falling
    On Int0 Imp

    Config Timer0 = Timer , Prescale = 1024 "переполнение за 0,032 сек
    Dim Wt As Byte
    On Timer0 Perepolnenie

    Config Portd . 0 = Output
    Opto Alias Portd . 0
    Opto = 0

    Enable Interrupts
    Enable Timer0
    Start Timer0
    Enable Int0

    Wt = 195 "минимальный накал
    N = 1

    Wait 2

    Do "бесконечный цикл

    Loop

    End

    Imp : "прерывание от детектора нуля
    Timer0 = Wt "чем большее значение сюда положим, тем быстрее переполнится таймер
    Start Timer0

    If N = 1 Then "плавно зажигаем лампу
    Incr Wt "увеличиваем до максимального значения
    If Wt = 255 Then
    N = 0
    End If
    Else "плавно гасим
    Decr Wt "уменьшаем до минимального значения
    If Wt = 195 Then
    N = 1
    End If
    End If
    Return

    Perepolnenie : "переполнение таймера
    Stop Timer0 "останавливаем таймер
    Opto = 1 "включение симистора
    Waitus 100
    Opto = 0 "выключение оптосимистора
    Return

    В следующих статьях будут устройства, которые должны управлять внешней нагрузкой. Под внешней нагрузкой я понимаю все, что прицеплено к ножкам микроконтроллера – светодиоды, лампочки, реле, двигатели, исполнительные устройства … ну Вы поняли. И как бы не была заезжена данная тема, но, чтобы избежать повторений в следующих статьях, я все-же рискну быть не оригинальным – Вы уж меня простите . Я кратенько, в рекомендательной форме, покажу наиболее распространенные способы подключения нагрузки (если Вы что-то захотите добавить – буду только рад).
    Сразу договоримся, что речь идет о цифровом сигнале (микроконтроллер все-таки цифровое устройство) и не будем отходить от общей логики: 1 -включено, 0 -выключено. Начнем.


    Нагрузкой постоянного тока являются: светодиоды, лампы, реле, двигатели постоянного тока, сервоприводы, различные исполнительные устройства и т.д. Такая нагрузка наиболее просто (и наиболее часто) подключается к микроконтроллеру.

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

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

    Rгасящий = (5v / 0.02A) – Rн = 250 – Rн

    Как видно, даже в самом худшем случае, когда сопротивление нагрузки равно нулю достаточно 250 Ом для того, что бы ток не превысил 20мА. А значит, если неохота чего-то там считать – ставьте 300 Ом и Вы защитите порт от перегрузки. Достоинство способа очевидно – простота.

    1.2 Подключение нагрузки при помощи биполярного транзистора.
    Если так случилась, что Ваша нагрузка потребляет более 20мА, то, ясное дело, резистор тут не поможет. Нужно как-то увеличить (читай усилить) ток. Что применяют для усиления сигнала? Правильно. Транзистор!


    Для усиления удобней применять n-p-n транзистор, включенный по схеме ОЭ . При таком способе можно подключать нагрузку с большим напряжением питания, чем питание микроконтроллера. Резистор на базе – ограничительный. Может варьироваться в широких пределах (1-10 кОм), в любом случае транзистор будет работать в режиме насыщения. Транзистор может быть любойn-p-n транзистор. Коэффициент усиления, практически не имеет значения. Выбирается транзистор по току коллектора (нужный нам ток) и напряжению коллектор-эмиттер (напряжение которым запитывается нагрузка). Еще имеет значение рассеиваемая мощность – чтоб не перегрелся.

    Из распространенных и легко доступных можно заюзать BC546, BC547, BC548, BC549 с любыми буквами (100мА), да и тот-же КТ315 сойдет (это у кого со старых запасов остались).
    BC547.pdf - Даташит на биполярный транзистор BC547

    1.3 Подключение нагрузки при помощи полевого транзистора.
    Ну а если ток нашей нагрузки лежит в пределах десятка ампер? Биполярный транзистор применить не получиться, так как токи управления таким транзистором велики и скорей всего превысят 20мА. Выходом может служить или составной транзистор (читать ниже) или полевой транзистор (он же МОП, он же MOSFET). Полевой транзистор просто замечательная штука, так как он управляется не током, а потенциалом на затворе. Это делает возможным микроскопическим током на затворе управлять большими токами нагрузки.

    Для нас подойдет любой n-канальный полевой транзистор. Выбираем, как и биполярный, по току, напряжению и рассеиваемой мощности.


    При включении полевого транзистора нужно учесть ряд моментов:
    – так как затвор, фактически, является конденсатором, то в моменты переключения транзистора через него текут большие токи (кратковременно). Для того чтобы ограничить эти токи в затвор ставиться ограничивающий резистор.
    – транзистор управляется малыми токами и если выход микроконтроллера, к которому подключен затвор, окажется в высокоимпедансном Z-состоянии полевик начнет открываться-закрываться непредсказуемо, вылавливая помехи. Для устранения такого поведения ножку микроконтроллера нужно «прижать» к земле резистором порядка 10кОм.
    У полевого транзистора на фоне всех его положительных качеств есть недостаток. Платой за управление малым током является медлительность транзистора. ШИМ, конечно, он потянет, но на превышение допустимой частоты он Вам ответит перегревом.

    Для применения можно порекомендовать мощные транзисторы IRF630, IRF640. Их часто используют и поэтому их легко достать.
    IRF640.pdf - Даташит на полевой транзистор IRF640

    1.4 Подключение нагрузки при помощи составного транзистора Дарлингтона.
    Альтернативой применения полевого транзистора при сильноточной нагрузке является применение составного транзистора Дарлингтона. Внешне это такой-же транзистор, как скажем, биполярный, но внутри для управления мощным выходным транзистором используется предварительная усилительная схема. Это позволяет малыми токами управлять мощной нагрузкой. Применение транзистора Дарлингтона не так интересно, как применение сборки таких транзисторов. Есть такая замечательная микросхема как ULN2003. В ее составе аж 7 транзисторов Дарлингтона, причем каждый можно нагрузить током до 500мА, причем их можно включать параллельно для увеличения тока.


    Микросхема очень легко подключается к микроконтроллеру (просто ножка к ножке) имеет удобную разводку (вход напротив выхода) и не требует дополнительной обвязки. В результате такой удачной конструкции ULN2003 широко используется в радиолюбительской практике. Соответственно достать ее не составит труда.
    ULN2003.pdf - Даташит на сборку Дарлингтонов ULN2003


    2 НАГРУЗКА ПЕРЕМЕННОГО ТОКА.
    Если Вам нужно управлять устройствами переменного тока (чаще всего 220v), то тут все сложней, но не на много.

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

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

    2.2 Подключение нагрузки при помощи симистора (триака).
    Если нужно управлять мощной нагрузкой переменного тока а особенно если нужно управлять мощностью выдаваемой на нагрузку (димеры), то Вам просто не обойтись без применения симистора (или триака). Симистор открывается коротким импульсом тока через управляющий электрод (причем как для отрицательной, так и для положительной полуволны напряжения). Закрывается симистор сам, в момент отсутствия напряжения на нем (при переходе напряжения через ноль). Вот тут начинаются сложности. Микроконтроллер должен контролировать момент перехода через ноль напряжения и в точно определенный момент подавать импульс для открытия симистора – это постоянная занятость контроллера. Еще одна сложность это отсутствие гальванической развязки у симистора. Приходится ее делать на отдельных элементах усложняя схему.


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


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

    Симисторы довольно широко используются, а в некоторых областях просто незаменимы, поэтому достать их не составляет каких либо проблем. Очень часто в радиолюбительстве применяют симисторы типа BT138.
    BT138.pdf

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


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

    Если не гнаться за завышенными характеристиками можно подобрать себе прибор по приемлемой цене. Например, реле CPC1030N управляется током от 2мА, при этом способно коммутировать нагрузку переменного и постоянного тока 120мА и 350v (очень полезная для радиолюбителей вещь!)
    BT138.pdf - Даташит на симистор (триак) BT138
    CPC1030N.pdf - Даташит на твердотельное реле CPC1030N




    Рекомендуем почитать

    Наверх