Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Автоматика >

Терморегулятор вентилятора со стабилизацией напряжения

Автор: axillent
Опубликовано 12.12.2013.
Создано при помощи КотоРед.

Ввводная

Возникла потребность снизить шум вентилятора в инверторе для ЧПУ станка. Он шумит сразу после включения питания и весьма громкий. К проблеме решил сразу с двух сторон - замена мелкого вентилятора на большой от компьютера (80х80мм) и регулировка оборотов в зависимости от температуры силовых радиаторов инвертора.

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

Выбор решения

В основе решения ШИМ - регулировка мощностью/напряжением с применением широтно-импульсной модуляции. Такой механизм встроен в большинство современных микроконтроллеров. Если на выходе ключа управляемого от МК поставить LC фильтр, то мы по сути получим регулируемый по напряжению источник постоянного напряжения в диапазоне от 0В до (Vпитания - Vпад.ключа), где Vпитания - напряжения источника питания, Vпад.ключа - напряжение падения на силовом ключе. При достаточно хорошей разрешающей способности ШИМ мы можем в программе ограничить верхний диапазон напряжения на выходе тем самым и решаем одновременно две задачи - снижение напряжения питания и регулировка оборотов. Чтобы этого достичь в схеме введена обратная связь и контроллер используя ADC может контролировать фактическое напряжение на вентиляторе и регулирую ШИМ ограничивать его напряжением 12В при любой температуре и любом входном напряжении. Если пойти дальше, то и саму регулировку оборотов в зависимости от температуры можно построить в логике целевого напряжения. Параметрами программы задан рабочий диапазон напряжений от 5.5В до 12В. При изменении температуры о MIN до MAX целевое напряжение меняется соответственно от 5.5В до 12В. В таком случае в основном цикле все что мы делаем - сдвигаем параметр работы ШИМ вверх или вниз в зависимости соотношения фактического и целевого напряжений.

Силовой каскад для ШИМ без обратной связи как правило делается нижним ключем на MOSFET транзисторах, что позволяет получить очень простое решение с низким падением напряжения на ключевом элементе. В нашем случае при необходимости иметь обратную связь нижний ключ не подходит, точнее применение нижнего ключа потребовало бы сильно усложнить схему измерения напряжения (измерять бы его пришлось по отношению к плюсу питания). Поэтому был выбран вариант с простой схемой измерения напряжения на резистивном делителе, а выходной каскад был усложнен с тем, чтобы управлять верхним плечом. При отладке были опробованы разные варианты и критерием выбора был режим работы выходного транзистора - он должен был работать в режиме максимально приближенном к ключевому, т.е. с максимальными фронтами включения и выключения. Режимы контролировались по осциллографу. В итоге был выбран вариант с полевым транзистором 2N7002 в нижнем плече и BC807 в верхнем.

От применения MOSFET в верхнем плече отказался по двум причинам - ограниченный выбор P-канальных MOSFET с запасом по максимальному напряжению Vsd (исток-сток) и по причине необходимости усложнения схемы управления этим MOSFET в которой будет снижено Vgs (затвор-исток). Как правило это второе напряжение Vgs у MOSFET не превышает 10-20В. BC807 выбран по параметрам Vec (эмитер-коллектор) - 45В и току через коллектор - 500ма.

В нижнем плече в принципе можно было бы применить NPN транзистор, но с NPN транзистором пришлось бы увеличивать сопротивление в цепи базы, чтобы оставить возможность внутрисхемного программирования, в свою очередь увеличение сопротивления ухудшает кривую открытия/закрытия. Поэтому в нижнем плече применен MOSFET. Опять же 2N7002 выбран по хорошему запасу Vsd, у распространённых MOSFET с логическим уровнем на затворе это напряжение часто не выше 20-30В.

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

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

