Page 1 of 21

Регулятор 12V вентилятора на ATtiny13

Posted: 01 Feb 2009 00:02
by hardlock
Предыстория:

Стоял у меня на работе старенький компьютер (Athlon XP 2500+) и сильно мне мешал своим шумом (5 вентиляторов!!!). Температура отдельных компонентов невысокая (смотрел разными программами и в BIOSе), но регулировки скорости вентиляторов в той материнке нет... Вначале была идея создать мега дэвайс по контролю температуры и регулировке скорости вентиляторов, да ещё с общением по USB с компьютером. Но немного подумав сделал простенькое устройство для каждого вентилятора.

История:

Взял все вентиляторы из своего компа и попробовал при каком напряжении они стартуют. Получилась довольно печальная картина: некоторые вентиляторы стартуют при напряжении 8 Вольт, но продолжают уверенно крутятиться даже при понижении напряжения до 5 Вольт. А при 8 - уже почти полные обороты. Поэтому на старте устройство должно на 1 секунду подать полное напряжение, а потом уменьшить до нужной величины. Далее - все вентиляторы уверенно работают при 5 Вольтах, поэтому нижняя граница напряжения принята 5 Вольт. Верхняя - понятно 12 Вольт.

Теперь о температуре... Я посчитал, что температура в 36 градусов является нормальной для всех компонентов компьютера, поэтому нижний порог срабатывания взят за 36 градусов. Ну и верхний (при котором будут максимальные обороты) выбран 66 градусов. Почему? Да не знаю вроде ещё и не критическая температуря, но уже и не маленькая...

Чем будем мерять? Хорошо конечно получать температуру прямо с материнской платы, но это не всегда возможно, да и хочется автономного устройства... Термопара? довольно сложно. Остановимся на цифровом датчике DS18B20.

Чем будем управлять? Мне показалось что самого простого контроллера будет достаточно, поэтому я взял самый дешёвый контроллер (из AVR) ATtiny13 и принялся за дело.

Схема получилась вот такая (кликабельно):
sch.gif
Немного поясню. Серым обозначена цепь, которая позволяет контролировать вращение вентилятора. Обратная связь на вывод 3 - контроль напряжения на выходе устройства. Остальное уже не помню - давно это было... Если что - пишите.

Печатная плата
pcb.gif
pcb.gif (11.23 KiB) Viewed 5340 times
Как видите - односторонняя ПП, правда не очень простая, зато маленькая: 27*15мм!!! Во вложениях можно взять в формате Sprint-Layout 5.0 (pcb.rar)

Далее немного фото:

Голая плата изготовленная "лазерным утюгом":
Голая плата изготовленная "лазерным утюгом"
Голая плата изготовленная "лазерным утюгом"
Собранная плата, вид со стороны проводников:
Собранная плата, вид со стороны проводников
Собранная плата, вид со стороны проводников
Собранная плата, вид со стороны элементов:
Собранная плата, вид со стороны элементов
Собранная плата, вид со стороны элементов
Готовое устройство:
Готовое устройство
Готовое устройство
Готовое устройство
Готовое устройство
Вот такой вот корпус:
Вот такой вот корпус
Вот такой вот корпус
Прошивка:

Прошивка (hex.rar), Проект (src.rar) под CodeVisionAVR доступны для скачивания во вложениях. В прошивке отключен контроль вращения вентилятора. Просто закомментированы следующие строки (97-100):

Code: Select all

    if (!FanStoped & PINB.1)
    { 
    Beep();
    }


Фьюзы (9,6МГц, остальное без изменений):
fuse_fan.png
fuse_fan.png (3.3 KiB) Viewed 78932 times
На старте контроллер запускает вентилятор на полную и медленно снижает напряжение на выходе до 5 вольт, что контролируется с помощью аналогового входа ADC2. Это сделано для более точного получения напряжения 5 Вольт, т.к. параметры используемых элементом могут сильно отличаться. Далее начинам измерять температуру. Если она ниже нижнего порога 36 градусов - останавливаем вентилятор. Как только температура доберётся до 36 градусов - на одну секунду подаём 12 Вольт на вентилятор, чтобы он гарантировано стартовал, а потом уменьшаем до напряжения высчитанного по формуле:
U = ((Umax - Umin) / (Tmax - Tmin)) * (T - Tmin) + Umin
где: Umin = 5В, Umax = 12В, Tmin = 36°, Tmax = 66°, T = текущая измеренная температура.

