Уменьшение шума от вентиляторов.

Принцип измерения температуры.

В МК хранится значение напряжения (U_const) для температуры (T_const), например 25°C. МК сравнивает измеренное напряжение c напряжением для 25°C и вычисляет текущую температуру.

T = (Uizmerennoe - U_const) / Una_1_gradus + T_const

В программе выбирается: значение переменной T_const и напряжение для нее U_const, количество милливольт на градус Цельсия Una_1_gradus с шагом 2,5 mV; есть автоматический режим присвоения.

Датчик температуры. Аналоговая схема в Micro-Cap8. tempir_ou.cir (17 Kb)

Датчик - диод D1. С увеличением температуры на 1°C напряжение падает на нем, примерно, на 2mV. Далее оно инвертируется и усиливается в 10 раз. Такое усиление выбрано только из-за удобства номиналов резисторов обратной связи R3,R4. Из скриншота видно, что для нужного диапазона температур 10...85°C падение напряжения с каждым градусом изменяется линейно, примерно на 20 милливольт. Это значение, Una_1_gradus, подбирается в программе с шагом 2,5 mV, в данном случае оно равняется 8 (8×2.5mV=20mV). Коэффициент усиления ОУ можно выбрать 12,5 (10×2.5mV=25mV). Тогда на один градус будет 10 шагов ADC. Эту схему я проверял с помощью термометра на датчике DS18B20. Расхождение где-то 1...2°C. Диоды можно использовать любые, но только чтобы все 4 были одной марки, и с наиболее одинаковым падением напряжения. В программе есть настройки для каждого диода, одинаковые падения напряжения желательны для того, чтобы датчики имели примерно равные верхний и нижний диапазоны измерения температуры. Напряжение на выходе ОУ для комнатной температуры (24°C) я устанавливал примерно 1V.
В схеме устройства это напряжение устанавливается для всех датчиков резистором R6.

ЖКИ – модуль на основе контроллера HT1611.

Несколько замечаний по схеме. Кулерами можно управлять одним транзистором (лучше полевым, для биполярного vt базовый резистор 1 кOm), а не составными транзисторами. Но в этом случае надо быть уверенным, что используется стабильное питание, которое не будет давать просадок при управлении транзисторами, иначе просадки будут влиять на младший разряд АЦП. Да и с составными транзисторами схема потребляет намного меньше тока.

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

кулеры БП и видеокарты подключены по этой схеме. При таком включении кулер работает в полсилы; при превышении верхнего порога включается в полную силу. Способом подключения указанным на схеме устройства у меня подключен боковой и корпусной кулер.

В схеме 5 кулеров. К первому датчику привязаны 2 кулера, процессорный (в выключенном режиме работает через R=41 Om) и боковой (расположен на боковой стенке, его воздушный поток охлаждает CPU, частично память и видеокарту, был сделан до установки этой платы в комп). Остальные 3 датчика это: видеокарта, БП и температура внутри корпуса.

**********************************************

Описание программы.

В программе микроконтроллера формула немного отличается:

T = (Uizmerennoe - U_const) × 10 / Una_1_gradus + T_const × 10.

В этой формуле температура 16-битное число с знаком - signed int. Младший десятичный разряд содержит остаток от деления, температура представлена как бы числом с одним знаком после запятой.

Управляются кулеры с помощью 2 параметров:

  1. Нижний предел температуры. При достижении уст. ноль на выв. МК.
  2. Верхний предел температуры. При достижении уст. 1 на выв. МК.

Устройство управляется 3 кнопками.

  1. SET - выбор параметра, переход к следующему параметру.
  2. PLUS
  3. MINUS
Есть 3 основных группы настроек: установка порогов температуры, управление кулерами, настройка датчиков.
В основном режиме:
Нажатие SET, вход в режим "установка порогов температуры".
Нажатие PLUS, вход режим "управление кулерами".
Нажатие MINUS, вход режим "настройка датчиков".

Для сохранения параметров в EEPROM, все параметры нужно подтверждать нажатием SET. Например, для сохранения порогов температур, нужно подтвердить 2 параметра, если Вы измените нижний порог, а верхний не подтвердите нажатием SET, запись в EEPROM не произойдет.

Установка порогов температуры.
Этот параметр выбирает режим, который будет выводится на LCD.
 0 

В основном режиме выводятся температуры 1, 2 и 3 датчика.
1

Попеременно 1,2  затем  3,4 датчик, через 2сек.
Далее идут отладочные режимы, для 1, 2, 3 и 4 датчика.
Вторая цифра номер датчика.
2..5
В этих режимах отображается номер датчика, температура с десятыми, измеренное напряжение (результат АЦП).
установка нижнего и верхнего порога температуры для процессорного кулера. На 1 датчик привязано 2 кулера P и 1.
установка нижнего и верхнего порога температуры для 2 датчика. Далее для 3, 4 датчика.
Управление кулерами.
- - кулер управляется программой, 0 - всегда выключен, 1 - всегда включен.
Раскрутка кулеров.
При включении, установленные в 1 кулеры будут включены в течение 30 секунд.
Настройка датчиков
Датчики проще всего настроить так, расположить их так, чтобы их температура была одинакова, ввести эту температуру, в следующем режиме нажать PLUS, для всех датчиков будет сохранено измеренное напряжение на датчиках(диодах) соответствующие данной температуре.
Температура (T_const).
Если нажать PLUS произойдет автоматическое присвоение U_const=Uизмеренное. Для всех датчиков.
Второе число: напряжение в милливольтах на градус Цельсия. Получается из произведения 1 числа на 2,5mV.
На экране:  Номер датчика;  U_const;  Uизмеренное.
Для температуры T_const: U_const нужно установить равным Uизмеренное.
(Число - 400 это измеренное напряжение равное 400 × 2.5mv = 1 вольт.
2.5mv - шаг измерения АЦП).

Программа написана на WinAvr. Схема нарисована в программе Splan 5, монтажная плата в Sprint-Layout 4.

При прошивке МК установите биты CKSEL3..0 в 0011 (внутренний RC-генератор 4 MHz). Запрограммировать бит BODEN.
Посмотреть для PonyProg.

Архив


ист-к: http://startcd.narod.ru/control2/index.html