Кроме всего прочего при выборе схемы подбиралась оптимальная частоты ШИМ. Увеличение частоты позволяет уменьшить индуктивность и емкость в выходном LC фильтре, но с другой стороны усложняет режимы работы транзисторов и то, что отлично работает в режиме ключа на 31.25кГц на 250кГц не имеет уже ничего общего с ключевым режимом работы. В выбраном МК attiny10 есть режим FastPWM с настраиваемой битностью. Собственно выбор частоты делался между 31.25кГц (8 бит ШИМ при тактовой 8МГц) и 250кГц (5 бит ШИМ). Выбор был сделан в пользу 62.5кГц, при этом минимальные параметры LC - 47мкГн и 22мкФ.

 В результате получились такие осцилограммы работы нижнего (нижняя кривая) и верхнего ключей (верхняя кривая):

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

Итоговая схема получилась такая:

Конструкция

Плата легко изготавливается односторонним ЛУТом, минимальная толщина дорожек 0.3мм. Разводка сделана без отверстий, несколько не SMD компонентов припаяны на предусмотренные прощадки сверху. Для основы использован стеклотекстолит 0.5мм который легко вырезается обычными канцелярскими ножницами.

Рисунок в зеркальном отображении (в приложении PDF версия для печати):

до пайки после лужения сплавом Розе (в рисунок выше внесены несколько исправлений ошибок обнаруженных при сборке):

готовая плата:

Маркировка сделана ЛУТом (в приложенном PDF есть соответствующий слой). При сборке внимательно смотрите на правильную полярность электролитических конденсаторов, смотрите на схему. У SMD электролитов минус обозначен черным сектором (на фото минус снизу).

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

МК можно использовать attiny5 или attiny10. HEX с оптимизацией -O3 занимает 508 байт из имеющихся в attiny5 512 байт. При использовании attiny10 логику работы можно усложнить. Например модет быть полезно не снижать частоту вращения вентилятора до того момента когда температура не снизится до установленного минимума.

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

Программа

Основные настройки программы это:

  • MAX_VOLTAGE_ADC и MIN_VOLTAGE_ADC для определения диапазона целевого выходного напряджения. Константы задаются в отсчетах ADC исходя из того, что Vref=5.0В, на входе делитель с коэффициентом 1/3, т.е. 204 соотвествует 12В.
  • MAX_TEMPERATURE и MIN_TEMPERATURE - диапазон температур, целевое напряжение меняется при изменении температуры так, что при температуре равно или меньше минимального значения целевое напряжение будет минимально, соотвественно при росте температуры до или выше максимального значения целевое напряжение выставляется максимальным
  • OFF_TEMPERATURE - температура при которой напряжение на выходе снижается до нуля
  • PWM_TOP - максимальное значение счетчика ШИМ, определяет разрядность ШИМ. 127 соотвествует 7 битам. Просто так снижать это значение нельзя - растет частота ШИМ и меняется режим работы транзисторов (см. описание выше)

Измерения (напряжение и температура) циклично делаются по прерываниям. В основном цикле делается только подсткройка ШИМ (регистр OCR0A) до установления целевого напряжения на выходе. Так же есть отдельная ветка в основном цикле для случая когда нужно снизить напряжение на выходе до нуля. Особенность этого МК при работе в режиме FastPWM в том, что при не инверсном выводе если OCR0A=0 на PB0 будет не постоянный логический ноль, а короткие импульсы с частотой следования ШИМ. Чтобы это обойти при целевом напряжении равном нулю PB0 отключается от ШИМ, хотя сам ШИМ продолжает работать. Как только целевое напряжение становится отличным от нуля PB0 подключается снова.

Частота МК устанавливается при запуске в первых строчках main() на 8Мгц. Фьюзы никакие выставлять не нужно (их у этих МК всего два и оба нам не интересны).

Для исключения зависания активирован watchdog.

При использовании проекта atmel studio все настройки уже учтены. При компляции в других средах нужно выставить символ F_CPU=8000000UL.

Полный проект под atmel studio 6 в приложении, HEX откомпилирован под attiny5 с настройками указанными в .C файле.


Файлы:
Архив ZIP


Все вопросы в Форум.


Как вам эта статья?

Заработало ли это устройство у вас?

22 10 4