Получается приблизительно следующее:
Т°,С_U,В
36 = 0
37 = 5,2
42 = 6,4
50 = 8,3
66 = 12

Когда температура становится равной или выше максимума - включается вентилятор на полную и включается пищалка (на выводе 7 - логический "0").

Устанавливаем:

Термодатчики можно запихивать между рёбер радиаторов. Приблизительно так:
В радиатор видеокарты
В радиатор видеокарты
На жёсткие диски пришлось придумать скобку для крепления датчика. Вот так:
hdd.jpg
Результаты:

После старта компьютер начинает реветь на полную мощность, но в течении 30 секунд гул стихает и если что-то успело нагреться до 36 градусов, то включается один-два вентилятора. Потом по мере прогрева системы могут включаться и остальные вентиляторы. Поработав немного и охладив систему они выключаются...

Был у меня "сервер" - P-III 800MHz - использовался только как файловое хранилище и шлюз в интернет. На него были установлены 6 таких устройств.
  1. Процессор (Slot 1)
  2. Видеокарта (GeeForce 4 MX440)
  3. БП Codegen 400W
  4. Корпус
  5. HDD1
  6. HDD2
Если до установки регуляторов я не знал куда его запихнуть, то теперь его стало еле слышно, и то в моменты нагрузок - копирую на него что-то или с него, или много народу ломанулось в интернет и антивирус усердно кушает ресурсы процессора. А основное время (до 70%) вентиляторы стоят!!!

ВНИМАНИЕ!!! Данное устройство можно подключать только к нерегулируемым выходам для вентиляторов на материнской плате, или к 12 Вольтам напрямую к блоку питания. Можно также выключить регулировку напряжения в BIOS, только зачем тогда было делать это устройство, если Ваша материнка умеет сама регулировать скорость вращения вентиляторов.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 14 Mar 2009 17:27
by QWERY
Собрал,прошил AVRку,фузы не менял,при включении подает 5 вольт на кулер,секунд 5 держит и снижает напряжение до нуля.На нагрев датчика не реагирует.Питание сделал согластно даташиту.убрал резбк на пять вольт с порта,запитал датчик нормальными 5 вольтами. Два датчика пробовал,результат тот же. На порту в сторону датчика редкие посылки,слушал входом звуковой карты. При отключении вывода датчика от порта и подключении к звуковой-тишина. Проверить датчики нет возможности (пока,как будет время соберу термометр на 16F84,попробую на ней проверить). Прошивал три раза,первый раз даже при включении не дышал,потом оба раза одно и то же,питалово подвет,несколько секунд крутит и останавливает..Что можно еще попробовать ?

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 14 Mar 2009 17:31
by hardlock
QWERY wrote:при включении подает 5 вольт на кулер
5? можеть 12?
QWERY wrote:и снижает напряжение до нуля
что-то не то... должен до 5-ти снижать.
QWERY wrote:убрал резбк на пять вольт с порта,запитал датчик нормальными 5 вольтами
резистор должен быть в любом случае.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 14 Mar 2009 17:41
by QWERY
Подает именно 5 максимум,причем достаточно точно,+/- 0,2 Вольта.
А потом да,просто выключает кулер,и нагревом датчика уже не запускается.
Щас запаяю,результат доложу.

Добавлено спустя 5 минут 42 секунды:
Джага-джага, тумба-юмба, запаял резистор и работает !!!
Спасибо большое :!: !
:good:

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 14 Mar 2009 17:46
by hardlock
Кстати транзистор лучше не BC857, а BC807 - у него ток до 500мА

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 29 Apr 2009 13:56
by hardlock
urcda wrote:Суть работы в следующем, при температуре +83-85°C двигатель начинает работать на 30% мощности, при увеличении температуры увеличивается мощность(при снижении температуры уменьшается) при +95-98°C двигатель работает на 100% мощности, если есть возможность надо организовать подстройку температуры минимальной и максимальной (т.е регулировать 83-85 и 95-98)
Заранее спасибо за ответ
пробуйте - проект во вложении. Коментарии присутствуют.
Сам не пробовал - писал на коленке, без доступа к паяльнику.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 29 Apr 2009 23:13
by urcda
Я говороил что не соображаю в написании программ для МК

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 30 Apr 2009 09:42
by hardlock
urcda, ну прошить то вы сможете. И там не надо соображать - там надо ставить свои цифры...

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 07 Jun 2009 16:17
by barbus
В CodeVision выдает предупреждение на 101 строке "PWM_ = ((dP / DT) * T);"

