Печать

Многоканальный контроллер вентиляторов охлаждения для ПК на PIC18F2550

Опубликовано . Опубликовано в Устройства на PIC

Рейтинг:   / 3
ПлохоОтлично 

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

Автоматическое управление скоростью вентиляторов охлаждения позволяет значительно снизить создаваемый ими шум. Любой человек, имеющий «шумный» компьютер, а это особенно касается медиа-центров, например в гостиной комнате, сразу заметит преимущества от использования данного устройства. При низкой температуре вентиляторы вращаются очень медленно, скорость вращения повышается по мере необходимости.

Устройство достаточно функционально, но при этом несложно в использовании и конфигурировании. Настройка основных параметров осуществляется в программе на ПК с графическим пользовательским интерфейсом. Кроме того, после настройки контроллер может функционировать как автономное устройство без связи с ПК, что позволит применить его не только для управления вентиляторами охлаждения ПК. Все настройки после конфигурирования хранятся в микроконтроллере.

Отличительные особенности:

- Конфигурируемое управление скоростью вращения вентиляторов на основе данных о температуре;
- Поддержка управления максимально восемью вентиляторами, измерение температуры в четырех отдельных каналах;
- Возможность управления вентиляторами различного типа.
- USB интерфейс и программа для Windows для конфигурирования и мониторинга;
- Звуковое оповещение при отказе вентилятора или датчика;
- Возможность автономной работы контроллера после конфигурирования; все настройки хранит микроконтроллер PIC.

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

Основой схемы является микросхема Microchip PIC18F2550 – высокопроизводительный Flash-микроконтроллер с USB интерфейсом. Микроконтроллер выполняет задачу измерения температуры по 4 каналам и осуществляет управление преобразователями напряжения. Регулировка скорости вращения вентиляторов осуществляется посредством изменения выходного напряжения преобразователей. Питание на схему контроллера подается от блока питания ПК, используются напряжения +5 В и +12 В.

Принципиальная схема контроллера

В контроллере используются 4 схемы понижающих преобразователей напряжения (Buck Converter). Микроконтроллер генерирует последовательность импульсов на каждом выходе (порты RA4, RA5, RC7, RC8), отдельно для каждого преобразователя, и, варьируя шириной импульсов, может изменять выходное напряжение. В нашем случае частота импульсов равна 2.5 кГц, а ширина импульсов изменяется от 0 до 170 мкс, что дает изменение выходного напряжения от 0 В до 12 В. Четыре понижающих преобразователя построены на базе микросхемы 8-канального линейного драйвера IC2 UDN2981A и 4-х дросселей, имеющих индуктивность 100 мкГн. Для организации одного канала преобразователя используются два канала драйвера со своими диодами (диод является обязательным условием при построении данного понижающего преобразователя).

К выходам преобразователей напряжения, как видно на схеме, подключено по паре разъемов различных типов. Таким образом, возможно подключение до 8 вентиляторов. Каждый преобразователь напряжения в схеме управляется независимо, с различными характеристиками управления, и рассчитан на нагрузку до 250 мА. Вентиляторы охлаждения, применяемые в системных блоках компьютеров, потребляют менее 120 мА, что позволяет подключать на один выходной канал два вентилятора. Однако перед подключением вентиляторов к контроллеру необходимо убедится в выполнении данного условия.

Для измерения температуры применяются аналоговые датчики LM335, обозначенные на схеме Датчик A – Датчик D, подключаемые к портам микроконтроллера RA0 – RA3, соответственно. Прецизионный датчик температуры LM335 – это недорогой термочувствительный элемент с диапазоном измерений от –40°C до +100°C и точностью 1 °C. Фактически, LM335 – это стабилитрон с нормированным Температурным Коэффициентом Напряжения (ТКU =10 мВ/K). Т.е. изменение температуры датчика на 1 градус ведет к изменению напряжения на 10 мВ.

