Вашему вниманию предлагается конструкция, предназначенная для автоматического и ручного регулирования оборотов вентиляторов охлаждения (до 4-х шт.) от датчиков температуры (2 шт.).
Вся конструкция размещена в корпусе от старого CD — ROM и предназначена для установки в 5 — дюймовый отсек компьютера.
Прошу под кат (много букв и картинок)
В качестве датчиков в моей конструкции я применил DS1820. C ними просто работать и обеспечивают они достаточную точность при несложном программировании.
Подробнее об этой микросхеме можно узнать, прочитав справочную информацию об DS1820.
Схема подключения подобного датчика к PIC — контроллеру следующая:
Для регулирования оборотов решено было использовать Широтно Импульсную Модуляцию (ШИМ или PWM). К сожалению организовать программный 4-х канальный ШИМ на имеющемся в наличии PIC — контроллере (а именно PIC16F877) на необходимых частотах (а именно 18-25 кгц) довольно проблематично. А при более низких частотах начинают «петь» вентиляторы. Проверено экспериментально. По этой причине от прямого ШИМ — регулирования пришлось отказаться.
На помощь пришла вот такая схема управления:
ШИМ — напряжение невысокой частоты (в моём случае не выше 1 кГц) сглаживается RC — цепочкой. Операционный усилитель включен по схеме повторителя напряжения и выход его является источником напряжения смещения стабилизатора напряжения 7805. В таком случае напряжение на выходе микросхемы — стабилизатора 7805 будет изменяться примерно от 5.5 V (при минимальной ШИМ) до примерно 11.5 V (при максимальной ШИМ), что является наилучшим вариантом для работы компьютерного кулера.
Если вместо 7805 применить, к примеру, LM317, можно получить регулировку от примерно 2.5 V. Только для вентилятора этого явно мало.
В качестве индикатора я применил готовую панель из 5-и 7-сегментных индикаторов и линейки из 8-ми светодиодов на основе микросхемы ICM7812. Так же на этой панели имеются 3 кнопки. Панелька была взята из какого-то старого прибора. Просто хорошо подошла.
Описание работы микросхемы ICM7218 на русском (краткое) и английском (более полное) можно скачать по ссылке.
Я же приведу только краткую информацию:
Опять же — за всеми подробностями читаем даташит
Микропроцессорная часть выглядит следующим образом:
ПРОЦЕССОР БЫЛ ПРИМЕНЁН PIC16F877.
Датчики DS1820 подключены ко входам RA3, RA4. Панель индикатора подключена к портам RD и RC. Выходы каналов ШИМ RB0-RB3.
Вот и печатная плата:
Скачать чертёж печатной платы в формате *.lay можно по ссылке.
А вот она «живьём» (изготовлена «лазерно — утюжным» способом (ЛУТ)) :
и после распайки деталей :
Стабилизаторы 7805 установлены на небольшие радиаторы.
Теперь о программе:
Приведу тут только пару фрагментов:
1. Чтение показаний от датчиков температуры. Так как в моём приборе используется только целое значение температуры, а так же можно допустить, что температура внутри корпуса компьютера не опустится ниже нуля, программу измерений удалось максимально упростить.
В данной подпрограмме производится последовательное чтение с 2-х датчиков значения температуры и преобразование её в цифры (десятая часть и единицы) для вывода на индикацию.
2. Подпрограмма прерываний (4-х канальный ШИМ)
В программе прерываний проверяется, достигла ли длительность импульса ШИМ заданного значения для каждого из четырёх каналов. По достижении — данный канал переключается в (0). По окончании периода ШИМ все каналы переходят в (1) и цикл начинается снова. Кроме этого в программе прерываний происходит вызов подпрограммы обработки нажатия кнопок.
Скачать проект программы данного прибора для Micro C можно по ссылке.
Кроме непосредственно проекта на Micro C с многочисленными комментариями в архиве находятся непосредственно прошивка (файл Fancontrol.hex) и файл с установками по умолчанию, которые надо записать в EEPROM при программировании контроллера (файл eeprom.MCH). Эти установки можно внести в Mplab вручную:
Теперь об управлении прибором:
После включения прибор находится в режиме попеременной индикации температуры от 1 и 2 датчиков. (Далее фотографии сделаны с прибора со снятой передней панелью)
Кнопки 1 и 3 циклично переводят индикацию в режим (попеременная индикация) — (только 1 датчик) — (только 2 датчик). Длинное нажатие кнопки 2 гасит экран (сам регулятор продолжает работать). Обратное включение — любая кнопка.
Короткое нажатие на кнопку 2 вызывает выбор общего меню режима работы всех 4-х каналов. По умолчанию — (АВТО). Кнопки 1 и 3 циклично переключают (АВТО) — (100% — полные обороты) — (50% — тихий режим)
В режиме (АВТО) работа каждого канала определяется индивидуальными настройками.
Возврат в режим индикации происходит автоматически по истечении времени, в течение которого не было нажатия кнопок.
Нажатие кнопки 2 далее приводит к переходу в режим индивидуальных настроек канала каждого вентилятора.
Выбор канала осуществляется кнопками 1 и 3. Вход в настройки канала — кнопкой 2.
Так же в этом меню есть пункт выхода «EXIT» :
Краткое нажатие на кнопку 2 приводит к выходу в режим индикации без записи изменений в EEPROM. Длинное нажатие — перед выходом производится запись настроек в EEPROM с соответствующей индикацией.
Внутри каждого канала есть следующие индивидуальные настройки (перемещение по настройкам — кнопка 2, изменение настроек кнопки 1 и 3):
1 — Выбор датчика, от которого регулируется этот вентилятор (1 или 2):
2 — Выбор крутизны регулировки (за какой диапазон температур обороты вентилятора изменятся с минимальных до максимальных). (1 — за 20°С, 2 — за 10°С)
3 — АВТО, 100%, 50% — то же, что и в общем случае, только индивидуально для каждого вентилятора.
4 — Температура, при которой вентилятор достигнет максимальных оборотов (25° — 85°С)
Ещё одно нажатие на кнопку 2 приведёт к возврату к выбору канала вентилятора — выходу (EXIT).
Вот, пожалуй, и все.
Это прибор, смонтированный в корпус от CD-ROM. В компьютер его пока не вставил, но все необходимые испытания произвёл.
1 responses to “Четырёхканальный регулятор оборотов вентиляторов для охлаждения корпуса ПК”