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

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

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

T=(Uizmerennoe-U_const )/U na_1_gradus+T_const.

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

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

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

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

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

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

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

В схеме 5 кулеров. К первому датчику привязаны 2 кулера, процессорный (в выключенном режиме работает через R=41om) и боковой (расположен на боковой стенке, его воздушный поток охлаждает 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 x 2.5mv = 1 вольт.
2.5mv - шаг измерения ацп).

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

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

Скачать проект (39 Kb).

На главную



Hosted by uCoz