Остальные компоненты в окружении микроконтроллера стандартны. Кварцевый резонатор 20 МГц используется для тактирования микроконтроллера, звуковой излучатель – для оповещения о неполадках датчиков или вентиляторов. Разъем USB подключен непосредственно к микроконтроллеру, т.к. он имеет встроенный USB трансивер. Напряжение +5 В от USB интерфейса, когда кабель USB подключен к контроллеру, поступает на вывод 1 микроконтроллера и используется для старта процесса коммуникации по интерфейсу USB.

Контроллер собран на односторонней печатной плате с размерами 100 × 80 мм с учетом установки в 3½” отсек для дисковода. Пользователи могут самостоятельно разработать печатную плату, в соответствии со своими нуждами и возможностями.

Расположение элементов на печатной плате контроллера вентиляторов охлаждения

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

Вариант расположения контроллера внутри системного блока

Контроллер можно использовать также для управления вентилятором охлаждения блока питания, но следует помнить, что это опасно, так как многие элементы в блоке питания находятся под напряжением сети.

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

Стоит заметить, что установленные дроссели, в зависимости от их качества, в процессе работы контроллера могут издавать звук высокой тональности. Это связано с вибрацией обмоток на рабочей частоте преобразователя 2.5 кГц. Этот звук слишком тихий, и при установке контроллера в корпус системного блока слышен не будет. Однако, с целью устранения этой проблемы, можно заменить их на дроссели с тороидальным сердечником. Они немного больше по размерам, но установка их на печатную плату затруднений не вызовет.

Разъем питания на плате контроллера (типа Molex 8981), к которому подключается один из отводов блока питания системного блока, необходимо хорошо закрепить, что бы не повредить печатные проводники при подключении/отключении платы в системном блоке.

Поддерживаемые типы вентиляторов

Контроллер может применяться для управления вентиляторами 3-х типов, в зависимости от их интерфейса подключения:


- Двухпроводные вентиляторы. В общем случае, они имеют 3-контактный разъем: вывод 1 – GND (общий), вывод 2 – +12 В, вывод 3 – свободный;

- Трехпроводные вентиляторы. Имеют такой же, 3-контактный разъем, но третий вывод используется, это выход встроенного в вентилятор тахометра, который может генерировать 1, 2 или 4 импульса на один оборот. Контроллер вентиляторов поддерживает работу со всеми видами тахометров;

- Четырехпроводные вентиляторы – это вентиляторы, разработанные по спецификации корпорации Intel. Они имеют 4-контактный разъем подключения: первые три вывода – как для вентиляторов с трехпроводным интерфейсом, четвертый вывод – для ШИМ управления скоростью вращения вентилятора. Следует обратить внимание, что разъем у таких вентиляторов специального типа, позволяющий подключать их как к 3-, так и к 4-контактным разъемам.

Коннекторы различных типов вентиляторов охлаждения

Если вентилятор сконфигурирован как 4-выводный, т.е подключен к разъемам 1A, 1B, 2A, 2B (конфигурируется в программе), то микроконтроллер удерживает напряжение питания вентилятора постоянным на уровне 12 В и управляет скоростью вентилятора ШИМ сигналом. Этот ШИМ сигнал доступнее на выходах микроконтроллера 12 и 13 и, таким образом, возможно управление четырьмя такими вентиляторами. Конструкция разъемов позволяет подключать в них 2- и 3-выводные вентиляторы, которые будут работать в нормальном режиме, т.е. с управлением уровнем напряжения питания.

Выводы тахометров вентиляторов подключены непосредственно к микроконтроллеру (порты микроконтроллера RB0-RB7), который измеряет скорость вращения, и на основе этих измерений осуществляет управление, а также сообщает скорость вращения по интерфейсу USB в программу на ПК. Заметьте, что выход тахометра – это выход с открытым коллектором, поэтому в портах микроконтроллера задействуются внутренние подтягивающие резисторы.

Внешний вид платы контроллера с установленными компонентами

Датчики температуры подключаются к плате контроллера с помощью 2-контактных разъемов. Схема распайки кабеля показана на рисунке ниже. Третий вывод датчика используется для введения температурной компенсации, и в нашем случае не используется.

