FanVTC - регулятор скорости вращения компьютерного вентилятора в зависимости от температуры

24 декабря 2008, среда 13:25
для раздела Блоги
Особенности регулятора FanVTC:

- Корпус датчика температуры соединен с общим проводом.
- Зависимость напряжения на вентиляторе от температуры задается программой микроконтроллера.
- Регулятор напряжения построен по импульсной схеме – выходной транзистор может работать без радиатора.

Схема регулятора

Принципиальная схема регулятора представлена на рисунке:


Принципиальная схема FanVTC

В качестве микроконтроллера D1 выбран PIC12F683, т.к. в его составе имеется АЦП и выход с ШИМ.

Датчик температуры построен на транзисторе VT1 и резисторах R3-R6. Выход датчика не требует дополнительного согласования со входом АЦП микроконтроллера, и, как было сказано выше, его корпус (коллектор VT1) соединен с общим проводом. Подобный датчик описан на странице http://www.ixbt.com/cpu/fan-thermal-control.shtml.

Питание на датчик температуры и микроконтроллер подается от +5V источника, построенного на микросхеме стабилизатора D2. Необходимо отметить, что в качестве источника +5V для данной схемы не следует использовать выход +5V компьютерного БП, т.к. его нестабильность может сильно влиять на измерение температуры.

Пример зависимости напряжения на эмиттере VT1 от температуры корпуса транзистора приведен на следующем рисунке:


Зависимость напряжения на эмиттере VT1 от температуры

Напряжение с датчика температуры подается на вход АЦП микроконтроллера D1 через фильтр R7-C2 и резистор R8, выполняющий защитную функцию.

Регулятор напряжения сделан по чопперной схеме. ШИМ сигнал с частотой следования импульсов 60 кГц подается с микроконтроллера D1 через резистор R11 на затвор транзистора VT3. Далее ШИМ сигнал поступает со стока данного транзистора через цепочку R9-R10 на базу транзистора VT2, выполняющего ключевую функцию. Номинал резистора R10 определяется коэффициентом h21э транзистора VT2. Если он не менее 100, то в качестве R10 можно использовать резистор на 1 кОм мощностью 0,25 Вт. На элементах L3, C11-C12 построен выходной сглаживающий фильтр. Диод VD3 – разрядный для дросселя L3. Напряжение с выхода регулятора через резистивный делитель R14-R15 поступает на вход АЦП микроконтроллера для организации обратной связи. Светодиод VD4 служит для качественной оценки выходного напряжения. Резистор R12 служит для подачи на вентилятор максимального напряжения, когда микроконтроллер D1 находится в состоянии сброса, или когда он отсутствует в схеме (например, извлечен для перепрограммирования).

Диоды VD2 и VD5 выполняют защитные функции. Дроссели L1, L2 и подключенные к ним конденсаторы служат для фильтрации напряжения +12V.

Светодиод VD1 индицирует режим работы вентилятора следующим образом:

- Горит зеленым – минимальное напряжение на вентиляторе.
- Моргает зеленым – напряжение на вентиляторе не превышает среднее значение.
- Моргает красным – напряжение на вентиляторе превышает среднее значение.
- Горит красным – максимальное напряжение на вентиляторе.

Несколько слов по поводу элементной базы. В качестве С9 и С11 желательно использовать полимерные или танталовые конденсаторы. Дроссель L1 – любой малогабаритный. Дроссель L2 – 10 витков медного провода диаметром 0,315 мм, покрытого эмалевой изоляцией, на ферритовом стержне диаметром 4 мм или аналогичный готовый. Дроссель L3 – 40 витков медного провода диаметром 0,315 мм, покрытого эмалевой изоляцией, в чашечном сердечнике Ч14 из феррита марки 2000НМ или 2000НМ1 с немагнитной и непроводящей прокладкой толщиной 0,1 мм между чашечками (например, изоляционная лента такой толщины). Для описанных дросселей L2 и L3 рабочий ток вентилятора не должен превышать 0,38 А.

Внешний вид устройства, установленного на видеокарту, представлен на рисунке:


Внешний вид FanVTC
Ссылка на файл большего разрешения (1280x600, 307 kB): //st.overclockers.ru/legacy/v1/171175.jpg

Настройка схемы регулятора

Настройка схемы регулятора сводится к установке подстроечным резистором R6 напряжения на эмиттере транзистора VT1 равного

Ue=[2,95-(t/100)]*[Up/5], где

Ue – напряжение на эмиттере VT1, В;
t – температура VT1, градусов Цельсия;
Up – измеренное напряжение питания U5V (на выходе стабилизатора D2), В.

Например, если температура транзистора VT1 равна 20 градусов Цельсия, а измеренное напряжение на выходе стабилизатора D2 равно 4,87 В, то необходимо установить напряжение на эмиттере VT1 равное 2,68 В.

Программа микроконтроллера

Исходный текст программы можно скачать ниже на данной странице. Программа написана в оболочке MPLAB IDE v8.10 используя MPASM v.5.20.

При старте микроконтроллера производится его инициализация и на вентилятор подается практически все напряжение питания в течение 5 с. Затем программа приступает к регулировке напряжения на вентиляторе.

Основной цикл программы состоит из следующих подпрограмм:

- Чтения двух каналов АЦП (Read_ADC_Acc).
- Определения требуемого выходного напряжения по температуре (Get_Out).
- ПИ регулятора для стабилизации выходного напряжения (PI_Reg).
- Записи значения ШИМ (Load_PWM).
- Подпрограммы индикации (Proc_LED).

Функция зависимости выходного напряжения от температуры задается подпрограммой Get_Out. Входным параметром данной подпрограммы является 10-битное значение с АЦП датчика температуры (ADC = <ADC_Acc_High:ADC_Acc_Low>), а выходной параметр – 8-битное значение требуемого выходного напряжения (V_set).

С точностью, достаточной для регулятора:

ADC=600-2*t, где t – температура транзистора VT1 в градусах Цельсия.
Uo=0,078*V_set, где Uo – выходное напряжение, В.

Непосредственно функция зависимости V_set от ADC задается в таблице Out_Table. К таблице предъявляются следующие требования:
Для значений ADC=0..800 функция должна быть невозрастающей.
Для значений ADC=801..1023 значение функции должно равняться максимуму на предыдущем участке (ADC=0..800). Это сделано для защиты от обрыва датчика температуры.


Для варианта программы из приведенной ниже ссылки график значения напряжения на вентиляторе в зависимости от температуры представлен на следующем рисунке. Нижняя ветвь соответствует напряжению питания 12 В, верхняя – более 13,2 В (для примера, поскольку в реальности напряжение питания не должно превышать 13,2 В).


График зависимости напряжения на вентиляторе от температуры

Регулятор, установленный на видеокарту ASUS EAH4670/DI/512M, существенно снизил шум вентилятора, особенно при малой нагрузке на нее.

Исходный текст программы FanVTC v1.0 и hex-файл (30 kB) можно скачать по ссылке: http://cp.people.overclockers.ru/cgi-bin/dl.pl?id=30099&filename=fanvtc10.rar

Обсуждение статьи: http://forums.overclockers.ru/viewtopic.php?t=290570

P.S. Для любителей простоты привожу следующую схему:


Упрощенная принципиальная схема FanVTC
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают