Реклама ⓘ
Главная » Компьютерная электроника
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

Охлаждающая подставка для ноутбука

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

 Для устройства были «выдвинуты» такие требования:

  • недорогой микроконтроллер
  • светодиодная индикация работы
  • не менее трех кулеров
  • питание от USB порта ноутбука

Из микроконтроллеров, которые были у меня в наличии, поставленным требованиям отвечал лишь PIC12F683. Его я и использовал. Но так как у семейства PIC12 всего 6 свободных пинов (5, если не считать «reset»), то пришлось использовать сдвиговый регистр 74HC595. Так что, кроме управления 3-мя кулерами, осталось место и для светодиодов. Схема устройства показана ниже:

Схема устройства управления для охлаждающей подставки для ноутбука

Микроконтроллер работает на частоте 4МГц. В качестве датчиков температуры используются два термистора. Выбор пал именно на термисторы, а не на DS18B20, по причине значительной разницы в цене, а так же скорости измерения. Конечно, точность будет не очень высокой, но для определения перегрева ноутбука вполне достаточная.  Кроме того, двух датчиков более чем достаточно, для корректного измерения температуры. Конечно, можно было взять всего один датчик, разместить его в зоне наибольшей нагреваемости, и при определенной температуре включать 1, 2 и 3 кулера. Но так как у моего ноутбука эта зона может кардинально отличаться месторасположением от других моделей, было решено использовать два датчика. На схеме указаны транзисторы BD139, но их ставить нет смысла. Подойдут и "старички" кт315 (макс. ток нагрузки 100мА). На схеме они лишь для разводки платы - ставил первые попавшиеся с подходящей цоколевкой для кт315. Так же, больше 500 мА ноут на USB не выдаст.

Алгоритм работы устройства прост:

  • T1 < T1у , T2 < T2у - кулера выключены
  • T1 > T1у , Т2 < T2у - включен 1 кулер (аналогично и для 2 кулера)
  • T1 > T1y , T2 >T2y - включены 1 и 2 кулера
  • Если же Т1 > Т1к и Т2 > T2к, включается и 3 кулер

*Т1, Т2 - измеряемые температуры, Т1у, Т2у - установленные температуры, Т1к, Т2к - критические температуры.

После краткого алгоритма работы, собственно программа для микроконтроллера:

program NotePicFan_v2;

const a = 0.001129148;                                                          // Константы для измерения температуры
const b = 0.000234125;                                                          //
const k = 0.0000000876741;                                                      //

var registry: byte at GPIO;                                                     //
    i, t: byte;                                                                 //
    reg: array [0..7] of byte;                                                  // Массив для конфигурации сдвигового регистра
    
function RTemp(pin: byte): integer;                                             // Функция чтения температуры
var d, e: integer;
begin
     d := ADC_Read(pin);
     d := log((10240000/d) - 10000);
     d := 1 / (a + (b * d) + (k * d * d * d));
     e := d - 273.15;
     result := e;
end;

procedure RegOut;                                                               // Процедура записи в сдвиговый регистр
var i: byte;
begin
     for i := 0 to 7 do begin
         t := 16;                                                               // Промежуточная переменная t введена так
         t.5 := reg[i];                                                         // как mP не хотел менять одиночные биты в порте.
         registry := t;
         delay_us(100);
         t.2 := 1;
         registry := t;
         delay_us(100);
         registry := 16;
         delay_us(100);
     end;
     registry := 0;
     delay_us(100);
     registry := 16;
end;

procedure Verify;                                                               // Процедура проверки соответствия температуры заданным значениям
var a, b: integer;
    i: byte;
begin
     a := RTemp(0);
     b := RTemp(1);
     ///////////////////////////////////////////////////////////////////////////
     for i := 0 to 2 do
         reg[i] := 1;
     for i := 3 to 5 do
         reg[i] := 0;
     reg[6] := 0;
     reg[7] := 1;
     ///////////////////////////////////////////////////////////////////////////
     if (a > 55) and (b > 55) then begin
         for i := 0 to 2 do
             reg[i] := 0;
         for i := 3 to 5 do
             reg[i] := 1;
     end else if (a > 40) and (a < 55) and (b > 40) and (b < 55) then begin
         reg[0] := 0;
         reg[1] := 0;
         reg[3] := 1;
         reg[4] := 1;
     end else if (a > 40) and (b < 40) then begin
         reg[0] := 0;
         reg[3] := 1;
     end else if (a < 40) and (b > 40) then begin
         reg[1] := 0;
         reg[4] := 1;
     end;
     RegOut;