В протеусе не работет схема.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 11 Jul 2009 19:37
by urcda
hardlock
здрствуйте, собрал девайс описаный сдесь http://hardlock.org.ua/mc/tiny/fan_pwm/index.html , двигатель работает страно стартует на движке +12вольт потом снижается до +5вольт, потом напруга прыгает до +12 и не снижается. Подскажите вчем может быть косяк?

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 11 Jul 2009 21:19
by hardlock
датчик температуры скорей всего не работает по 2-х проводной схеме.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 11 Jul 2009 21:42
by urcda
hardlock
привет, вы оказались правы подсоидинил плюс к датчику и сразу всё заработало. Смущает нагрев транзистора ВС807 нагревается так что пальцем держать нельзя, но нагрев происходит в раёне напряжений от 7вольт до 10 вольт.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 11 Jul 2009 21:45
by hardlock
по нагреву, это да. Я ставил BC817 - он по паспорту до 500мА - вроде получше. По даже 847-й греясь так, что "аж палец обжигает", работет уже не первый год в том стареньком сервере с кулером на 250мА...

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 11 Jul 2009 21:48
by urcda
hardlock
спасибо за совет, поставим посмотрим как будет работать, у меня весит два маленьких кулера по 170мА надеюсь выдержит. У ВС807 тоже ток колектора 500мА.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 11 Jul 2009 21:50
by hardlock
urcda wrote: два маленьких кулера по 170мА
2 * 170 = 340... это ещё больше чем у мну. А максимальный ток транзистора?

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 11 Jul 2009 21:53
by urcda
hardlock
привет, стоит ВС807 ток колектора 500мА, как думаете выдержит?

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 22 Aug 2009 23:08
by Vitalik_Nic
Добрый вечер

А можно переделать схему и пере компилировать прошивку для ATiny 2313

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 23 Aug 2009 09:18
by hardlock
можно - переделывайте. :jokingly:

а если серьезно, то щас некогда, поэтому если есть конкретные вопросы - пишите, а заняться этим пока некогда.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 19 Oct 2009 11:56
by kipia
hardlock
Подскажите пожалуйста что нужно дописать в программе, чтобы ШИМ при включении на 0,5-1 секунду был 100 процентов. Хочу применить регулятор для питания соленоида.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 19 Oct 2009 12:03
by hardlock
а он вроде и так при старте даёт вначале 100%, потом снижает до необходимого значения - чтобы вентилятор гарантировано тронулся.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 19 Oct 2009 14:42
by kipia
А проект http://hardlock.org.ua/download/file.php?jump=48 случайно не с плавным стартом? Пробовал вместо соленоида подключать лампочку- загорается сразу с установленной яркостью.Или время работы 100% ШИМ слишком мало.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 19 Oct 2009 14:58
by hardlock
Дык это же другой проект - пишите в соответствующей ветке, а то путаница получается...

Там нет исходника - утерян.

Добавлено спустя 13 минут 5 секунд:
Ещё раз повторю - по вашей ссылке - вот эта тема, а тут РЕГУЛЯТОР ДЛЯ ВЕНТИЛЯТОРА!

Там для плавного старта НЕТУ исходника - утерян. Писать его заново нет времени.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 19 Oct 2009 15:04
by kipia
Извините не туда написал. Если возможно, перенесите сообщения в указанную тему.

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 08 Nov 2009 23:40
by alelula
Привет всем. Прошу помощи. Шил понипрогом, фузы не менял, споткнулся на том, что "Read device" фузы не считывает а "Write device" видимо прописывает так и прошились sut1, ckel0, ckel1, lock0, lock1=0(галочки стоят). после прошивки ни Pony ни STK200 проц не опознаётся, повесил кварц 4.000 на 2,3 ногу - всёравно глухо. как восстановить, кроме HVSP? Спасёт ли меня AVR910?
На втором был осторожней, вот для пони правильные фузы: cksel0,sut0,ckdiv8=0. в схемке 6 вывод PB1/miso можно было-бы подправить.
Автору глубокое уважение :drink:

Re: Регулятор 12V вентилятора на ATtiny13

Posted: 09 Nov 2009 09:32
by hardlock
alelula wrote: как восстановить, кроме HVSP?
никак - толлько ХиджВольтэйдж...
alelula wrote:Спасёт ли меня AVR910?
нет - этот тот же STK 200/300, только на USB...
alelula wrote:в схемке 6 вывод PB1/miso можно было-бы подправить
Спасибо. Исправил.