Распайка кабеля температурного датчика для контроллера вентиляторов

Программное обеспечение для ПК работает под управлением операционной системы Windows XP, Windows Vista и Windows 7 (32- и 64-битные версии). Это многофункциональная программа, которая позволит настраивать контроллер вентиляторов и отслеживать рабочие параметры: температуру в месте установки датчиков и скорость вращения вентиляторов (если вентиляторы снабжены тахометром).

Следует отметить, что возможно использование контроллера температуры на платформах Linux и Mac. Контроллер температуры использует протокол CDC (Communication Device Class) на USB, команды управления – это простые ASCII последовательности, и для пользователей не составит труда написать программу или простые скрипты для коммуникации с контроллером вентиляторов. Описание коммуникационного протокола доступно в архиве с исходными кодами программного обеспечения в разделе загрузок.

Программа для ПК написана в среде Microsoft Visual Basic Express 2008, программа для микроконтроллера в среде MPLAB с использованием Си компилятора С18. Кроме того, в пакет ПО для компьютера входит драйвер USB устройства.

Вид окна управляющей программы для контроллера вентиляторов охлаждения ПК

При установке программы на ПК потребуется соединение с Интернетом, т.к. в процессе установки будут закачиваться элементы Microsoft.NET с официального сайта.

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

Программа для компьютера работает в двух режимах: режиме мониторинга и режиме настройки контроллера. В режиме мониторинга в окне программы отображаются текущие значения температуры в 4 точках (в градусах Цельсия и Фаренгейта) и скорость вращения вентиляторов. Если вентилятор не имеет встроенного тахометра, то отображается выходная мощность преобразователя напряжения в процентном выражении.

В режиме настройки контроллера пользователь может выбрать:

- Какие датчики температуры подключены, и в каком формате будет отображаться значение температуры;
- Тип подключенных вентиляторов (2-, 3-, 4-проводный, или не подключен);
- Датчик для управления каждой парой вентиляторов. Это может быть датчик A, B, C или D. Также можно для управления вентиляторами установить разницу между датчиком D и A,B или C или же установить ручное управление (для тестирования или задания постоянной скорости вращения);
- Характеристику управления. Как видно на изображении выше, напряжение питания каждой пары вентиляторов может варьироваться от какого-то минимального значения до 100% в заданном диапазоне температуры соответствующего датчика.

В меню Setup доступна опция «Program Settings…», где пользователь может настроить шкалу графических указателей программы, значение напряжения питания контроллера (+5 В) и выбрать режим сворачивания окна программы в системную область состояния (System tray).

Установка значения напряжения питания связана с тем, что при измерении температуры с помощью датчиков LM335Z в качестве опорного напряжения микроконтроллер использует напряжение +5 В от блока питания компьютера. Поэтому любое изменение этого напряжения будет вносить погрешность в измерения температуры. Пользователь при помощи цифрового мультиметра может измерить напряжение питания (на разъеме блока питания компьютера) и указать это значение в настройках программы.

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

Источник: geoffg.net

Файлы:
Файл прошивки микроконтроллера, программа для ПК (драйвер и приложение), исходные коды программы для микроконтроллера и программы для ПК, описание коммуникационного протокола, принципиальная схема (Eagle), рисунки печатной платы (Eagle), спецификация Intel на вентиляторы с 4-проводным интерфейсом.
Дата 19.08.2012 Размер файла 4.6 MB Закачек 1094

Комментарии  

+1 #41 serh7000 24.06.2013 11:21
Сделал как вы сказали. Ни чего не изменилось. Буду ждать мк, если ни чего не измениться, то будет очень обидно, уж очень сильно я хотел этот реобас. Admin без вентиляторов запускается? Вместо UDN2981 я поставил ULN2803 изменив печатку, но я изменил только силовую часть. Генерация на кварце 20мГц все в порядке.
Сообщить модератору

Рекомендуем посмотреть