end;

begin
     GPIO := $0;
     TRISIO := $3;                                                              // Первые два пина - на вход (аналоговый)
     ADC_Init;
     While TRUE do begin
           Verify;
           delay_ms(100);
     end;
end.

Программа написана в среде mikroPascal for PIC. Я не стал использовать прерывания, так как в них особой необходимости нет. Если бы требовалось измерение через точно заданные промежутки времени и при этом осуществлялась связь по UART, то тогда без прерываний уже никак. 

Самое сложное пожалуй даже не опрос датчиков, а управление сдвиговым регистром. Для этого был выделен массив (reg). В него и записывается информация

end else if (a > 40) and (a < 55) and (b > 40) and (b < 55) then begin
         reg[0] := 0;
         reg[1] := 0;
         reg[3] := 1;
         reg[4] := 1;
     end else if (a > 40) and (b < 40) then begin

(соответственно, нулевой элемент массива равен старшему биту, который передавался в сдвиговый регистр),

Которая после последовательно записывается в регистр.

 for i := 0 to 7 do begin
         t := 16;                                                               // Промежуточная переменная t введена так
         t.5 := reg[i];                                                         // как mP не хотел менять одиночные биты в порте.
         registry := t;
         delay_us(100);
         t.2 := 1;
         registry := t;
         delay_us(100);
         registry := 16;
         delay_us(100);
     end;
     registry := 0;
     delay_us(100);
     registry := 16;

Эта процедура несколько замороченная, немного разберем ее.

Допустим, reg[i] в данный момент равен 1. Значит, нам нужно установить в "1" в переменной t бит, с помощью которого будем передавать данные в регистр сдвига. Это бит 5. 

Установив его, можно отправлять переменную в регистр GPIO. Далее, "подхватывания" регистром сдвиг данных нужен тактовый импульс, что мы и делаем: 

  • бит 2 в t = 1

Потом, отсылаем импульс для защелкивания данных и проходим этот цикл еще 7 раз.

Ниже представлен скриншот из Proteus'a:

Программа работает по следующему алгоритму:

  • Инициализация АЦП
  • Запуск преобразования АЦП
  • Чтение АЦП
  • Конвертация в значение температуры
  • Если температура выше/ниже критической то ... (действие)
  • Запись последовательности битов в регистр сдвига (управление кулерами, светодиодами)
  • Пауза (100..1000 мс)
  • Повтор, начиная с 1 - го пункта

Как видите, ничего сложного. Единственное неудобное место - это использование промежуточной переменной. Но с этим ничего сделать не получилось,так как mP, при установке определенного бита порта, остальные биты просто сбрасывал на "0".

Что касается чтения значения АЦП с последующим преобразованием, то это типовая процедура и ее можно свободно найти в интернете.

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

Синий слой - обратная сторона платы, а красный - лицевая (сторона деталей). 

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

Перед изготовлением платы, решил просмотреть 3D модель в Proteus'e. Вышла вот такая картина:

А вот, что получилось в итоге в реальности:

Как видите, я плату делал дедовским методом - с помощью обычного лака для ногтей.

Так что отсутствие лазерного принтера или других материалов и устройств (например, утюга) не ставит большую жирную точку.

Ниже представлены фото изготовления электронной начинки.

Кулер для проверки я использовал от процессора (Pentium 3, кажется). Единственное, что было не очень удобно - третий провод (судя по всему ШИМ) мешал. Пришлось отпаять.

Так же хочу извинится за не очень эстетичный вид платы (не отмыта от флюса), на момент фотографирования как-то забыл про это.

Вот фотографии работающего устройства:

(плохо видно, но горят все светодиоды и соответственно должны работать все кулера (у меня только 1 был)).

