Автор - ...
Опубликовано 10.08.2010.

Реобас.


  • Четыре канала шим.
  • Четыре канала измерения температуры, поддержка датчиков DS18B20, DS18S20.
  • Плавное изменение напряжения на кулере (при использовании датчика DS18B20).
  • Задание времени и напряжения раскрутки.
  • Измерение частоты вращения кулеров.
  • Сигнал тревоги при превышении заданной температуры.
  • LCD дисплей HD44780 16х2.

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


Пульт.

Управляется четырьмя кнопками.

Вверх
Влево Вправо
Вниз

Нажатие кнопки "вправо" вход в режим настроек. Нажатие кнопки "влево" возврат на уровень вверх, при удержании выход в основной режим. Кнопки "вверх" и "вниз" увеличивают/уменьшают мигающий параметр.

Режим настроек.
Fan 1   Контроль
On    Упр.-Прог.
В меню "контроль" доступны следующие настройки:
ON/OFF - кулер включен / выключен.
Управление программное / ручное.
Fan 1 Напряжение
   078    255
Нижняя и верхняя граница напряжений для кулера.
Fan 1 Напряжение
  Ручное  205
Если выбрано ручное управление кулером, данное напряжение на кулере будет присутствовать постоянно.
Fan 1 Температур
   41,0°  47,3°
Нижняя и верхняя граница температур для кулера.
Fan 1    Тревога
 Т max = 57,0°
Порог для сигнала тревоги.
Fan 1  if T>Tlow
 Кулер выключен
Если текущая температура ниже нижней границы температуры, то оставлять кулер включенным или выключать.
Fan 1  Раскрутка
02сек.   U=200
Задаётся время и напряжение для раскрутки кулера.
Fan 1 Имя кулера
Видео
Выбор имени для кулера. (Видео, HDD, GPU, Корпус, Чипсет, Нижний, Задний, Боковй).

При удержании кнопки "вправо" более двух секунд, произойдет вход в режим установки яркости подсветки индикатора. Доступно 124 значения. Яркость формируется с помощью шим. При максимальном значении, на экран выводится надпись "Максимум", при этом шим отключен, на вывод управления яркостью подана логическая единица (минимум помех).


Алгоритм работы в режиме программного управления кулером.

Нижней границе температуры Tlow соответствует значение нижней границы напряжения Ulow. Аналогично верхней границе температуры Thi соответствует значение верхней границы напряжения Uhi.
Для значений температур лежащих между границами Tlow и Thi напряжение будет рассчитано по этой формуле:

U = (Tтекущая-Tlow) * ((Uhi-Ulow)/(Thi-Tlow)) + Ulow;

При использовании датчика DS1820 и при маленьких диапазонах границ, напряжение на кулере будет изменяться на большие значения (ступенчато), так как разрешение датчика 0,5 градуса.


Если выбрана опция выключать кулер при текущей температуре ниже нижней границы, то при включении кулера сначала произойдет раскрутка.
Иными словами, если кулер был выключен, то при включении, будет всегда вызвана функция раскрутки.

В режиме настроек, при редактировании любого параметра относящегося к напряжению, на кулере будет установлено текущее редактируемое значение напряжения.


В основном режиме доступны следующие экранные страницы, переход между ними осуществляется нажатием кнопок "вверх" и "вниз".

39. 00%   45 53%
25. 00%   25 00%
Температура и мощность кулера в процентах. Точка в показаниях температуры индицирует, что десятые больше 0,5 градуса. На первой строке показания 1-го и 2-го кулера, на второй строке 3-го и 4-го кулера.
  1200   2500
  0000   0953
Частоты вращения кулеров.
Видео  43,0  58%
Чипсет 47,3  00%
Имя, температура и мощность первого кулера.
2 кулера.
Боковй 25,0  30%
Задний 25,3  27%
3 кулера.
4 кулера.
Видео  43,0 1203
Чипсет 47,3 0000
Имя, температура и частота вращения первого кулера.
2 кулера.
Боковй 25,0 1125
Задний 25,3 0953
3 кулера.
4 кулера.

Для индикации превышения температуры тревоги, в пульте предусмотрен светодиод. При тревоге, устройство переходит в отображение первой экранной страницы. Показания температуры превысившие значение мигают. Также начинает мигать и светодиод. Звуковой сигнал частотой 500Гц формируется на плате управления кулерами.

Схема пульта.



Блок управления кулерами. Реобас.

Схема.

Данный блок можно рассматривать, как шим контроллер. Для себя, я решил сделать регулятор напряжения последовательного типа. Такое решение дает минимум помех. Транзисторы у меня стоят SS8550 (других просто не было). Греются до 60-70 градусов, если, например, кулер имеет такие характеристики 300мА 12В, то при 6 вольтах максимальное потребление, допустим миллиампер 150, итого 6*0,15=0,9Вт. Но у моих кулеров потребление при шести вольтах не превышает 100мА, поэтому хоть транзисторы и горячие, но работают до сих пор :)). (кстати SS8550 Storage Temperature -65 ~ 150 °C). На транзисторы желательно установить радиаторы.
Если кого-то, по каким либо причинам не устраивает последовательный регулятор, то можно применить импульсный понижающий преобразователь по этому типу. Частота ШИМ 31250 герц.

Датчики температуры можно применять DS18B20 и DS18S20, микроконтроллер автоматически распознает тип датчика.
Светодиод можно не устанавливать, он был введен в схему для отладочных целей. Сейчас он включается при нахождении программы в режиме настроек.

Микроконтроллеры между собой общаются по UART на скорости 250000 бод. Вначале планировалось написать программу на компьютер, тогда можно было бы не собирать пульт, но из-за нехватки времени, пришлось это дело отложить.
Длина посылки фиксирована и имеет вид:

':' 'K' 'd' 'd' 'd' 'd' 'crc' '\r'

где:
':' - Символ начала посылки.
'K' - Команда.
'd' - Байт данных.
'crc' - crc = ':' xor 'K' xor 'd' xor 'd' xor 'd' xor 'd';
'\r' - Символ конца посылки.

Если плата управления кулерами не отвечает на команду, то пульт делает пять попыток передачи команды, если они все не удачны, то вместо значений параметров будут выведены символы '?', в режиме настроек на нижней строке будет надпись "No connect".



Микроконтроллеры тактируются от внутреннего RC генератора 8 мегагерц.
Скриншот fuse битов для ponyprog ATMega8 (пульт), ATMega48 (плата кулеров).
Печатные платы в формате SprintLayout5.
Файлы.

Для коррекции частоты внутреннего RC генератора микроконтроллера ATMega8, нужно прочитать значение калибровочного байта для 8 Мег и записать его во флеш память по адресу 0x0062. Данную операцию можно не производить, если связь пульта с платой управления стабильна.

Фото.



Вопросы, как всегда в Форум.