КОНТРОЛЛЕР ОХЛАЖДЕНИЯ ПК

28.06.19 Версия 1.0: первоначальная, вроде бы стабильная версия

подписаться на обновления

Сделал себе умное управление системой охлаждения компьютера (СВО + вентиляторы). Система получает данные о температуре железа с компьютера (при помощи программы OpenHardwareMonitor, подробнее здесь и здесь), получает температуру охлаждающей жидкости и управляет скоростью помпы СВО при помощи цифрового потенциометра, скоростью ШИМ вентиляторов при помощи ШИМ сигнала 20 кГц и “релейно” управляет вентиляторами радиатора СВО. Таким образом получилась очень тихая система, которую “в простое” не слышно даже на фоне тихого вентилятора блока питания.

ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ

  • В данном видео показан полный и максимально подробный процесс разработки и изготовления устройства, а также обзор его возможностей и функций.

  • Понятные схемы, OpenSource прошивки с комментариями и подробные инструкции это очень большая работа. Буду рад, если вы поддержите такой подход к созданию Ардуино проектов! Основная страница пожертвовать – здесь.

СХЕМЫ, ПЕЧАТНЫЕ ПЛАТЫ

Схема 1

МАТЕРИАЛЫ И КОМПОНЕНТЫ

Ссылки на магазины, с которых я закупаюсь уже не один год

Вам скорее всего пригодится:

Если вместо указанных товаров у вас открываются блузки/вата/прочая хрень – выбросьте свой айфон! Или проверьте его на вирусы.
всё для пайки
аккумы, bms
arduino, модули
мультиметры
инструменты
бп и модули

ПРОШИВКА И НАСТРОЙКА

Загружать прошивку желательно до подключения компонентов, чтобы убедиться в том, что плата рабочая. После сборки можно прошить ещё раз, плата должна спокойно прошиться. В проектах с мощными потребителями в цепи питания платы 5V (адресная светодиодная лента, сервоприводы, моторы и проч.) необходимо подать на схему внешнее питание 5V перед подключением Arduino к компьютеру, потому что USB не обеспечит нужный ток, если например лента его потребует. Это может привести к выгоранию защитного диода на плате Arduino. Гайд по скачиванию и загрузке прошивки можно найти под спойлером на следующей строчке.

1. Если это ваше первое знакомство с Arduino, внимательно изучите гайд для новичков и установите необходимые для загрузки прошивки программы.

2. Скачайте архив со страницы проекта. Если вы зашли с GitHub – кликните справа вверху Clone or download, затем Download ZIP. Это тот же самый архив!

3. Извлеките архив. Содержимое папки libraries перетащите в пустое место папки с библиотеками Arduino C:/Program Files (x86)/Arduino/libraries/

4. Папку с прошивкой из firmware положите по пути без русских букв. Если в папке с прошивкой несколько файлов – это вкладки, они откроются автоматически.

5. Настройте прошивку (если нужно), выберите свою плату, процессор. Подключите Arduino к компьютеру, выберите её COM порт и нажмите загрузить.

6. При возникновении ошибок или красного текста в логе обратитесь к 5-ому пункту гайда для новичков – “Разбор ошибок загрузки и компиляции“.

Содержимое папок в архиве

  • libraries – библиотеки проекта. Заменить имеющиеся версии
  • firmware – прошивки для Arduino
  • schemes – схемы подключения компонентов
скачать архив
страница на github
сообщить об ошибке

Настройки в прошивке

// настройки
#define TIMEOUT 3000        // таймаут соединения, мс
#define TIMEOUT_P 300000    // таймаут питания, мс
#define RESIST_10K 10000    // точное сопротивление 10к резистора (Ом)

// пределы
#define HW_TEMP_MIN 40  // мин. температура железа
#define HW_TEMP_MAX 60  // макс. температура железа
#define TEMP_MIN 32     // мин. температура воды
#define TEMP_MAX 40     // макс. температура воды

// у меня СВО начинает резонансить на скоростях 20-27, поэтому избегаю этот диапазон
#define PUMP_MIN 13     // мин. сигнал помпы (при TEMP_MIN)
#define PUMP_MAX 95     // макс. сигнал помпы (при TEMP_MAX)

#define PWM_MIN 50      // мин. сигнал вентиляторов (при TEMP_MIN)
#define PWM_MAX 150     // макс. сигнал вентиляторов (при TEMP_MAX)

#define TEMP_ON 34      // температура воды, выше которой включается вентилятор СВО
#define TEMP_OFF 32     // температура воды, ниже которой выключается вентилятор СВО

#define HW_TEMP_ON 45   // температура железа, выше которой включается вентилятор СВО
#define HW_TEMP_OFF 40  // температура железа, ниже которой выключается вентилятор СВО

#define COEF 0.2        // коэффициент плавности изменения температуры

// ---- термистор ----
// GND --- термистор --- A0 --- 10к --- 5V
#define RESIST_BASE 10000   // сопротивление при TEMP_BASE градусах по Цельсию (Ом), из даташита
#define TEMP_BASE 25        // температура, при которой измерено RESIST_BASE (градусов Цельсия)
#define B_COEF 3435         // бета коэффициент термистора (3000-4000)
2019-06-28T13:01:14+03:00