Вот более удачное фото.

Что касается конструкции, то тут у меня пока что только размышления. Скорее всего, самым удачным вариантом будет этот (не ругайтесь, рисовал в пайнте :) :

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

Красным же помечены датчики. Как видите, они расположены так же возле зон нагрева. Сама плата управления показана серой контурной линией. Но, как я уже говорил, можно ее заключить в отдельный корпус.

Теперь о деталях:

К сожалению, микроконтроллер заменить нельзя. Тот же PIC12F675, который подходит по распиновке и так же располагает встроенным АЦП, не подходит по причине нехватки памяти по программный код. В этом плане mP все еще не оптимален. Регистр сдвига, как вы понимаете замене тоже не подлежит. А вот светодиоды можно взять практически любые (главное, что бы по току подходили). Резисторы, образующие делители напряжения с термисторами нужно брать по возможности презиционные. Так как от них довольно сильно зависит точность измерений. Остальные резисторы не критичны, и допускают разброс +/- 10% от исходного значения. Транзисторы так же не критичны в подборе. Можно использовать любые из серии КТ315 (или аналогичные, смотрите по характеристикам). 

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

Удачи вам в сборке! С вопросами, замечаниями и пожеланиями обращайтесь в комментариях.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
U4 Сдвиговый регистр
CD74HC595
1 smdПоиск в магазине ОтронВ блокнот
U5 МК PIC 8-бит
PIC12F683
1 DIPПоиск в магазине ОтронВ блокнот
Q1-Q3 Биполярный транзистор
КТ315А
3 С любым индексомПоиск в магазине ОтронВ блокнот
D1-D3 СветодиодСиний3 3-5 ммПоиск в магазине ОтронВ блокнот
D4 СветодиодКрасный1 3-5 ммПоиск в магазине ОтронВ блокнот
D5 СветодиодЗеленый1 3-5 ммПоиск в магазине ОтронВ блокнот
RT1, RT2 Термистор10 кОм2 0805Поиск в магазине ОтронВ блокнот
R2-R6 Резистор
220 Ом
5 0805Поиск в магазине ОтронВ блокнот
R7-R9 Резистор
4.7 кОм
3 0805Поиск в магазине ОтронВ блокнот
R10, R11 Резистор
10 кОм
2 0805Поиск в магазине ОтронВ блокнот
J1-J4 РазъемPBS40. PLS401 Любой подходящийПоиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 3
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 3.2 Проголосовало: 3 чел.

Комментарии (17) | Я собрал (0) | Подписаться

+3
D.E.N.V.E.R #
Овчинка выделки не стоит, проще пойти и купить, а если и хочется своими руками, то 3 кулера кусок железа, текстолита и т.д. и китайский бп с переключателем напряжений за глаза. А еще лучше взять нормальный игровой десктоп и играть на нем, а не на хилом ноуте, да и непонятно зачем МК прицепили
Ответить
+1

[Автор]
zeconir #
Раз вам не понятно, зачем МК, то вы очевидно не читали статью совсем. У какой китайской подставки вы видели автоматическое управление охлаждением? Касательно игр и т.д. - не у всех есть возможность, но тут дело не в этом. Например у меня ноут греется и без игр. А взять, как вы говорите БП, переключатель... Это уровень электрика, а не радиолюбителями.
Ответить
0
D.E.N.V.E.R #
Мне понятно зачем МК,непонятно только ваше желание пихать его туда, где можно обойтись 3 транзисторами. Ну а теперь по пунктам:
1. Если у вас греется ноут на холостом ходу, то проблема наверное в ноутбуке, или ему пора на чистку или на свалку (я склоняюсь к первому варианту)
2. БП с переключателем это просто экономически целесообразно, при условии что розетка рядом
3. Вашу примочку теперь можно использовать с любой подставкой
Ответить
0

