Вашему вниманию предлагается небольшой проект регулятора оборотов компьютерных кулеров, иначе говоря - реобаса. Инициатор, изготовитель, испытатель и идейный вдохновитель - Toledo, программа - ARV.
[Реобас]] создан чтобы поддерживать температуру радиатора (например CPU, GPU, Chipset, HDD и т.п.) на безопасном для охлаждаемых компонентов уровне и при этом обеспечивать минимально возможный шум от крыльчатки вентилятора. Основные параметры следующие:
Индикация текущей температуры с точностью 0.1 градуса
Возможность индикации текущей скважности выхода ШИМа с точностью 1%
Настройка пороговой температуры с точностью 1 градус всего одной кнопкой (по алгоритму из другого проекта).
Плавное регулирование оборотов вентилятора.
За основу реобаса взят микроконтроллер ATtiny2313 по нескольким причинам: подходящее кол-во портов I\O, наличие аппаратного ШИМ, удобные для разводки выводы питания. Датчик температуры использован DS18B20, DS18S20 или DS1820, подойдёт любой из них, программа МК сама определит какой датчик используется. Для индикации используется трёхразрядный семисегментный светодиодный индикатор с распространённой разводкой приведённой на рисунке:
Распиновка индикатора
В нашем случае это красный GNT-5631AS-21 (общий катод, супер красный 660нм, 1.8в, 20мА, 10мКд), без изменения платы подойдёт любой имеющий аналогичную цоколёвку.
Для уменьшения кол-ва проводов питания МК и датчик питаются через стабилизатор 78L05, но ничего не помешает вам запитать его сразу от +5в БП компьютера. Количество токоограничительных резисторов для подсоединения индикатора благодаря посегментной индикации сведено к минимуму - всего три штуки.
Для того чтобы не разрывать общий (минусовой) провод питания вентилятора (иначе нарушится работа датчика оборотов встроенного в вентилятор), на выходе МК используется транзисторная сборка из двух полевых транзисторов разной проводимости.
Принципиальная схема
Все компоненты, кроме стабилизатора, использованы в корпусах для поверхностного монтажа. Транзисторы IRF7309 в одном корпусе, благодаря чему размер платы равен размеру индикатора. Разьём J1 на плате разведён, но не распаян, т.к. используется всего один раз при прошивании МК.
Как вы уже заметили, традиционный выходной LC фильтр отсутствует, но это не сказывается на эффективности устройства.
Печатная плата
В конечном счёте на плате присутствует только 5 контактов: общий, питание +12в, выход, кнопка, датчик. Питание для датчика берётся с контактной площадки не распаянного J1. Кнопка вторым выводом подсоединяется к общему проводу.
При старте по умолчанию реобас показывает текущую температуру, при нажатии кнопки показывает значение пороговой температуры, при этом в левом разряде индикатора отображается маленькая буква «п». Если в этом режиме нажать и удерживать кнопку то происходит изменение пороговой температуры - точно так же, как в "Термостате - меньше чем меньше не бывает".
При следующем нажатии кнопки реобас переходит в режим индикации текущей скважности ШИМа в процентах, что позволяет наглядно оценить степень нагрузки на систему охлаждения. Последующее нажатие переводит реобас снова в режим индикации текущей температуры.
Так выглядела вытравленная плата
Вид на монтаж снизу
А это - 6 реобасов в пятидюймовом отсеке компьютера
А вот и видео:
Все файлы к проекту, как обычно, в файловом архиве. При прошивке надо обеспечить, чтобы fuse-биты были следующими: CKDIV8 = 1, CKSEL = 0100, т.е. запустить микроконтроллер от встроенного RC-генератора 8 МГц.