[Автор]
zeconir #
Ну тогда тоже по пунктам:
1 - У меня довольно старый чипсет AMD. Держу для прошивок - COM + LPT и для тестов, но от этого греется не меньше (1Гб, 64Мб, 20Гб, 1,8ГГц).
Транзисторы... Если вам хочется, собирайте на транзисторах, мне более удобен МК.
2 - ... Зачем вешать БП, если можно взять + 5В от USB?!
3 - Можно (причем в исходном варианте), кто против? В принципе, с любой китайской подставкой, где >= 2-х кулеров стоит, можно впихнуть.

З.Ы. Как я понял, вы хотите доказать, что моя схема бесполезна. Ну так флаг вам в руки, разработайте схему, которая будет лучше данной. Тогда и поспорим, что лучше. До тех пор, считаю что ваши слова не обоснованы.
Ответить
+2
D.E.N.V.E.R #
Если у вас старенький ноутбук так может не стоит заморачиваться с подставкой, провести ноутбуку профилактику и будет спокойно работать.
Если вам нравиться использовать МК для простых конструкций, используйте никто ведь не запрещает, инициативу проявили, устройство работает.
Про три транзистора: это была шутка, достаточно линейного регулятора на LM317
Ответить
+1

[Автор]
zeconir #
Да, надоело уже в его внутренностях копаться, раз наверное 25 разбирал/собирал. С регулятором тоже можно, но как уже говорил - с МК проще. Да и он мне дешевле обойдется чем несколько Lm-ок
Ответить
0
Smelter #
Всё ништяк, конструкция подробно описана и полезна, как материал для практического изучения МК.
Ответить
0
Zlodey #
Ноутбук покупать надо с нормальным внутренним охлаждением, а не пытаться дуть снаружи! Надо устранять причину, а не следствие!
Ответить
+1

[Автор]
zeconir #
Да кто ж против?! Вот только я так и не понял, каким образом это относится к этой статье? Я предложил альтернативу китайским охлаждающим устройствам, и даже словом не обмолвился о том, что это альтернатива ремонта (почитайте предыдущие комментарии).
Кроме того, если летом на улице +40, думаю вам штатное охлаждение не сильно поможет.
Ответить
+1
BARS_ #
Поможет, еще и как. Вся проблема в том, что толку от любой подставки ровно 0. Внутрь воздух не попадает, а обдувать пластмассу бесполезное занятие. 2 датчика там совершенно не надо. И МК там совершенно не нужен, тем более с какой-то индикацией.
Ответить
0

[Автор]
zeconir #
В частном случае, радиаторы на чипах (а иногда и сами чипы) прижаты к днищу ноутбука, тогда как раз таки есть смысл его охлаждать. Про штатку - погорячился, разные модели имеют разное охлаждение, тепловыделение процессора и т.п.
Повторюсь: я всего лишь предложил альтернативу существующим устройствам. Если считаете, что бесполезная железка, никто же не заставляет собирать.
Ответить
0
BARS_ #
Да никогда они не прижаты к днищу, там всегда расстояние есть для циркуляции воздуха.
Ответить
0

[Автор]
zeconir #
Значит производитель конкретно моего ноута решил сломать стандарты. Радиатор прижат к днищу, а по бокам свободное пространство. Воздух гоняет "мини-турбинка" на задней панели.
З.Ы. фирма Yakumo
Ответить
+2
СК #
Да нормальная радиолюбительская поделка. Достали на радиолюбительских сайтах умники "проще купить"...
Автор, у вас программа сильно раздута, поэтому и на хватает 12Ф675. Например - вот такое число 273.15 жрёт немало памяти и главное, в данном случае абсолютно не нужно здесь. Применяйте целочисленную арифметику, её с головой хватит и памяти сэкономите.
Ответить
0

[Автор]
zeconir #
А про дробное число я то и забыл... Исправлю!
Ответить
0
Константин #
А не проще ли тупо разобрать бук, почистить от пыли и заменить термопасту?
Ответить
0
tenebris auguratricis #
А можно приделать три кнопки для включения и выключения каждого куллера по желанию пользователя?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется напряжение?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

МиниПК MK809V - 4 ядра, Android 4.4.2
МиниПК MK809V - 4 ядра, Android 4.4.2
Набор для сборки - LED лампа Печатная плата для усилителя "LM3886 + AD825"
вверх